本文档描述如何入门 STM32CubeU5 TFM(Arm® Cortex®-M 的可信固件)应用程序,该应用程序作为 STM32CubeU5 软件包组成部分提供。
STM32CubeU5 TFM 应用程序提供了包含安全启动和安全固件更新功能的可信根解决方案。该解决方案在执行应用程序之前使用,提供一组安全服务,这些服务与非安全应用程序相互隔离但可以在运行时间被非安全应用程序使用。STM32CubeU5 TFM应用程序基于已移植到 STM32U5 系列微控制器(以下统称为 STM32U5)上的开源 TF‑M 参考实现,目的是利用 STM32U5 的硬件安全特性,例如:
- 存储器保护 (HDP, WRP)
- 增强生命周期方案 (RDP)
另外,添加一个安全元件(STSAFE-A110 微控制器(以下统称为 STSAFE))可增强安全性。
安全服务是一种可升级的代码,提供了一组服务,非安全应用程序可以在运行时间使用这些服务,这些服务管理着与非安全应用程序相隔离的关键资产。非安全应用程序不能直接访问任何关键资产,但可以调用使用关键资产的安全服务:
- 安全启动 (可信根服务)是不可变代码段,总是在系统复位后执行。在每次执行前,它检查 STM32U5 静态保护,激活STM32U5 运行时间保护,然后验证所安装固件的真实性和完整性。以此确保无效或恶意代码无法运行。
- 安全固件更新应用程序是一种不可变代码,它检测可用的新固件映像,检查其真实性,并在安装代码之前检查其完整性。可对整个固件映像执行固件更新,包括固件映像的安全和非安全部分。或者,也可单独对固件映像的安全部分和/或非安全部分执行更新。在覆盖模式或交换模式下也可执行固件更新。可以明文或加密形式接收固件。
安全服务是实现了一组服务的可升级代码,这些服务管理着与非安全应用程序相隔离的关键资产。这意味着非安全应用程序不能直接访问任何关键资产,而只能调用使用关键资产的安全服务:
- 密码:基于不透明密钥 API 的安全密码服务
- 受保护存储:保护数据的机密性/真实性/完整性
- 内部可信存储:保护内部 Flash 存储器中数据的机密性/真实性/完整性(为微控制器实现的最安全的存储空间)
- 认证:通过实体认证令牌证明产品身份
本文档中的 TFM 应用程序是[TF-M]的完整实现。第二个仅实现[TF-M]安全启动和安全固件更新功能的应用程序名为STM32CubeU5 SBSFU,也可以在 STM32CubeU5 MCU软件包中获得。