1.概述 本文档描述如何入门 STM32CubeL5 TFM(Arm® Cortex®-M 的可信固件)应用程序,该应用程序作为 STM32CubeL5 固件包组成部分提供。STM32CubeL5 TFM 应用程序提供一个可信根解决方案(包括安全启动和安全固件更新功能,在执行应用程序之前使用),还提供一组安全服务,这些服务与非安全应用程序隔离,但可由非安全应用程序在运行时使用。 0 l9 R, u" r- J$ w* ^ STM32CubeL5 TFM 应用程序基于已移植到 STM32L5 系列微控制器(以下统称 STM32L5)上的开源 TF-M 参考实现,目的是利用 STM32L5 的硬件安全特性,例如: • Arm® Cortex®-M33 TrustZone® 和存储器保护单元(MPU) • TrustZone®-aware 外设 • 内存保护(HDP、WRP) • 增强生命周期方案
STM32CubeL5 TFM 应用程序在基于 Arm® Cortex®‑M 处理器的 STM32L5 系列 32 位微控制器上运行。 9 y, M% J* n3 X z 2.文档和开源软件资源 下面的资源是公开的,可以从意法半导体的网站 www.st.com 或第三方网站上获得。 0 ]9 {, k1 w+ |9 L) z( M1 F4 y% K# n$ n" o* ]3 c+ N' L 3.STM32Cube概述 STM32Cube 源自意法半导体,旨在通过减少开发工作量、时间和成本,明显提高设计人员的生产率。STM32Cube 涵盖整个 STM32 产品系列。STM32Cube 包括:
• 一套用户友好的软件开发工具,覆盖从概念到实现的整个项目开发过程,其中包括: – 图形软件配置工具 STM32CubeMX,可通过图形向导自动生成初始化 C 代码 – STM32CubeIDE,一种集外设配置、代码生成、代码编译和调试功能于一体的开发工具 – STM32CubeProgrammer (STM32CubeProg),图形版本和命令行版本中可用的编程工具 – STM32CubeMonitor-Power (STM32CubeMonPwr),测量并帮助优化 MCU 功耗的监控工具 - o, z/ w' |) Y- [ • STM32Cube MCU & MPU 包,针对于每个微控制器和微处理器系列的综合嵌入式软件平台(例如,STM32L5 系列的 STM32CubeL5),它包括: – STM32Cube 硬件抽象层(HAL),确保在 STM32 各个产品之间实现最大限度的可移植性– STM32Cube 底层 API,通过硬件提供高度用户控制,确保最佳性能和内存开销 – 一组一致的中间件组件,如 FAT 文件系统、RTOS、USB 主机和设备、TCP/IP、触摸感应库、以及图形 – 嵌入式软件实用工具以及全套外设和应用实例
• STM32Cube 扩展包,包含的嵌入式软件组件为 STM32Cube MCU 和 MPU 包的功能补充了: – 中间件扩展和应用层– 在特定的意法半导体开发板上运行的实现案 4.Arm®可信固件-M(TF-M)简介 [TF-M] (可信固件-M)是 Arm 驱动的开源软件框架,在 Cortex®-M33(TrustZone®)内核上提供 PSA 标准的参考实现: • PSA 不可变 RoT(可信根):不可变的“安全启动&安全固件更新”应用程序(命名为 TFM_SBSFU_Boot)在任一复位后执行。该应用程序基于[MCUboot]开源软件
• PSA 可更新 RoT:“安全”应用程序(名为 TFM_Appli/安全)实现了一组隔离在安全/特权环境中的安全服务,非安全应用程序可以通过 PSA API 在非安全应用程序运行期间调用这些服务: – 安全存储服务:TF-M 安全存储(SST)服务实现 PSA 保护的存储 API,允许数据加密并将结果写入可能不可信的存储中。作为参考,SST 服务采用了基于 AEAD 加密策略的 AES-GCM 算法,保护数据的完整性和真实性。 – 内部可信存储服务:TF-M 内部可信存储(ITS)服务实现 PSA 内部可信存储 API,允许在微控制器内置的 Flash 存储器区域中写入数据,该区域将通过硬件安全保护机制与非安全或非特权应用程序隔离。 – 密码服务:TF-M 密码服务实现了 PSA 密码 API,允许应用程序使用密码原语,如对称和非对称密码、哈希、消息认证码(MAC)和关联数据的认证密码(AEAD)。它基于[MbedCrypto]开源软件 – 初始认证服务:TF-M 初始认证服务允许应用程序在验证过程中向验证实体证明设备身份。初始认证服务可以根据请求创建一个令牌,其中包含特定于设备的固定数据集。
• 应用程序可更新 RoT:隔离在安全/非特权环境中的第三方安全服务(在 TFM_Appli/安全应用程序中实现),可以由非安全应用程序在非安全应用程序运行期间调用: |
Arm® TrustZone®特性面向 STM32L5 和 STM32U5 系列
STM32L5 系列微控制器和 TrustZone® 开发入门
STM32CubeIDE 中基于 STM32L5 系列的项目入门
Arm® TrustZone®特性面向 STM32L5 和 STM32U5 系列
STM32U5对比STM32L5有 哪些更新?
STM32L5 中如何关闭 TrustZone ?
修改STM32L5的存储空间安全属性的设置
使用STM32L5的OTFDEC和ICACHE功能实时高效运行片外Flash中的加密代码
使用STM32L5 TrustZone特性控制调试端口访问,保护片上代码安全
面向STM32L5系列的STM32CubeL5入门