LAT1087
Local Application Tips
LAT1087 Rev 1.0 Nov. 2021
X-Cube-SBSFU 使用技巧(之一)——初步了解
关键字:安全启动,安全升级,SBSFU,签名校验,加解密
1. 引言
安全启动与安全更新是嵌入式设备安全的基本安全要求之一:安全启动提供信任根,
保证每次设备启动运行的应用程序的完整性与合法性;安全更新则在固件升级环节避免系
统软件被恶意修改或替换。
为了方便客户在其嵌入式设备的设计中更加容易地集成安全启动和安全更新功能,
STM32 提供了相关安全实现,支持众多 STM32 MCU 系列。其中 X-CUBE-SBSFU 是针
Cortex V6/V7M 内核的 STM32 MCU 产品的参考方案,软件包下载地址:
https://www.st.com/x-cube-sbsfu
X-CUBE-SBSFU 使用技巧的第一篇,我们对软件包及其软件架构等进行介绍,让
读者对这个软件包有一个初步认识
2. 安全启动、安全更新基本概念与原则
2.1. 安全启动
嵌入式系统安全启动的目标是保证每次上电启动所运行的应用程序都是真实可信的软件。
为了达到这个目的,安全启动需要满足几个基本要求:
系统中存在这样一段不变的启动代码,每次上电总是从这段代码开始运行,这段启动
代码不会被修改,其运行也无法被绕过
这段启动代码将检查系统配置,确认必要的安全配置状态,并且校验后续运行的应用
程序代码的完整性、合法性,通常这个校验通过密码学算法来完成
安全启动代码只有在系统配置检查和应用校验通过后才会跳转执行后续的应用程序
安全启动的过程示意见 1
1. 安全启动过程示意
LAT1087
LAT1087 - Rev 1.0 page 2/20
2.2. 安全更新
安全更新关注的是系统软件升级的过程,基本目标是保证每次升级的新版本固件来源可
靠,没有经过篡改。由于升级过程通常会经由某个通信通道获取新版本镜像,这个环节对固件内
容的机密性保护也需要考虑,如果通信通道不提供加密保护,那么可以考虑事先对升级镜像内容
进行加密处理,避免固件信息以明文形式出现。安全更新还要检查版本信息,避免蓄意的版本降
级,导致系统回退到旧的可能存在已知漏洞的版本。
3. 初步了解 X-CUBE-SBSFU
3.1. 软件包目录结构
v2.5.0 为例(2021 11 月时最新版本),X-CUBE-SBSFU 软件的目录结构见图 2
和图 3
2. X-CUBE-SBSFU 软件包顶层目录结构
安全启动
复位
可信校验
认证
启动代码
用户应用程序
Vx
应用代码