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

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

[复制链接]
STMCU小助手 发布时间:2022-7-10 13:29
引言
. ^5 v3 ^5 I1 W; _7 p' r本应用笔记描述如何在基于 Arm® Cortex®‑M33 处理器的 Arm® TrustZone® STM32 微控制器上获得安全启动和安全固件更新解决方案。该应用笔记还提供此解决方案与 X-CUBE-SBSFU 解决方案的顶层比较结果,后者适用于基于 Arm® Cortex®‑M0、Cortex®‑M3、Cortex®‑M4、或 Cortex®‑M7 处理器的非 TrustZone®STM32 微控制器。它还为安全启动和安全固件更新解决方案提供顶层集成指南。
7 |8 o1 g" w* @/ D5 D2 L对于 Arm® TrustZone® STM32 微控制器,安全启动和安全固件更新解决方案在相应的 STM32Cube MCU 包中提供。与X￾CUBE-SBSFU STM32Cube 扩展包中提出的解决方案不同,该解决方案基于开源 TF‑M(面向 Arm® Cortex®‑M 的可信固件)参考实现。
6 i8 s+ y  [1 R8 i9 s本应用笔记适用于所有 TrustZone® STM32 微控制器。然而,本文档中仅将 STM32L5 系列作为示例。
* E9 K; v: p1 A4 _; l% O7 d如需关于开源 TF‑M 参考实现的详细信息,请参见[TF-M]。5 ]! @' f) j5 D. j& D
2 c! x. U2 g+ ?6 A( k
1 概述
2 S" ?& j  b/ t
在本应用笔记中,术语 X-CUBE-SBSFU 指的是 X-CUBE-SBSFU STM32Cube 扩展包中可用的安全启动和安全固件更新解决方案,而术语 SBSFU 指的是 STM32Cube MCU 包中可用的安全启动和安全固件更新解决方案(STM32CubeL5 用作示例)。+ {6 @3 K  Q. L1 ~$ }
5~8]%FGJQW1[(OHAV3_BN8U.png 0 ?* D7 G- }5 f2 D% W

) ^: E8 R$ `3 Q6 n: D
& R3 N1 Z1 c7 H( W* P2 参考
  {0 q. N* m, P7 }/ F9 {- Y) v/ u
下面的表 2 和表 3 中提供的资源是公开的,可以从意法半导体的网站 www.st.com 或第三方网站上获得。
: |7 h1 r& g, `! E# A" G+ k( x! ?
- s! S5 w, R: d IO6T2J~923$Z7~5[VQ[1]VB.png 8 C) C( E! k2 ]1 A2 g# I
- @  S2 J4 |* ]# L1 `
]0HE2_JCDQ3{UG}UMU5~Q3Y.png
! Q' v$ s: A# X  I: k% ]! t3 d+ P% v% f; R6 G, u
提示 Mbed 是 Arm Limited(或其子公司)在美国和或其他地区的商标。5 Q$ u: `" c; r( Z' |

2 a/ O/ s: K' _6 d3 Arm® 可信固件‑M (TF‑M)简介& k$ f1 {, C" r/ p# Q/ n* h
TF‑M (参照[TF-M])是 Arm Limited 驱动的开源软件框架,在 Arm® Cortex®-M33 (TrustZone®)处理器上提供了PSA 标准的参考实现:9 d( ~3 P" e1 R( v  G3 q  Y' ]
• PSA 不可变 RoT(信任根):在任何复位后执行的不可变“安全启动和安全固件更新”应用程序。该应用程序基于 MCUboot 开源软件(参照[MCUboot])。% p, g& Y# `) J0 @8 R3 E* }4 Z
• PSA 可更新 RoT:“安全”应用程序实现了一组隔离在安全/特权环境中的安全服务,非安全应用程序可以通过PSA API 在非安全应用程序运行时期中调用这些服务(参照[PSA_API]):! K' J7 F, }' M) a. h" B1 {+ ~1 C
– 安全存储服务:TF‑M 安全存储(SST)服务实现 PSA 保护的存储 API,允许数据加密并将结果写入可能不可信的存储中。SST 服务采用基于 AEAD 加密策略的 AES-GCM 作为参考,保护数据的完整性和真
; Y! R5 m4 i( D# O7 P. q实性。- _/ F0 `  l: Q3 P
– 内部可信存储服务:TF‑M 内部可信存储(ITS)服务实现 PSA 内部可信存储 API,允许在微控制器内置的闪存区域中写入数据,该区域将通过硬件安全保护机制与非安全或非特权应用程序隔离。  N( h% k8 W7 _8 O# t
– 加密服务:TF‑M 加密服务实现了 PSA 加密 API,允许应用程序使用加密原语,如对称和非对称密码、散列、信息验证码(MAC)和带关联数据的认证加密(AEAD)。它基于 MbedCrypto 开源软件(参照
2 S: R# `. z, g[MbedCrypto])。
# K" S* t! {( T) q- Z+ q– 初始认证服务:TF‑M 初始认证服务允许应用程序在验证过程中向验证实体证明设备身份。初始认证服务可以根据请求创建一个令牌,其中包含特定于设备的固定数据集。- j& H1 T) K. O
• 应用程序可更新 RoT:隔离在安全/非特权环境中的第三方安全服务,可以由非安全应用程序在非安全应用程序运行时期中调用。* T. p# |( F9 }2 G
+ d: m' F& l; }9 b. ^
_3UUNV%(T%Q~LRWJIS5IBSD.png # ~* ]4 t5 s+ h- k: Z" W

0 o& n- N7 ~4 {, R7 K4 X-CUBE-SBSFU vs. TF‑M 对比3 x8 P* {& T0 Y2 r# M& |
4.1 概述
: Q+ _+ K  F+ f$ b) q6 ~6 I' }, ?
X-CUBE-SBSFU 提供意法半导体的安全启动和安全固件更新实现,以及(仅有选择地面向部分 STM32 系列)应用程序在运行时期可用的安全 KMS(密钥管理服务)服务。+ ]' n8 z; t. @% X  T% e
TF‑M 参考实现提供基于开源 MCU 启动的安全启动和安全固件更新服务,以及应用程序在运行时期可用的一组安全服务。/ @7 @3 o; B4 ^) A- {7 n% {4 E
X-CUBE-SBSFU 和 TF‑M 之间的高层比较请参见图 24 O$ I  U  A4 f1 C. y& O
% C1 S3 z( s" m( _" O  U' U/ Y& v
J9(39X%VDKG(J17JIW91[@X.png / g+ G/ h  g4 H6 u6 X" B) t  i

; h5 ]% n) i* ^- ^/ P8 F
9 i) N/ B# }7 j! C+ HTF‑M 的 MCU 启动部分好比 X-CUBE-SBSFU(无 KMS):提供类似的服务。' k: m9 s( p* y1 e: L/ F
X-CUBE-SBSFU KMS 支持的服务类似于 TF‑M 安全加密服务,但是加密算法或特性不一样;即使两者都基于不透明密钥 API 概念,API 也是不同的。请参考相关用户手册([UM2262]和[UM2671])中引用的 X-CUBE-SBSFU 和TF‑M API 文档,获取与所支持的特性有关的详细信息。! P, |) w, v( v) o3 A; q' g

' H) e. [/ v( a, S  O" N4.2 顶层特性0 f. J- e, p" m: B" c
即使 X-CUBE-SBSFU 和 TF‑M 提出类似的服务,两种解决方案的特性也不完全相同。 表 4 总结了 X-CUBE￾SBSFUV2.3.0 中的 X-CUBE-SBSFU 和 STM32CubeL5 V1.2.0 中基于 TF‑M 的应用程序之间的不同。
; G$ D9 t5 i* a5 Y  X0 E+ Q( ^% Q- e: x1 V8 h" l$ M/ ^' D
}AF$VRQG{MZZ}}U[8IY}X%C.png 2 X7 J. `2 ]5 m7 E( D- [( v0 y
9 U, O; v2 Y  D! Y) z: _

% V8 I& ~6 j: j9 ~! w$ E1 l" q要了解最新的特性差异,请参照最新版本的 X-CUBE-SBSFU 扩展包和 STM32CubeL5 MCU 软件包( 可从www.st.com 上的各自产品页面获得)。
: g- Y" U; {9 B3 N3 c! R有关 TF‑M 特性的更多信息,请参见[UM2671]。
$ _0 z( x0 M$ Q& }$ @2 _8 E7 S
2 X; S( N3 l3 K4 v4.3 硬件安全
* |, W% j! t; v3 ~STM32CubeL5 中基于 TF‑M 的应用程序的安全策略依赖 TrustZone®和 STM32L5 系列硬件安全特性。! U9 A0 \1 w& V5 K

9 l4 a: P' B, ~5 v4 m T0@ZLC%0YCI2}9K51O@PKTW.png : y5 c1 I8 ^6 R) `. j6 C2 S6 \
( P! z* A/ M( Q6 f+ X

; v/ t" i( z7 _  H" E4 P5 STM32CubeL5 基于 TF‑M 的应用+ p+ ~/ @' D! B1 [2 j
STM32CubeL5 MCU 软件包基于 TF‑M 参考实现提出两种不同应用,可移植到 STM32L5 系列以利用硬件安全特性的好处。" {% M4 q) W: c4 A
• SBSFU:它包括“安全启动和安全固件更新”应用程序(名为 SBSFU_Boot)简单用户应用程序示例(名为SBSFU_Appli)。1 q( ?7 ~! G# M( H
• TFM:它包括“安全启动和安全固件更新”应用程序(TFM_SBSFU_Boot)和在运行时期提供 TFM 安全服务的用户应用程序(名为 TFM_Appli)。5 p5 N( {6 i) n& Z! c( S' N
建议使用不带 KMS 的 X-CUBE-SBSFU 的用户考虑迁移到 STM32L5 系列并使用 STM32CubeL5 SBSFU 应用程序。建议使用带 KMS 的 X-CUBE-SBSFU 的用户考虑迁移到 STM32L5 系列 并使用 STM32CubeL5 TFM 应用程序(可能会删除一些安全服务或加密算法以满足应用程序需要)。+ F, U! x' U4 N" {. o
  V! j2 W9 i. t- |3 V6 P
}`U(]V6JA(P(`}L0BB5R$~4.png - A& E. o( S( T
, H6 h* a! A5 Z8 i  k0 q) w  J
通过移除运行时期的 TF‑M 安全服务,STM32CubeL5 SBSFU 应用程序为可用于用户应用程序的闪存容量最大化,如图 5 中所示。
% l! U  k! C$ O& E1 |# d' n" b  e" O! n/ D+ @& x
ESWR35FJ25%RJZS58ZSB(G4.png * |9 M' C5 p. d1 Z9 z
) Y: S: m; P3 ~. c) g
如需关于内存映射的详细信息,请参阅[UM2671]中的内存布局一节。
* s: e) k  S' w: b8 [% U3 E( X+ [& |3 G2 O  [3 G

# n( {4 R' h3 O- g9 v; @& q6 STM32CubeL5 SBSFU 应用

- j0 R" l6 d# c8 H6.1 用户应用程序集成

0 P' R; I* A/ b; y9 D# n# ^/ h: T当将 X-CUBE-SBSFU 应用程序移植到 STM32CubeL5 SBSFU 时, 用户应用程序必须集成到 SBSFU/SBSFU_Appli/NonSecure 文件夹中,如图 6 中所示。# Q# h6 T9 Q" w7 x0 b: b+ y
此文件夹包含一个简单的用户应用程序示例。
. M0 C0 b3 K' z* m  M
" F: S# d0 l/ F. } G[$STXJ1I}]KK`BU]KT0EMO.png , r( N5 _& l3 o0 \
) |7 G9 x- o( v# _2 F% s/ ^  c
6.2 OEM 安全服务集成5 Q" T3 X3 f& t
如果 OEM 自己的安全服务也在 X-CUBE-SBSFU 中实现,这些 OEM 安全服务必须集成到 SBSFU/SBSFU_Appli/Secure 和 SBSFU/SBSFU_Appli/Secure_ncslib 文件夹中, 参照图 7 中所示的 STM32CubeL5 TrustZone®HAL 示例。
7 O* c0 n2 W9 u" J) N这些文件夹包含一个简单的 OEM 安全服务示例:“安全 GPIO 翻转”。
- ^" k2 e/ W( I4 M4 G. c+ g
9 F. q) p  V! p0 g, T ~5OKSYA1~DR5W(RXI@4{TXC.png
, T: `1 e8 {  }# K5 B( F/ `1 I0 @9 G( Z6 p% \
6.3 密钥个性化  W% I* t  q% m  w" h# h
在 X-CUBE-SBSFU 中,个性化数据是加密密钥:$ F# g, \' |2 C3 g& U0 a* E& w
• AES 对称密钥(CBC 或 GCM):用于固件镜像加密$ ^* l+ J; C, L4 o
• ECDSA 非对称密钥:用于固件镜像签名. L* |0 x7 U. W% f# X6 w8 J  |
SBSFU STM32CubeL5 V1.2.0 中不支持固件加密。没有可个性化的 AES 对称密钥。
% |& ?5 N1 g2 g( ~! ^6 y关于固件镜像签名,SBSFU 示例中有两个 RSA 非对称密钥(一个用于安全镜像,一个用于非安全镜像)可进行个性化,而 X-CUBE-SBSFU 中只有一个 ECDSA 非对称密钥。必须注意的是,与 X-CUBE-SBSFU 相反,公共非对称密钥不是在 STM32CubeL5 SBSFU 编译过程中自动生成的,而是需要由用户将其与私有非对称密钥一起提供(参见图 8)。
5 @! k; G" _8 B: k' {1 s9 O  y+ H, P& U
H4SKYDF765%ASRX{$[I6_M8.png
6 {5 z8 Y: p  Y) V$ X$ |$ {, w
6 p% ?) I, G% X8 L  a4 I% ~* _  a这两个私有 RSA 非对称密钥用于对安全和非安全固件镜像进行签名;它们没有内嵌在闪存中,而两个公共 RSA 非对称密钥存在于 SBSFU_Boot 项目的编译输出中。它们内嵌在专用的不可变 Flash 区域(个性化数据区域)中,如图 9 中所示。" B7 L& m" m( o6 K* _7 }
3 k( ?! B: s/ I- X* i1 s1 n

2 q, W/ ]0 Q3 w: v! L* w- i- k1 k, {3 P% o2 H! x
5N6PRZ36GVHFB]X{BF2[ST2.png
5 R6 @( P- b5 D6 \7 C' P
9 n% [7 d6 _7 K3 E8 L% B5 A$ i  ~7 STM32CubeL5 TFM 应用
* d" f; a# f8 F* I. R第 6 节 STM32CubeL5 SBSFU 应用中提供的顶层集成指南适用于 STM32CubeL5 TFM 应用。本节中提供特定于STM32CubeL5 TFM 应用的额外顶层集成指南。
) G% i# l1 J; e, M4 \% a如需关于 STM32CubeL5 TFM 应用的更多信息,请参见[UM2671]。1 n+ {  M: V: y4 O
0 I: m# _9 U$ \  N
7.1 运行时期的加密安全服务
/ W3 L6 _1 T! f2 n在 X-CUBE-SBSFU 中,通过 PKCS#11 API 为用户应用程序提供 KMS 服务。在 STM32CubeL5 TFM 应用中,通过 PSA 加密 API 为用户应用程序提供安全加密服务。两者都基于不透明密钥 API 概念。0 L0 x% \. `6 {0 [& ?. S

5 r0 V7 C7 w" H2 p' A3 }- J2 E8 u YGF5[89741NA}QV69_W%L.png ( C4 `% t1 X$ |9 S3 u: i4 H- K

( y# R- y) J  [+ M关于 PSA API 的更多信息,请参阅 TFM 用户应用程序示例和[PSA_API]。( H0 z2 ^5 b0 I5 P
0 m" ~' |; g  w  i! {* B' i1 i
7.2 OEM 安全服务集成
1 a2 u) l& E1 b, l7 d" q如图 11 中所示,OEM 安全服务必须集成为安全应用程序的安全/非特权部分中的第三方安全服务(称为“来自 TFM框架的应用程序 RoT”)。关于“来自 TFM 框架的应用程序 RoT”,请参照[UM2671]。  J1 N6 [2 Z5 @6 A+ W  C1 R
& V( g, R4 Y! Q
& r7 o8 @7 l4 O
: G4 K8 T6 Z$ Q9 o0 w7 ^: r3 N1 }

/ p7 F1 f: e& [. E2 K' ]如图 12 中所示,这些服务必须集成在 Middlewares/trustedfirmware 文件夹中。关于更多信息,请参见[TFM 用户指南]。 ! J* C: B( U4 j. F- }

5 t7 `) m) K9 b2 S3 f& G$ t- `$ G AH0%)8PGJO58AM`VXK21I.png
. [& \7 O& D' v4 f; P3 B- P# _  w+ u+ ?! S% q9 P* w/ N

  {' {# x, w7 l1 V" i) a/ B7.3 数据个性化$ ?7 _# e  s- ~' A' [
除了固件镜像身份验证密钥,TFM 应用程序的个性化还需要额外数据:EAT 密钥、HUK 和实例 ID。TF‑M 初始认证服务需要这些数据。它们是特定于产品的(每个器件所独有的)。这些数据与公共 RSA 非对称密钥一起被分组在专用的不可变 Flash 区域(个性化数据区域)中,在激活最终安全配置之前,必须针对生产中的每个器件对该区域进行个性化设置。( Y6 f, q8 G1 n+ @% w0 F  G

6 v# v7 O, {! s- G2 k! V. l H(F@[S)`0@FJ)A0P}XJ7[56.png ' Q: c' j& X% `) C8 b

4 ?: _3 A% _- _! K
& c1 a: F  K6 |# t如需关于个性化数据的更多细节,请参阅[UM2671]中的集成者角色描述一节。
5 n7 z' E, p" W: _: ^+ v* K( c! }/ T- o
. Q1 _7 [( y8 v( G3 S8 O( v; O
$ [0 h8 E6 }: a0 @  W, R, J
% L! N# `  i, s2 ~
收藏 评论0 发布时间:2022-7-10 13:29

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版