
引言 本应用笔记描述如何在基于 Arm® Cortex®‑M33 处理器的 Arm® TrustZone® STM32 微控制器上获得安全启动和安全固件更新流程解决方案。该应用笔记还提供此解决方案与 X-CUBE-SBSFU 解决方案的顶层比较结果,后者适用于基于 Arm® Cortex®‑M0、Cortex®‑M3、Cortex®‑M4、或 Cortex®‑M7 处理器的非 TrustZone®STM32 微控制器。它还为安全启动和安全固件更新流程解决方案提供顶层集成指南。 对于 Arm® TrustZone® STM32 微控制器,安全启动和安全固件更新流程解决方案在相应的 STM32Cube MCU 包中提供。与 XCUBE-SBSFU STM32Cube 扩展包中提出的解决方案不同,该解决方案基于开源 TF‑M(可信固件面向 Arm® Cortex®‑M)参考实现。 本应用笔记适用于所有 TrustZone® STM32 微控制器(参考表 1)。然而,本文档中将 STM32L5 系列作为示例。STM32Cube MCU 包中可用的基于 TF‑M 的应用可能会不同,具体取决于 TrustZone®STM32 微控制器。参照公认的 Arm®TrustZone® STM32 微控制器(参见第 2 节 参考)的 TFM 应用(TF‑M 的完整实现)的用户手册,获取对解决方案的精确描述。如需关于开源 TF‑M 参考实现的详细信息,请参见[TF‑M]。 ![]() 1概述 在本应用笔记中,术语 X-CUBE-SBSFU 指的是 X-CUBE-SBSFU STM32Cube 扩展包中可用的安全启动和安全固件更新流程解决方案,而术语 SBSFU 指的是 Arm®TrustZone®STM32 微控制器 STM32Cube MCU 软件包中可用的安全启动和安全固件更新流程解决方案(STM32CubeL5 用作示例)。表 2 给出了相关的缩略语定义,帮助您更好地理解本文档。 ![]() 2 参考 下面的表 3 和表 4 中提供的资源是公开的 ![]() 3 Arm® 可信固件‑M (TF‑M)简介 TF‑M (参照[TF‑M])是 Arm Limited 驱动的开源软件框架,在 Arm® Cortex®-M33 (TrustZone®)处理器上提供了PSA 标准的参考实现: • PSA 不可变 RoT(信任根):在任何复位后执行的不可变“安全启动和安全固件更新流程”应用程序。该应用程序基于 MCUboot 开源软件(参照[MCUboot])。 • PSA 可更新 RoT:“安全”应用程序实现了一组隔离在安全/特权环境中的安全服务,非安全应用程序可以通过PSA API 在非安全应用程序运行时期中调用这些服务(参照[PSA_API]): – 安全存储服务:TF‑M 安全存储(SST)服务实现 PSA 保护的存储 API,允许数据加密并将结果写入可能不可信的存储中。SST 服务采用基于 AEAD 加密策略的 AES-GCM 作为参考,保护数据的完整性和真实性。 – 内部可信存储服务:TF‑M 内部可信存储(ITS)服务实现 PSA 内部可信存储,API 允许在微控制器内置的闪存区域中写入数据,该区域将通过硬件安全保护机制与非安全或非特权应用程序隔离。 – 加密服务:TF‑M 加密服务实现了 PSA 加密 API,允许应用程序使用密码学原语,如对称和非对称密码、哈希、信息验证码(MAC)和带关联数据的认证加密(AEAD)。它基于 mbed-crypto 开源软件(参照[mbed-crypto])。 – 初始认证服务:TF‑M 初始认证服务允许应用程序在验证过程中向验证实体证明设备身份。初始认证服务可以根据请求创建一个令牌,其中包含特定于设备的固定数据集。 • 应用程序可更新 RoT:隔离在安全/非特权环境中的第三方安全服务,可以由非安全应用程序在非安全应用程序运行时期中调用。 ![]() 4 X-CUBE-SBSFU vs. TF‑M 对比 4.1 概述 X-CUBE-SBSFU 提供意法半导体的安全启动和安全固件更新流程实现,以及(仅有选择地面向部分 STM32 系列)应用程序在运行时期可用的安全 KMS(密钥管理服务)服务。 TF‑M 参考实现提供基于开源 MCU 启动的安全启动和安全固件更新流程服务,以及应用程序在运行时期可用的一组安全服务。 X-CUBE-SBSFU 和 TF‑M 之间的上层比较请参见图 2。 ![]() TF‑M 的 MCU 启动部分好比 X-CUBE-SBSFU(无 KMS):提供类似的服务。 X-CUBE-SBSFU KMS 支持的服务类似于 TF‑M 安全加密服务,但是加密算法或特性不一样;即使两者都基于不透明密钥 API 概念,API 也是不同的。参考相关用户手册(相关 Arm® TrustZone® STM32Cube MCU 包的[UM2262]和 TFM 用户手册;参见第 2 节 参考)中引用的 X-CUBE-SBSFU 和 TF‑M API 文档,获取关于受支持特性的更多详细信息。 完整版请查看:附件 ![]() |
STM32 GUI LTDC 最大像素时钟评估方法
【2025·STM32峰会】GUI解决方案实训分享1-对LVGL咖啡机例程的牛刀小试以及问题排查
OpenBLT移植到STM32F405开发板
为什么要先开启STM32外设时钟?
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【经验分享】STM32实例-RTC实时时钟实验④-获取RTC时间函数与中断服务函数
STM32 以太网 MAC Loopback 的实现
STM32功能安全设计包,助力产品功能安全认证
基于STM32启动过程startup_xxxx.s文件经验分享
HRTIM 指南