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

基于 Arm 上的安全启动和安全固件更新概述® TrustZone® STM32L5 系列微控制器

[复制链接]
STMCU小助手 发布时间:2022-7-10 13:29
引言
3 x, g" K2 \$ ^4 y0 b! u本应用笔记描述如何在基于 Arm® Cortex®‑M33 处理器的 Arm® TrustZone® STM32 微控制器上获得安全启动和安全固件更新解决方案。该应用笔记还提供此解决方案与 X-CUBE-SBSFU 解决方案的顶层比较结果,后者适用于基于 Arm® Cortex®‑M0、Cortex®‑M3、Cortex®‑M4、或 Cortex®‑M7 处理器的非 TrustZone®STM32 微控制器。它还为安全启动和安全固件更新解决方案提供顶层集成指南。
3 C" ~2 u% j+ G8 S1 M对于 Arm® TrustZone® STM32 微控制器,安全启动和安全固件更新解决方案在相应的 STM32Cube MCU 包中提供。与X￾CUBE-SBSFU STM32Cube 扩展包中提出的解决方案不同,该解决方案基于开源 TF‑M(面向 Arm® Cortex®‑M 的可信固件)参考实现。' S/ d  ~6 ?) J, T4 A
本应用笔记适用于所有 TrustZone® STM32 微控制器。然而,本文档中仅将 STM32L5 系列作为示例。/ K$ X; ~8 _5 T8 R
如需关于开源 TF‑M 参考实现的详细信息,请参见[TF-M]。0 j: N( ?3 Y6 [

+ c, H* y7 ~* R# C; g- z  M1 概述
; P: X8 c4 E3 B$ G7 }) q! @& _  L
在本应用笔记中,术语 X-CUBE-SBSFU 指的是 X-CUBE-SBSFU STM32Cube 扩展包中可用的安全启动和安全固件更新解决方案,而术语 SBSFU 指的是 STM32Cube MCU 包中可用的安全启动和安全固件更新解决方案(STM32CubeL5 用作示例)。
) t. k& i5 L" o; A! J6 ]5 |! C 5~8]%FGJQW1[(OHAV3_BN8U.png % I6 W! ]4 b* b9 Z6 D3 Y# t0 f
+ D: X: _" Y7 c) [0 H& w4 H# ?

8 [7 H# }1 \2 l: o8 \) e( N! z2 参考

6 R& G. O- g) y! b: q下面的表 2 和表 3 中提供的资源是公开的,可以从意法半导体的网站 www.st.com 或第三方网站上获得。
# ]4 [: ~; S$ Q0 ]# L9 U$ V  a; Y. t: C% u$ Y( l; C
IO6T2J~923$Z7~5[VQ[1]VB.png
; g4 P) o% r" X. ]5 E  C
8 D/ C' z* ]# q8 v ]0HE2_JCDQ3{UG}UMU5~Q3Y.png 5 J1 Y) I1 V  _) Q2 _

