AN5447 是意法半导体面向Arm® TrustZone® STM32 微控制器推出的官方应用笔记,核心讲解基于 Cortex‑M33 内核的安全启动与安全固件更新(SBSFU)落地实现,同时给出与传统 X‑CUBE‑SBSFU 方案的对比与迁移指南,是 STM32L5、STM32U5 系列产品做安全开发的核心参考文档。
资料获取:【应用笔记】AN5447 基于Arm® TrustZone® STM32 微控制器的安全启动和安全固件更新
1. AN5447 适用哪些 STM32 芯片与开发场景?
这份应用笔记仅适配带 TrustZone 的 STM32 芯片,覆盖系列明确:
- 适用 MCU:STM32L5 系列、STM32U5 系列
- 核心场景:设备上电安全启动、远程 / 本地安全固件升级、运行时数据与代码安全隔离
- 技术底座:基于开源 TF‑M(可信固件‑M)参考实现,兼容 PSA 平台安全架构标准
非 TrustZone 架构的 STM32(如 M0/M3/M4/M7 内核)仍沿用 X‑CUBE‑SBSFU 扩展包方案,不在本文档覆盖范围内。
2. TF‑M:TrustZone STM32 的安全核心框架是什么?
TF‑M 是 Arm 主导的开源安全框架,为 Cortex‑M33+TrustZone 硬件提供PSA 标准可信根(RoT),是 AN5447 方案的技术核心,整体分为三层安全域:
- PSA 不可变 RoT:复位后优先执行,基于 MCUboot 实现安全启动与固件更新,是设备安全基石
- PSA 可更新 RoT:运行时提供加密、安全存储(SST)、内部可信存储(ITS)、设备认证等隔离安全服务
- 应用可更新 RoT:支持第三方 / OEM 自定义安全服务,运行在安全非特权环境,不影响核心安全域
TF‑M 通过 TrustZone 硬件隔离、MPU、写保护(WRP)、读保护(RDP)等机制,实现安全与非安全环境的严格分隔。
3. X‑CUBE‑SBSFU 与 TF‑M 方案,开发该怎么选?
两款方案都能实现安全启动 + 固件更新,但硬件适配、服务能力、隔离层级差异明显,AN5447 给出清晰选型边界:
| 对比维度 | X‑CUBE‑SBSFU | TF‑M(AN5447 方案) |
|---|---|---|
| 适配硬件 | 无 TrustZone 的 STM32 | STM32L5/U5(带 TrustZone) |
| 安全隔离 | 1 层隔离 | 2 层隔离,权限划分更细 |
| 运行时服务 | 仅部分系列支持 KMS 密钥服务 | 完整 PSA 加密 / 存储 / 设备认证服务 |
| 固件更新 | 支持全量 / 部分更新 | 仅支持全量更新,支持安全 + 非安全双镜像 |
| 加密方案 | ECDSA 非对称 / AES 对称 | RSA/ECDSA 非对称,固件加密更灵活 |
| 硬件安全 | RDP、WRP、MPU 基础防护 | TrustZone+HDP+OTFDEC,外部 Flash 也可加密保护 |
简单说:老款无 TrustZone STM32 用 X‑CUBE‑SBSFU;L5/U5 等新安全款直接用 TF‑M 方案,安全能力与扩展性更强。
4. STM32Cube 中的两类安全应用:SBSFU 与 TFM 怎么用?
STM32Cube MCU 包针对 TrustZone 芯片提供两套可直接落地的应用,适配不同资源与需求:
4.1 SBSFU 应用(轻量化版)
- 核心组件:SBSFU_Boot(安全启动)、SBSFU_Appli(用户应用)、SBSFU_Loader(本地加载)
- 核心优势:裁剪运行时安全服务,最大化用户可用 Flash 空间
- 适合场景:仅需基础安全启动 + 固件更新,对 Flash 资源敏感的产品
4.2 TFM 应用(全功能版)
- 核心组件:TFM_SBSFU_Boot(安全启动)、TFM_Appli(带安全服务)、TFM_Loader(本地加载)
- 核心优势:保留 TF‑M 全量安全服务,支持 PSA API 调用加密、存储、认证能力
- 适合场景:需要运行时安全服务、设备身份认证、数据加密存储的高端安全产品
5. 项目落地:应用集成与安全服务部署要点
5.1 用户应用集成(SBSFU)
从 X‑CUBE‑SBSFU 迁移后,用户业务代码需放入:STM32CubeL5/Projects/…/SBSFU/SBSFU_Appli/NonSecureOEM 自定义安全服务放入
Secure与Secure_nsclib文件夹,参考 TrustZone HAL 示例实现即可。
5.2 OEM 安全服务集成(TFM)
TFM 方案中,自定义安全服务作为第三方应用 RoT,需集成到:Middlewares/trustedfirmware目录
遵循 TF‑M 框架规范,运行在安全非特权环境,通过 PSA API 供非安全应用调用。
5.3 API 接口替换
X‑CUBE‑SBSFU 用PKCS#11 API调用 KMS 服务;TF‑M 方案改用PSA 加密 API,接口逻辑相近,仅需替换函数调用即可完成迁移。
6. 密钥与数据个性化:生产配置关键规范
安全方案落地的核心是密钥配置,AN5447 明确两类应用的个性化要求:
SBSFU 应用密钥
- 签名密钥:2 组 RSA/ECDSA 非对称密钥(安全镜像 + 非安全镜像分开),需用户自行提供,公钥烧录到不可变 Flash 区域
- 加密密钥:AES‑CTR 密钥每次构建随机生成,用独立非对称密钥加密后嵌入固件,不直接存储明文。
TFM 应用额外数据
除上述密钥外,还需配置设备唯一数据:
- EAT 密钥、HUK(硬件唯一密钥)、实例 ID
- 全部存入专用不可变 Flash 区域,每颗芯片唯一,支撑设备身份认证功能。
7. 老项目迁移:从 X‑CUBE‑SBSFU 过渡指南
AN5447 给出清晰迁移路径,降低改造成本:
- 原项目仅用 X‑CUBE‑SBSFU(无 KMS)→ 直接迁移到 STM32Cube 的SBSFU 应用
- 原项目用到 KMS 密钥服务 → 迁移到TFM 应用,可裁剪不必要的加密算法适配资源
- 硬件防护直接启用 TrustZone、HDP、RDP L2 等,替代原有基础防护机制,安全等级大幅提升。
AN5447 是 STM32L5/U5 系列TrustZone 安全开发的实操手册,把 TF‑M 开源框架与 ST 硬件安全特性结合,给出安全启动、固件更新、运行时防护的完整方案。相比传统 X‑CUBE‑SBSFU,TF‑M 方案隔离更严谨、服务更完整、兼容 PSA 标准,是新一代 STM32 安全产品的首选开发框架。
126