STM32生态系统—SBSFU在STM32G0上的实现

2023-02-15  

安全启动,构建信任链

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 安全启动技术总结


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。