安全启动,构建信任链
G0 如何实现安全启动的要求
通过:存储与执行保护,密码技术的集成,环境监测等其它安全措施
X-Cube-SBSFU 密码学技术的集成
生成用户代码签名
签名的基本原理:用户代码的摘要被签名后,作为元数据 // Meta data
X-Cube-SBSFU 密码学技术的集成
生成用户代码签名
签名的基本原理:用户代码的摘要被签名后,作为元数据 // Meta data
替换成:用户代码摘要 + 用户代码属性信息,直接作为元数据 // Meta data
X-Cube-SBSFU 密码学技术的集成
生成用户代码签名
签名的基本原理:用户代码的摘要被签名后,作为元数据 // Meta data
替换成用户代码的摘要,直接作为元数据 // Meta data
再对元数据 // Meta data 签名
X-Cube-SBSFU 密码学技术的集成
验证元数据的完整性-Meta OK
X-Cube-SBSFU 密码学技术的集成
验证元数据的完整性-Meta OK
验证用户代码的完整性-Application code OK
X-Cube-SBSFU 密码学技术的集成
用户代码不加密
X-Cube-SBSFU 密码学技术的集成
用户代码不加密
用户代码加密
回顾:安全固件更新 原理
固件更新:双image的管理
三个区域及各自的角色
slot #0,存储已解密的、当前运行的固件(头+体),SBSFU上电核实后就运行它
slot #1,存储下载的、新版固件头 + 还未解密的固件体,SBSFU下次上电要安装它;安装之后这 里存储已解密的、之前运行的固件(头+体),以待回滚时使用
swap 扇区:用于新老版本固件交换置位时的移位扇区
双image的管理:swap区域
加解密功能的实现:secure engine
Secure engine的隔离
X-cube-sbsfu.G0 存储区保护
Stm32 安全启动技术总结