/ u! p* q$ G6 X: I" o提示 Mbed 是 Arm Limited(或其子公司)在美国和或其他地区的商标。6 O' p. p5 @) y0 B8 B
. N9 D+ L& z: Z- G& [: U
3 Arm® 可信固件‑M (TF‑M)简介6 Q9 E/ d; R' g) z  M8 {
TF‑M (参照[TF-M])是 Arm Limited 驱动的开源软件框架,在 Arm® Cortex®-M33 (TrustZone®)处理器上提供了PSA 标准的参考实现:
1 ]1 U6 ?# E2 l# c, u' P: A  [" u• PSA 不可变 RoT(信任根):在任何复位后执行的不可变“安全启动和安全固件更新”应用程序。该应用程序基于 MCUboot 开源软件(参照[MCUboot])。
; _; {3 O, l! }& j7 O: d: H: Y4 L• PSA 可更新 RoT:“安全”应用程序实现了一组隔离在安全/特权环境中的安全服务,非安全应用程序可以通过PSA API 在非安全应用程序运行时期中调用这些服务(参照[PSA_API]):+ s/ l. W3 e% f/ U! P3 @% m% \
– 安全存储服务:TF‑M 安全存储(SST)服务实现 PSA 保护的存储 API,允许数据加密并将结果写入可能不可信的存储中。SST 服务采用基于 AEAD 加密策略的 AES-GCM 作为参考,保护数据的完整性和真
' F9 `' A0 J4 l( R' J实性。2 e1 f, Z" k8 C. ]' g
– 内部可信存储服务:TF‑M 内部可信存储(ITS)服务实现 PSA 内部可信存储 API,允许在微控制器内置的闪存区域中写入数据,该区域将通过硬件安全保护机制与非安全或非特权应用程序隔离。& W! {/ v( e7 m! @
– 加密服务:TF‑M 加密服务实现了 PSA 加密 API,允许应用程序使用加密原语,如对称和非对称密码、散列、信息验证码(MAC)和带关联数据的认证加密(AEAD)。它基于 MbedCrypto 开源软件(参照
, t* a- M9 c: e+ F' |[MbedCrypto])。8 P/ A: b# `  x0 G, V
– 初始认证服务:TF‑M 初始认证服务允许应用程序在验证过程中向验证实体证明设备身份。初始认证服务可以根据请求创建一个令牌,其中包含特定于设备的固定数据集。7 E. l) k8 W5 z5 C5 c4 V% k
• 应用程序可更新 RoT:隔离在安全/非特权环境中的第三方安全服务,可以由非安全应用程序在非安全应用程序运行时期中调用。
( X3 T6 o- S$ e: A5 d" w- M+ s) R$ q5 B  j
_3UUNV%(T%Q~LRWJIS5IBSD.png
3 H% f+ _( D% H; X5 o
; ?: C. r6 k- }( `2 F4 V+ n# k4 X-CUBE-SBSFU vs. TF‑M 对比
8 v( ]6 y7 O5 g6 W3 V* H4.1 概述
! o4 @/ h% x. s7 U# k' B
X-CUBE-SBSFU 提供意法半导体的安全启动和安全固件更新实现,以及(仅有选择地面向部分 STM32 系列)应用程序在运行时期可用的安全 KMS(密钥管理服务)服务。
! ^6 e0 g' l  ^/ L' m; L9 m- lTF‑M 参考实现提供基于开源 MCU 启动的安全启动和安全固件更新服务,以及应用程序在运行时期可用的一组安全服务。  U+ \# ^$ `' z6 L$ ?" ]
X-CUBE-SBSFU 和 TF‑M 之间的高层比较请参见图 2
/ ]5 q/ O1 U$ T. t6 Q6 S' s6 J( f: t/ a* {0 f( i. p4 X  V
J9(39X%VDKG(J17JIW91[@X.png
* Z5 A; x' i3 D) P( r
' l; Y. F7 R; B; t% Q6 F' v# I3 x+ `1 d9 D( D) e
TF‑M 的 MCU 启动部分好比 X-CUBE-SBSFU(无 KMS):提供类似的服务。% O: O. j/ H% [9 y9 K% F" Y
X-CUBE-SBSFU KMS 支持的服务类似于 TF‑M 安全加密服务,但是加密算法或特性不一样;即使两者都基于不透明密钥 API 概念,API 也是不同的。请参考相关用户手册([UM2262]和[UM2671])中引用的 X-CUBE-SBSFU 和TF‑M API 文档,获取与所支持的特性有关的详细信息。
7 q" m& g9 I# v1 x3 Z0 F! G6 }4 k, |7 O$ m
4.2 顶层特性
- J: ]1 `( K7 ~! ?. z& B+ |1 X4 k即使 X-CUBE-SBSFU 和 TF‑M 提出类似的服务,两种解决方案的特性也不完全相同。 表 4 总结了 X-CUBE￾SBSFUV2.3.0 中的 X-CUBE-SBSFU 和 STM32CubeL5 V1.2.0 中基于 TF‑M 的应用程序之间的不同。
, r5 u4 d- f; T  g0 t3 v
9 x  V, f: G, @9 G( w) f }AF$VRQG{MZZ}}U[8IY}X%C.png - u' Q7 w. T! g& _4 Q) H
- j/ K  y4 U" C0 Z$ `. ^* Q' G( f

6 W/ n6 ^/ F1 N- M! R6 ^1 j$ J; J0 i要了解最新的特性差异,请参照最新版本的 X-CUBE-SBSFU 扩展包和 STM32CubeL5 MCU 软件包( 可从www.st.com 上的各自产品页面获得)。3 S  |: @4 Z7 M$ p% F
有关 TF‑M 特性的更多信息,请参见[UM2671]。9 z  Q. a3 d3 [3 {

# {8 {" r5 t# \* F+ X, l( Y4.3 硬件安全$ j3 d/ w* ~7 y3 w; ~  p
STM32CubeL5 中基于 TF‑M 的应用程序的安全策略依赖 TrustZone®和 STM32L5 系列硬件安全特性。
- M9 ~% G) Z2 }. k3 q% \9 p! y: |5 ^
T0@ZLC%0YCI2}9K51O@PKTW.png   b3 U9 g2 D' R3 p* y

8 O; D8 W) g. ^% Y3 W( y
2 I4 S0 o+ H2 F5 q9 E7 s5 STM32CubeL5 基于 TF‑M 的应用3 j5 m9 z5 U( j# ~
STM32CubeL5 MCU 软件包基于 TF‑M 参考实现提出两种不同应用,可移植到 STM32L5 系列以利用硬件安全特性的好处。9 l  z/ L% ~% r+ [& {7 I  I1 @
• SBSFU:它包括“安全启动和安全固件更新”应用程序(名为 SBSFU_Boot)简单用户应用程序示例(名为SBSFU_Appli)。
, ]' `( l- a! d/ q$ ^• TFM:它包括“安全启动和安全固件更新”应用程序(TFM_SBSFU_Boot)和在运行时期提供 TFM 安全服务的用户应用程序(名为 TFM_Appli)。/ G- |, Z) L0 s: L5 D, ~
建议使用不带 KMS 的 X-CUBE-SBSFU 的用户考虑迁移到 STM32L5 系列并使用 STM32CubeL5 SBSFU 应用程序。建议使用带 KMS 的 X-CUBE-SBSFU 的用户考虑迁移到 STM32L5 系列 并使用 STM32CubeL5 TFM 应用程序(可能会删除一些安全服务或加密算法以满足应用程序需要)。
9 y) I- }& e0 |: U" G
) ^3 q% f1 e1 b% z& N: p: _/ m$ D" J }`U(]V6JA(P(`}L0BB5R$~4.png 9 W- ^$ G/ s# z1 ]* i
* u6 {! G0 \: C2 Y
通过移除运行时期的 TF‑M 安全服务,STM32CubeL5 SBSFU 应用程序为可用于用户应用程序的闪存容量最大化,如图 5 中所示。4 n7 }+ N4 o, ?
: X+ z$ Z9 U! y2 H3 |! S
ESWR35FJ25%RJZS58ZSB(G4.png
8 g3 s( M% _- t" W' j/ V" w) G, z: `% F
# L5 r) M$ _! I/ w+ s如需关于内存映射的详细信息,请参阅[UM2671]中的内存布局一节。/ T4 u1 x' k( ^% Q" S4 G# f

; S- Y6 S( _0 i. S0 g3 [/ E, m  V# _! }6 g# {1 G
6 STM32CubeL5 SBSFU 应用
! M, i* K/ K& w0 s3 l; C
6.1 用户应用程序集成
1 A1 `- h" a0 `
当将 X-CUBE-SBSFU 应用程序移植到 STM32CubeL5 SBSFU 时, 用户应用程序必须集成到 SBSFU/SBSFU_Appli/NonSecure 文件夹中,如图 6 中所示。
8 d8 n1 b7 x6 _+ k- e$ F$ `此文件夹包含一个简单的用户应用程序示例。
3 m! E" M8 p: j$ Q+ t) c$ x7 A, Q! n3 x! |. z2 Y4 t9 m! N' I
G[$STXJ1I}]KK`BU]KT0EMO.png - _4 f8 L$ k, ]

$ w! h) V4 m1 A7 l: ]6.2 OEM 安全服务集成6 ?; c( b6 U: j8 e- \1 t+ j& r
如果 OEM 自己的安全服务也在 X-CUBE-SBSFU 中实现,这些 OEM 安全服务必须集成到 SBSFU/SBSFU_Appli/Secure 和 SBSFU/SBSFU_Appli/Secure_ncslib 文件夹中, 参照图 7 中所示的 STM32CubeL5 TrustZone®HAL 示例。
# L& V5 s/ T3 ^! C: U# ^这些文件夹包含一个简单的 OEM 安全服务示例:“安全 GPIO 翻转”。 5 K2 z2 Z! ~7 a; t

* i3 A) |6 U' m8 g5 B6 |" [9 t* M ~5OKSYA1~DR5W(RXI@4{TXC.png
+ d% z9 W7 n& f0 j
7 i+ ?$ i2 y  C: Q" x: T8 |6.3 密钥个性化- p. p. x( J2 T+ [% {
在 X-CUBE-SBSFU 中,个性化数据是加密密钥:& g, z) Q& u% l: [6 E) k. Y' p7 y
• AES 对称密钥(CBC 或 GCM):用于固件镜像加密4 _' q8 X, b; F1 E- Q  `
• ECDSA 非对称密钥:用于固件镜像签名: T6 Q' H8 x- @% \; t
SBSFU STM32CubeL5 V1.2.0 中不支持固件加密。没有可个性化的 AES 对称密钥。
% j1 \4 l3 y7 D% J0 C5 f$ v5 P关于固件镜像签名,SBSFU 示例中有两个 RSA 非对称密钥(一个用于安全镜像,一个用于非安全镜像)可进行个性化,而 X-CUBE-SBSFU 中只有一个 ECDSA 非对称密钥。必须注意的是,与 X-CUBE-SBSFU 相反,公共非对称密钥不是在 STM32CubeL5 SBSFU 编译过程中自动生成的,而是需要由用户将其与私有非对称密钥一起提供(参见图 8)。! g5 c* H! r# ?7 A: Z' I

3 ^& y( B  j8 J2 w- I H4SKYDF765%ASRX{$[I6_M8.png
9 U) Y& X5 T$ ~! [0 g
: r; z9 f) p, c6 h% k- E这两个私有 RSA 非对称密钥用于对安全和非安全固件镜像进行签名;它们没有内嵌在闪存中,而两个公共 RSA 非对称密钥存在于 SBSFU_Boot 项目的编译输出中。它们内嵌在专用的不可变 Flash 区域(个性化数据区域)中,如图 9 中所示。2 @6 r2 o8 x! f3 e' |

" f2 v1 S2 b' S3 a, y: W5 C/ Z  E. m  Q% d  j- _$ [

, K: w6 E  I3 H: @" T3 O' Q* v% z 5N6PRZ36GVHFB]X{BF2[ST2.png $ {# ?0 h8 F9 g& g
( [9 F* b. y9 K
7 STM32CubeL5 TFM 应用
1 Y9 a1 C6 i. b9 `& J- y第 6 节 STM32CubeL5 SBSFU 应用中提供的顶层集成指南适用于 STM32CubeL5 TFM 应用。本节中提供特定于STM32CubeL5 TFM 应用的额外顶层集成指南。, h! y; d# B: i/ L
如需关于 STM32CubeL5 TFM 应用的更多信息,请参见[UM2671]。
$ O: G# n, b. ~. x9 t& s( K
4 L( f0 w" {5 M7 ^; v) g* t! V7.1 运行时期的加密安全服务, _" K0 A# f! _. x& v. }2 \  X  r
在 X-CUBE-SBSFU 中,通过 PKCS#11 API 为用户应用程序提供 KMS 服务。在 STM32CubeL5 TFM 应用中,通过 PSA 加密 API 为用户应用程序提供安全加密服务。两者都基于不透明密钥 API 概念。
6 ]+ s$ R; g' V- _: x
) c! O; F, N! b# c YGF5[89741NA}QV69_W%L.png
! Q5 k9 ~! ]0 k# N$ [* h1 E( @* m
关于 PSA API 的更多信息,请参阅 TFM 用户应用程序示例和[PSA_API]。2 ~8 s, u( g2 U6 n3 t
% v! N. L* s7 g4 Z" p
7.2 OEM 安全服务集成1 h) F) L! H# k, F2 M$ o
如图 11 中所示,OEM 安全服务必须集成为安全应用程序的安全/非特权部分中的第三方安全服务(称为“来自 TFM框架的应用程序 RoT”)。关于“来自 TFM 框架的应用程序 RoT”,请参照[UM2671]。
5 b0 f* B, t1 g
) C4 `0 G" w6 f& E" D 2 j( \4 ^. ]. c5 t$ U
5 B( l& S/ X+ A% F; y9 S8 H+ }

$ O6 D, Q# ]9 q) R" x- e如图 12 中所示,这些服务必须集成在 Middlewares/trustedfirmware 文件夹中。关于更多信息,请参见[TFM 用户指南]。 7 Y5 T' ~" W. a- [; M6 E
0 R' K0 s1 j9 b. _( i
AH0%)8PGJO58AM`VXK21I.png . k+ D; f! m: q

: [8 _5 [$ |. l* r7 G" {4 A/ Y+ T- T' `- v) o
7.3 数据个性化
* a- \6 s3 d' @+ X  q; ^除了固件镜像身份验证密钥,TFM 应用程序的个性化还需要额外数据:EAT 密钥、HUK 和实例 ID。TF‑M 初始认证服务需要这些数据。它们是特定于产品的(每个器件所独有的)。这些数据与公共 RSA 非对称密钥一起被分组在专用的不可变 Flash 区域(个性化数据区域)中,在激活最终安全配置之前,必须针对生产中的每个器件对该区域进行个性化设置。
# _! T4 x6 s! e6 L
6 M* J1 E5 X2 |! N; {0 H' G( b1 ]1 m H(F@[S)`0@FJ)A0P}XJ7[56.png 9 y! M5 B7 k( L3 h3 ^0 C7 p/ Z

& i- y9 b' W- X- A! T" F5 i, }) W  U: w
如需关于个性化数据的更多细节,请参阅[UM2671]中的集成者角色描述一节。. C( c7 t6 T1 m0 {6 C! {; U9 p

$ Y; c6 u, {9 n" K( C6 f  q! f" {
( D, K1 m" [5 x
) \/ m8 u7 s5 q9 q0 r- l! {& V  d. B; X- _, Z: ?
赞 收藏 评论0 发布时间:2022-7-10 13:29

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版