前言 STM32 X-CUBE-SBSFU 软件包已经发布,提供了安全启动(Secure Boot)和安全固件更新(Secure Firmware Update)功能。安全启动和安全固件更新使用了 STM32 内建的各种软硬件安全技术,构建了从启动开始的根信任链,可以用来防止固件克隆、恶意软件下载以及固件破坏。本文则是带领读者一, I/ C0 x$ I) J% p( m1 f* G 步一步来体验 STM32 安全启动与安全固件更新。: \$ O0 Q( X- N' J % j0 b9 y7 u1 y& u x 硬件 - STM32 NUCLEO-L476RG 开发板5 _6 x+ W4 c% T' q - Mini USB 连接线2 D, z# |0 q( I$ _2 A5 P " }1 |1 T1 a/ t0 m, y) C. `& ~/ D X- CUBE-SBSFU 1. 0.0 从 http://www.st.com/content/st_com ... s/x-cube-sbsfu.html 可以下载: v! a7 x* K1 f2 L8 P0 Q/ { X-CUBE-SBSFU 1.0.0 安全启动以及安全更新组件。因为是安全相关的组件,下载需要发送请求并且需 要得到批准。 读者需要 注册成为 m my.st.com 用户。 批准通过后,你会收到一份邮件,邮件里会包含下载连接。 " a6 a5 h0 c; U& M) D! Y- w SBU SFU 简介3 _2 D% Z7 u o& a: A& G- Z% I& Y+ u 2 STM32 安全启动( secure boot , 简称 SB )功能检查并使能 STM32 安全功能。在执行应用程序前,“安全启动”检查应用程序的完整性以及合法性。若应用程序被非法修改,或者应用程序不具有有效的签名,则应用程序将不会被执行。“安全启动”这段代码的执行,则利用 STM32 的安全 IP,被设计成不可被跳过。, j( M( G+ W/ [( W# ?/ [! Y$ H, m STM32 安全固件更新( secured firmware update , 简称 SFU )则接收经过加密的固件,对它进行解密,在烧写升级的固件前验证它的完整性以及合法性。不完整或者非法来源的固件将不会用来升级。 SBSFU 安全技术概述 现实世界中 MCU 产品并非部署在安全的环境里,总是会面临各种各样的威胁和攻击。SBSFU 使用各类STM32 IP 来构建安全防线,包括: - 使用加解密工具来保证系统的 完整性, 合法性以及 保密性。SBSFU 使用了对称密钥 AES- -M GCM 算法工具来进行固件的解密以及验证。解密算法可由软件实现,也可由 STM32 内建的加解密硬件IP 引擎实现。; B: M6 W/ g) W# e8 H8 z - 使用 STM32 内建安全功能诸如内存保护技术来阻止外部通过 JTAG 或者内部恶意代码的攻击。SBSFU 使用了以下 STM32 安全功能来确保安全启动和安全固件更新的目标。 * i: M: d4 U" I6 [3 o5 y8 m! j SBSFU 的架构) Y! U6 d: L# [' P3 P r5 Y SBSFU 整体架构如下。应用层分为两大部分,一部分是安全启动,检查固件的合法性,进行固件下载和烧写;一部分是用户固件,功能则由用户定制。 - j* e% t3 h5 V' ^% X3 w 安全启动中的 安全引擎(SE) 中间件,提供了一个受保护的环境,来保护所有的关键数据和操作---包括进行加解密操作时时访问密钥等。受保护的代码和数据都是通过唯一的调用门进行访问,不可能在调用门之外来执行受保护代码或者访问关键数据。& t5 H3 Y, q U9 } - ^4 j& \# F# f! V ... + }8 _ e( z5 X" T& E; A5 ^2 `) y# Z 了解更多,请下载后阅读/ e: S: D. ^" f 下载地址1>> 下载地址2>> 更多实战经验>> * H: }& y3 e) _3 i/ Y! C |
对于追求产品安全性的工程师是个好消息。 |
的确不错,可惜只有L4的例子,而且步骤还是太麻烦了,希望以后的版本能继续提升。 |