你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

一步一步使用 STM32 安全启动与固件更新

[复制链接]
zero99 发布时间:2018-3-27 11:58
前言
  w( H# K( O, Y( S! BSTM32 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
硬件
. G! E! I. _  K. \- 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
/ F" Z( ?8 N( O+ a0 ?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 安全启动以及安全更新组件。因为是安全相关的组件,下载需要发送请求并且需
. }* |( N0 g8 \4 d2 k要得到批准。 读者需要 注册成为 m my.st.com 用户。  
8 o8 g( U& V- [ 31.png
: S8 O) q' y! @. Z! L* o
$ g" Y" T. f4 V, _批准通过后,你会收到一份邮件,邮件里会包含下载连接。
  g1 Q$ e; s, Q8 ~  W 32.png / n: I' c4 F; h3 C& B0 Y1 I
" 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
33.png
" A; r) D# {8 |6 J+ r* x7 {7 h$ `8 w
! X6 g+ p. A2 b3 u: c/ `4 W/ nSTM32  安全固件更新( secured  firmware update , 简称  SFU )则接收经过加密的固件,对它进行解密,在烧写升级的固件前验证它的完整性以及合法性。不完整或者非法来源的固件将不会用来升级。
- ?: m  X) S, P2 r0 |$ s, z 34.png
3 d; f: G0 |0 C8 ]+ a8 F
) z2 }$ T4 `0 P. W+ u* D! a8 QSBSFU  安全技术概述
- N& |& @* O# s5 p6 B现实世界中 MCU 产品并非部署在安全的环境里,总是会面临各种各样的威胁和攻击。SBSFU 使用各类STM32 IP 来构建安全防线,包括:
/ P# x6 b3 b- a9 @2 K- 使用加解密工具来保证系统的 完整性, 合法性以及 保密性。SBSFU 使用了对称密钥  AES- -M GCM 算法工具来进行固件的解密以及验证。解密算法可由软件实现,也可由 STM32 内建的加解密硬件IP 引擎实现。; B: M6 W/ g) W# e8 H8 z
- 使用 STM32 内建安全功能诸如内存保护技术来阻止外部通过 JTAG 或者内部恶意代码的攻击。SBSFU 使用了以下 STM32 安全功能来确保安全启动和安全固件更新的目标。
+ G$ A0 l& [4 v8 O7 }. _2 `9 T# a 35.png 4 r( S+ h0 D4 _! V7 }+ M% R* A8 g
* i: M: d4 U" I6 [3 o5 y8 m! j
SBSFU  的架构) Y! U6 d: L# [' P3 P  r5 Y
SBSFU 整体架构如下。应用层分为两大部分,一部分是安全启动,检查固件的合法性,进行固件下载和烧写;一部分是用户固件,功能则由用户定制。
2 v, o  n; c9 E- U- H% S5 O 36.png - z/ g4 W1 }' p: b, b
- j* e% t3 h5 V' ^% X3 w
安全启动中的 安全引擎(SE) 中间件,提供了一个受保护的环境,来保护所有的关键数据和操作---包括进行加解密操作时时访问密钥等。受保护的代码和数据都是通过唯一的调用门进行访问,不可能在调用门之外来执行受保护代码或者访问关键数据。& t5 H3 Y, q  U9 }
- ^4 j& \# F# f! V
...
+ B* a, N$ z  H/ E$ o+ }8 _  e( z5 X" T& E; A5 ^2 `) y# Z
了解更多,请下载后阅读/ e: S: D. ^" f
下载地址1>>         下载地址2>>       更多实战经验>>
6 z+ _+ o$ Y& E, ]4 j3 d) f
% ^2 P: C# P* M) S* H: }& y3 e) _3 i/ Y! C
收藏 1 评论2 发布时间:2018-3-27 11:58

举报

2个回答
hello_bug 回答时间:2018-3-28 07:45:48
对于追求产品安全性的工程师是个好消息。
kylongmu 回答时间:2018-3-29 16:32:56
的确不错,可惜只有L4的例子,而且步骤还是太麻烦了,希望以后的版本能继续提升。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版