🔐 加密狗·固件升级
30章
从入门到实战
1
加密狗概述
什么是加密狗
加密狗的工作原理
在嵌入式系统中的作用
2
固件基础
固件的定义
固件与软件的区别
固件在加密狗中的角色
3
升级方案设计
常见模式 (DFU/OTA/本地烧录)
方案选型考量
4
安全启动链
安全启动原理
信任根 (RoT)
签名验证流程
5
加密算法选型
AES / RSA/ECC
SHA256 在固件保护中
6
固件签名与验签
OpenSSL 生成密钥对
数字签名 & 设备端验签
7
安全存储
OTP / eFuse / 安全元件
防读取措施
8
升级协议设计
自定义帧结构
握手流程 & CRC32
9
Bootloader设计
分区规划 & A/B系统
回滚机制
10
固件加密传输
TLS/DTLS 传输层加密
预共享密钥 (PSK)
11
防回滚攻击
版本号管理
熔丝位控制 & 不可逆策略
12
调试与日志
SWD/JTAG 保护
安全日志系统
13
抗物理攻击
侧信道防护
电压/时钟毛刺检测
主动屏蔽层
14
固件差分升级
bsdiff / xdelta
补丁生成与合并
带宽优化
15
多租户管理
多应用分区
权限隔离 & 动态加载
16
远程升级 (OTA)
MQTT/CoAP 适配
断点续传 & 弱网优化
17
升级失败恢复
看门狗超时恢复
安全模式 & 紧急救援固件
18
固件版本管理
语义化版本 (SemVer)
兼容性检查 & 强制升级
19
测试与验证
Unity/CMock 单元测试
硬件在环 (HIL) & 模糊测试
20
生产烧录
工厂烧录流程
OTP 策略 & 序列号注入
21
合规与认证
FIPS 140-3 / Common Criteria
国密标准 (SM2/SM3/SM4)
22
生命周期管理
固件废弃 & 密钥轮换
远程注销机制
23
案例研究
金融支付终端升级复盘
IoT设备批量变砖教训
24
工具链搭建
GCC for ARM / CMake
OpenOCD 调试
25
持续集成 (CI)
GitLab CI/CD 流水线
自动化构建签名 & 安全扫描
26
监控与告警
设备遥测采集
异常升级检测 & 云端告警
27
用户交互设计
升级进度显示
错误码 & 多语言支持
28
性能优化
LZMA/LZ4 固件压缩
启动时间 & 内存优化
29
未来趋势
PSA Certified / Rust 语言
AI 辅助固件安全分析
30
综合实战
从零构建完整升级系统
需求→设计→实现→测试→部署