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

Arm® TrustZone®特性面向 STM32L5 和 STM32U5 系列

[复制链接]
STMCU小助手 发布时间:2023-2-13 15:05
引言在 IoT(物联网)应用中,设备很容易受到通过互联网实施的恶意入侵。因此,保护设备和信息并使可信区域和不可信区域彼此隔离,这些安全主题就非常的重要。
2 h8 _  X; h# l6 w, aSTM32L5 和 STM32U5 系列器件(本文档的后面部分称其为 STM32L5、STM32U5 或 STM32L5/U5)基于高性能 Arm®Cortex®-M33 32 位 RISC 内核。该处理器使用 Armv8‑M 架构,主要应用于非常注重安全性的环境。
4 Z8 \# Q) o& |6 c面向 Armv8-M 的 Arm® TrustZone®技术是一种安全扩展,旨在将硬件划分为安全区域和非安全区域。通过 Arm® TrustZone®技术和软件方法,STM32L5/U5 微控制器(MCU)为安全应用程序提供良好的设计灵活性。
9 Z4 K. ~( ~+ e& x本文档介绍 Arm® TrustZone®技术和 STM32L5/U5 器件的各项特性,这些特性允许将 MCU 内存/资源划分为安全区域和非安全区域。& }, N" f3 E  V
. u% {/ x, Y0 X' M3 T# _6 K
* t" H/ N3 [7 L+ e  E
1概述
, A' s/ H5 `* ~+ O, M, n; Q  @本应用笔记适用于基于 Arm® Cortex®内核设备的 STM32L5 和 STM32U5 系列微控制器。" E+ J: h; y( L! {# c0 X
提示 Arm 是 Arm Limited(或其子公司)在美国和/或其他地区的注册商标。
3 b+ z9 d# D9 p" T; ]" R2 ?0 P) z
! p$ X& {" d+ ~" Y1 d

, E* l; l$ U6 u" A/ U; K2 Arm TrustZone 技术
' \" j* `4 n3 ?; m! n( l1 F/ _2.1 概述
9 q; U3 r" r' W/ [. g5 X面向 Armv8-M 的 Arm TrustZone 技术将系统分为两个区域:一个是安全区域,另一个是非安全区域。安全与非安全区域的划分是基于内存映射的。
' }/ P# u9 n% s& v所有可用的微控制器资源(包括 Flash 存储器、SRAM、外部存储器、外设和中断)被分配给安全区域或非安全区域。规划了这些资源的安全属性之后,非安全区域只能访问非安全内存和资源,而安全区域可以访问这两个区域中的所有内存和资源,包括安全和非安全资源。/ y0 P9 W8 K, b3 ]: r
需要保护的重要数据(如加密密钥)必须在安全区域中以安全的方式进行存储和处理。# p$ U/ E% ^# ]8 k
代码的执行位置定义了其类型:
6 p. V# P; l' Y. y• 如果代码在安全内存中执行,则称其为安全代码。
3 h. P$ D; b, M0 i# L/ C. t* ^0 v• 如果代码在非安全内存中执行,则称其为非安全代码。
  g5 V/ V  s0 r安全代码和非安全代码在相同的 STM32L5/U5 器件上运行,如下图所示。8 {' [6 K' n* L, F

' k5 }0 X& K' U& o. O7 z$ \( r/ n
* i# @  G+ V; E& y) P9 n) C
GCBHNFX%ZW{OVF2`YI6AB7F.png
( k  N3 t, [3 S2 k/ P8 |$ c6 D5 j
2 Y& @1 A( }! f4 W9 p$ a6 i

/ N" |5 i8 e" L) Q+ a% N0 D2.2 安全状态" [& E: a  q+ C, }
在简化视图中,执行的代码地址决定了 CPU 的安全状态,即安全或非安全:* X7 Q# c/ f- Z4 ?
• 如果 CPU 在非安全内存中运行代码,则 CPU 处于非安全状态。7 ~( Z% k, |3 t- y* W
• 如果 CPU 在安全内存中运行代码,则 CPU 处于安全状态。* W4 V- g+ n) L4 o8 i
Armv8-M 技术定义了以下地址安全属性:
* t6 g8 \; s: Q  C. V• 安全) X0 `  t) J/ `2 z
安全地址用于只能由安全代码或安全 master 访问的内存和外设。安全事务是那些由 master 发起并在安全状态下运行的事务。- U0 L6 x! v& _3 i+ p
• 非安全可调用(NSC)! j5 _! G" r$ [0 x
NSC 是一种特殊类型的安全位置。这种类型的内存是 Armv8-M 处理器允许为其保留 SG(安全门)指令的唯一类型,该指令允许软件从非安全状态转为安全状态。该 SG 指令可用于防止非安全应用程序从分支进入无效入口点。! z/ j: L# C) S
当非安全代码调用安全端函数时:- F: F4 Y( |) ^
– API 中的第一条指令必须是 SG 指令。3 l+ g  ?2 p  s4 a, E1 q
– SG 指令必须在 NSC 区域内。安全代码还提供非安全可调用函数,为非安全代码提供安全服务访问。+ T: y! M1 x& w( s! g/ l' I% ]: R& u
• 非安全
( V9 _$ B( |1 `非安全地址用于设备上运行的所有软件均可访问的内存和外设。非‑安全事务源自以非安全方式运行的 master或访问非安全地址的安全 master(仅数据事务,非获取指令)。仅允许非安全事务访问非‑安全地址。非安全事务不能访问安全地址。
  w/ v! [" \' p, Z$ L% ~* ?( }; N/ j
3 在 STM32L5 和 STM32U5 系列器件上实现 TrustZone( s/ @7 X6 H2 A+ T0 _: N" ]
3.1 激活 STM32L5 和 STM32U5 TrustZone$ O( B  d( [& Z7 o
在 STM32L5/U5 中,TrustZone 是默认禁用的,可以通过在相应的选项字节中设置 TZEN 选项位进行启用。本文档中描述的所有特性适用于启用了 TrustZone 的 STM32L5/U5 器件。: F$ Z) w, k: u4 T6 W  {

. n7 B# |& |0 o! ]

- y2 l/ n2 M0 j0 ~" ]. G9 b3.2 TrustZone 框图  l4 ~( f; b) _$ z
在 STM32L5/U5 中,TrustZone 的实现得益于 SAU(安全属性单元)、IDAU(实现定义的属性单元)、Flash 存储器和 GTZC(全局 TrustZone 安全控制器 )。9 I, E6 G  F/ F( w3 R% M/ t. I* ^
下面的框图详细说明了 TrustZone 的实现过程。' ~" J7 M" p" k/ e8 W& ?' \2 l
, O) P6 S1 Q/ u
3 g- K# H+ ?5 q5 p" ^2 F
RU02Z0Z`3IC23@SKIZ}(}EF.png
) R: n6 o. S# ~8 h1 \. C3 D  [1 J9 T9 Q) L; i
3.3 安全属性单元(SAU)和实现定义的属性单元(IDAU)
" n4 q- c+ P: H9 A3 T( OCPU 看到的内存地址安全状态由内部 SAU(安全属性单元)和 IDAU(实现定义的属性单元)组合控制。安全属性的最终结果取决于 IDAU 和 SAU 其中较高的安全设置。安全属性的优先级如下:
) ]7 l& {( r. i1 S/ U: p• 安全具有最高的安全优先级。
( y7 _- j. {& v" q* _' t5 A0 v• 非安全可调用的安全优先级次之。$ G6 Y" |5 l; L& z, v9 [$ Z
• 非安全的安全优先级最低。- }' K  {. `, K( R& Q+ Z
下表显示了如何将特定的安全属性(安全、非安全、激活非安全可调用)分配给特定地址。
8 p0 k, |1 X$ ]# h$ a$ v0 w  e7 j
/ f- Z' w5 b; k3 e
I~[O]CM0`}[NS5}2L0XDLKE.png
9 `7 y" R* R" Y: q0 ?: |1 z. x
  d. c# w' `2 ]0 N- r4 E+ H- M

( r- l0 x8 p  f* l- C1. 定义的区域与 32 字节边界对齐。
9 x9 ~% E5 f6 Y" @; ^; P6 _6 W* }# K2. NSC = 非安全可调用。( w$ `$ j8 E. v) f

- j  E3 n4 W( X) q
+ i& p* f3 Y( B
3.3.1 STM32L5 和 STM32U5 的 IDAU 和存储器别名使用
1 u# a$ t6 C# TSTM32L5/U5 内存映射遵循 Arm 的建议实现一个重复的内存映射,一个用于安全视图,另一个用于非安全视图。这意味着内存映射的每个区域(代码、SRAM、外设)被分成两个子区域,其中内部存储和外设被解码在两个单独的地址位置 - 非安全视图中和安全视图中。IDAU 的实现定义了这些区域的安全属性。
2 q! U" Q" L  @$ YIDAU 内存映射分区不可配置。它由硬件确定。下表显示了 STM32L5/U5 IDAU 定义的内存映射安全属性分区。
8 q7 D, P. G1 l7 A# M3 N
5 ]( K+ ~! C/ o5 x; a% K- E
. K# _! b( I9 W# O2 H6 B
2UP`IS_PCL{~{11PD$G6)O6.png
7 w. l/ e1 _3 c3 S2 R; a2 l
9 }# F9 o; a6 X: P
3 s* \1 E; D! s# e' }7 Z' `( ]
完整版请查看:附件
) E* a; |/ A# C. x6 i+ Z% e  y! _3 M7 A6 s) w1 G; y; L

; i: w2 e4 l% K+ j7 h$ r0 g- F

Arm® TrustZone®特性面向 STM32L5 和 STM32U5 系列.pdf

下载

2.63 MB, 下载次数: 4

收藏 评论0 发布时间:2023-2-13 15:05

举报

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