
引言 本用户手册介绍了如何开始使用X-CUBE-SBSFU STM32Cube扩展包。8 P* u, Q" y* V* x% q& D3 y0 S 安全启动(SB)和安全固件更新(SFU)解决方案允许使用新固件版本更新STM32微控制器内置程序、添加新功能并更正潜在问题。更新过程以安全方式执行,以防止未经授权的更新以及访问机密设备上的数据,如密码和固件加密密钥。 此外,安全启动(可信根服务)会检查并激活STM32安全机制,并在每次执行之前检查用户应用程序代码的真实性和完整性,确保无效或恶意代码无法运行。 安全固件更新应用程序会接收加密的固件映像,检查其真实性并对其进行解密,然后在安装之前检查代码的完整性。- n8 v8 Z I& D/ `, U) d- g8 }6 \ 安全固件更新应用程序支持:$ ]/ ^$ X, ?3 g6 V • 两种操作模式:* F4 `6 M2 y2 G9 \ h$ N – 双映像模式,可实现安全映像编程,具有固件映像备份和回滚功能 – 单映像模式,可最大限度地提高用户应用程序占用空间大小' T! q" u, n) L: S1 F+ L • 三种加密方案,使用对称和非对称加密操作 X-CUBE-SBSFU补充了STM32Cube软件技术,使不同STM32微控制器之间更易移植。它随附了一个在NUCLEO-L476RG平台上运行的示例实现。 提供了X-CUBE-SBSFU作为参考代码,演示STM32安全保护机制的最新用法。这是OEM厂商根据其产品安全要求水平开发自己的SBSFU的起点。- B) g% ?7 u K5 t X-CUBE-SBSFU归类为ECCN 5D002 4 X, q b0 T6 | 1 `/ m- |4 U2 l" Q4 q: o 1 一般信息9 z+ H+ h7 ~) ]& ^ 表 1给出了相关的缩略语定义,帮助您更好地理解本文档。' e! v) d% \% w% R a" g5 m3 n0 e: [( h) ~: V ![]() 0 o+ E4 X+ E5 D/ _' M 表 2给出了相关的术语定义,帮助您更好地理解本文档。 " S: b, E1 ^# v1 A9 Q8 y ![]() X-CUBE-SBSFU安全启动和安全固件更新扩展包可在基于Arm®(a) Cortex®-M处理器的STM3232位微控制器上运行。 7 g. Z* i% s5 n9 }: [ 2 STM32Cube 概述' b$ g6 j" `6 X& M( @ STM32Cube是什么? STMCube™由意法半导体最初发起,通过减少开发工作量、时间和成本,让开发人员的生活更轻松。STM32Cube是STMCube™实现,涵盖了整个STM32产品组合。/ }% m1 A8 A: F: [' D, f5 ~9 u: m STM32Cube包括: • STM32CubeMX,一个图形化的软件配置工具,能够使用图形向导生成C初始化代码。 • 每个STM32微控制器系列都提供了全面的MCU封装(例如STM32F4系列的STM32CubeF4),包括: – STM32抽象层嵌入式软件STM32CubeHAL,确保在STM32各个产品之间实现最大限度的可移植性。4 ^( l8 B! o, m$ I* L, d4 ~ – 底层API(LL)提供了一个专家级的快速轻量级层,它比HAL更靠近硬件。8 g, G5 {. g8 A5 ~- a: } – 一套一致的中间件,比如RTOS、USB和图形* a f* {6 [4 q8 \6 `+ Y8 X – 提供了一套完整示例以及嵌入式软件工具。 $ A, r( t5 {6 b' U. q 此软件如何补充STM32Cube? 该软件基于STM32CubeHAL,即STM32微控制器的硬件抽象层。该软件包通过提供用于管理所1 G: Q6 I# i! i* I# K( s( k; F5 Z% v 有关键数据和操作(例如访问固件密钥等的加密操作)的中间件组件(安全引擎),扩展了STM32Cube。 该软件包包含有不同的示例应用程序,可提供完整的SBSFU解决方案:3 Y/ k: S- c$ @" D; ` • SE_CoreBin应用程序:提供包含所有“可信”代码的二进制文件。- \3 B+ l" @; m1 u4 ]8 i3 V • 安全启动和安全固件升级(SBSFU)应用程序:- w: l1 ?/ e. _: t- l5 n. F" M – 安全启动(可信根)# Z5 p2 X) `( ~( R# [ – 通过UART虚拟COM进行本地下载% z ], l9 c( E1 x0 H Q – FW安装管理 • 用户应用程序:6 c v% y% q% i L/ y: U* b W – 在双映像操作模式下下载新使用的固件 – 提供了测试保护机制的示例1 t' L* \3 q3 t( y4 O7 O4 Q 示例应用程序提供了双映像和单映像操作模式,能够配置为所支持的任意加密方案。 本用户手册介绍了软件包的典型用法: • 基于NUCLEO-L476RG板 • 示例应用程序在双映像模式下运行,并配置了非对称身份验证和对称固件加密6 n$ |9 l5 X$ k# J: o7 A* L 有关配置选项和单映像操作模式的更多信息,请参阅本文档的附录。% t: s% m }$ D5 B5 c9 i 3 安全启动和安全固件升级(SBSFU) v5 H6 k/ }# e2 Q! ?1 @3 \' d* P 3.1 产品安全介绍& Y* @5 d# w# r& R- c8 d3 F 现场部署的设备在不受信任的环境中运行,因此会受到威胁和攻击。为了减轻受攻击风险,我们的目标是只在设备上运行可靠的固件。事实上,更新固件映像来修复错误,或引入新功能或对策,这些对于连接的设备来说是常见的事情,但如果不以安全方式来执行这些操作,它就会很容易受到攻击。0 l7 K1 a( ^( S' A, h( ` 其后果可能是破坏性的,如固件克隆、恶意软件下载或设备损坏。必须设计安全解决方案来保护敏感数据(甚至可能是固件本身)和关键操作。 典型的对策基于加密技术(带有相关密钥)和内存保护: • 加密可确保固件传输期间的完整性(确保数据未被破坏)、身份验证(确保某个实体确实符合其声明)以及机密性(确保只有经过授权的用户才能读取敏感数据)。% r1 `) L; f7 r E, X0 u • 内存保护机制可以防止外部攻击(例如,通过JTAG物理访问设备)以及来自其他嵌入式进程的内部攻击。 以下章节介绍实现机密性、完整性和身份验证服务的解决方案,以解决IoT终端节点设备最常见的威胁。3 h% {5 `0 n r0 o/ Z) R 3.2 安全启动4 A$ b6 i8 ]8 [3 ^1 W, m 安全启动(SB)确保所执行的用户应用程序映像的完整性和可靠性:使用加密检查,防止运行未经授权或恶意修改的软件。安全启动过程实现可信根(参见图 1):从该可信组件(1)开始,其他每个组件在其执行之前( 3)都要经过认证(2)。 对完整性进行验证,以确保即将执行的映像未被破坏或恶意修改。 可靠性检查旨在验证固件映像是来自可信且已知的源,以防止未经授权的实体安装及执行代码。 ) b% C& U7 B/ s# G* H 8 d5 D5 }) L! m6 j& p* c ![]() 完整版请查看:附件 2 B) I6 m1 x6 P7 c |
DM00414687_ZHV3.pdf
下载1.83 MB, 下载次数: 11
【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 指南
ST 微控制器电磁兼容性 (EMC) 设计指南