2.STM32安全启动与安全固件更新参考实现 X-CUBE-SBSFU是针对基于Cortex v6/v7内核的STM32系列的安全启动和安全固件更新参考实现。软件包下载地址:https://www.st.com/x-cube-sbsfu (注:需要在线填写申请,获取下载链接)。X-CUBE-SBSFU支持的系列包括:STM32F4, STM32F7, STM32L1, STM32L0, STM32L4, STM32G0, STM32G4, STM32H7, STM32WB。STM32WL系列的CubeFW软件包中已经包含SBSFU参考实现,不需要另外下载。
X-CUBE-SBSFU软件包提供的主要功能包括: •安全启动(Secure Boot) 确保复位时的唯一启动入口,上电后总是首先运行安全启动代码,且安全启动代码不可更改 检测系统配置状态,确保相关硬件安全功能按照期望的配置进行设置 执行应用程序代码之前进行固件映像数据验证 (包括真实性和完整性)
•安全固件更新(Secure Firmware Update) •验证新固件Image: •密钥管理功能(目前支持B-L475E-IOT01A开发板) •不同的校验和加密方式 基于对称密钥AES-GCM模式的MAC校验和更新过程固件加密 基于非对称密钥ECDSA模式进行签名校验 基于非对称密钥ECDSA模式进行签名校验+ 更新过程固件加密(AES CCM) 结合STSAFE-A100(CC EAL5+级别安全芯片)基于X.509数字证书的签名校验和密钥存储(目前支持B-L475E-IOT01A板)
X-CUBE-SBSFU参考实现中充分利用不同STM32MCU系列所具有的硬件安全特性,实现安全启动和安全固件更新所需要的安全要求。 由于不同系列的MCU所具有的硬件安全能力有所差别,因而安全功能的实现也会使用不同系列MCU的各自硬件特性,X-Cube-SBSFU在不同系列上的实现所使用的硬件安全特性如下图所示:
X-CUBE-SBSFU已经支持的STM32系列以及示例代码基于的开发板型号见下表
STM32系列 | | | 32L496GDISCOVERY, B-L475E-IOT01A, NUCLEO-L432KC, NUCLEO-L476RG | | NUCLEO-G031K8, NUCLEO-G071RB | | | | STM32H750B-Discovery, NUCLEO-H753ZI, STM32H7B3I-Discovery | | | | | | | | | | |
|