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

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

[复制链接]
STMCU小助手 发布时间:2023-2-13 15:05
引言在 IoT(物联网)应用中,设备很容易受到通过互联网实施的恶意入侵。因此,保护设备和信息并使可信区域和不可信区域彼此隔离,这些安全主题就非常的重要。
* m' `7 _& ]/ D4 t& ?' f% o# @STM32L5 和 STM32U5 系列器件(本文档的后面部分称其为 STM32L5、STM32U5 或 STM32L5/U5)基于高性能 Arm®Cortex®-M33 32 位 RISC 内核。该处理器使用 Armv8‑M 架构,主要应用于非常注重安全性的环境。
2 c% {6 K+ r: p' c面向 Armv8-M 的 Arm® TrustZone®技术是一种安全扩展,旨在将硬件划分为安全区域和非安全区域。通过 Arm® TrustZone®技术和软件方法,STM32L5/U5 微控制器(MCU)为安全应用程序提供良好的设计灵活性。
# X1 v8 q2 V; t0 @+ v' V% N本文档介绍 Arm® TrustZone®技术和 STM32L5/U5 器件的各项特性,这些特性允许将 MCU 内存/资源划分为安全区域和非安全区域。
) a% i8 E9 ^6 i2 ^7 e5 |1 Z) s" o  k" ]
. T  c/ M# ?5 K( [5 |. \
1概述6 I+ P9 |/ [/ N7 |( U& T  j
本应用笔记适用于基于 Arm® Cortex®内核设备的 STM32L5 和 STM32U5 系列微控制器。# W! }1 d9 c- f- ^# y
提示 Arm 是 Arm Limited(或其子公司)在美国和/或其他地区的注册商标。5 l6 P3 z. s1 |# o7 u9 L3 d9 [
3 W$ C  S) k5 \

* K, Y3 K6 |6 S# l8 N2 Arm TrustZone 技术
: }. G  ?2 T5 F' ]; G3 {- o# P0 S2.1 概述% v2 G. i2 V  D8 \1 Z2 L  Y
面向 Armv8-M 的 Arm TrustZone 技术将系统分为两个区域:一个是安全区域,另一个是非安全区域。安全与非安全区域的划分是基于内存映射的。
2 }" o: B( l2 t; q  L8 R所有可用的微控制器资源(包括 Flash 存储器、SRAM、外部存储器、外设和中断)被分配给安全区域或非安全区域。规划了这些资源的安全属性之后,非安全区域只能访问非安全内存和资源,而安全区域可以访问这两个区域中的所有内存和资源,包括安全和非安全资源。
% ]; z6 u/ B0 @0 B; O. S* u7 ~6 S0 C. T需要保护的重要数据(如加密密钥)必须在安全区域中以安全的方式进行存储和处理。
  c# z# D! h( e; C4 Z代码的执行位置定义了其类型:
$ ~* ]  `7 X* Z• 如果代码在安全内存中执行,则称其为安全代码。0 y) k3 u' c! A& M7 d
• 如果代码在非安全内存中执行,则称其为非安全代码。9 y0 t  q' ?* a7 X
安全代码和非安全代码在相同的 STM32L5/U5 器件上运行,如下图所示。
1 z( L/ L' y0 g8 K) X: K2 j
6 g6 P7 W) B# q& V" y9 t+ m

( `- R! v7 o8 I0 Q: U, ]. Y GCBHNFX%ZW{OVF2`YI6AB7F.png
7 M0 v. I- M1 b  M3 O$ s
8 \1 ]' n# f% N( D) w7 |' b0 {, N

# g7 _) [- v5 W! J, V& |$ o2.2 安全状态
) y; T# M$ `& a1 {. I$ }在简化视图中,执行的代码地址决定了 CPU 的安全状态,即安全或非安全:! b% z  h& [, o: A8 ~& B0 \
• 如果 CPU 在非安全内存中运行代码,则 CPU 处于非安全状态。
& J5 a7 x" K1 {" w5 q* U• 如果 CPU 在安全内存中运行代码,则 CPU 处于安全状态。! p* @8 R; Z1 K; s- d' S
Armv8-M 技术定义了以下地址安全属性:( c. |1 D( {5 E6 A1 _4 \' e
• 安全
' h  }0 ]0 W" a% i) e* r' v; s安全地址用于只能由安全代码或安全 master 访问的内存和外设。安全事务是那些由 master 发起并在安全状态下运行的事务。
& z1 R3 F0 T& }+ N* W• 非安全可调用(NSC), @( x9 a3 u( }. o
NSC 是一种特殊类型的安全位置。这种类型的内存是 Armv8-M 处理器允许为其保留 SG(安全门)指令的唯一类型,该指令允许软件从非安全状态转为安全状态。该 SG 指令可用于防止非安全应用程序从分支进入无效入口点。& N9 e+ F( K/ _! c, d7 W' z
当非安全代码调用安全端函数时:3 Z8 j5 [! V' X( ]/ T0 O
– API 中的第一条指令必须是 SG 指令。
0 H. y4 S& j! z. U" j! {– SG 指令必须在 NSC 区域内。安全代码还提供非安全可调用函数,为非安全代码提供安全服务访问。7 s3 b: v8 ]( v3 _4 Q# v
• 非安全. M" p1 m% ]! _" B+ m" R
非安全地址用于设备上运行的所有软件均可访问的内存和外设。非‑安全事务源自以非安全方式运行的 master或访问非安全地址的安全 master(仅数据事务,非获取指令)。仅允许非安全事务访问非‑安全地址。非安全事务不能访问安全地址。' D3 J5 Q7 b" i! e2 a, I! W% V

# v) M6 w! P" C" a3 在 STM32L5 和 STM32U5 系列器件上实现 TrustZone9 h6 J, h* ^; i' v
3.1 激活 STM32L5 和 STM32U5 TrustZone
% D1 B* O/ j! c! g5 O在 STM32L5/U5 中,TrustZone 是默认禁用的,可以通过在相应的选项字节中设置 TZEN 选项位进行启用。本文档中描述的所有特性适用于启用了 TrustZone 的 STM32L5/U5 器件。4 N: P' o. S3 u2 S+ F! w1 g, ~

' e" A" l& T$ j3 Y4 ]4 O
5 E3 A  E( e6 [4 S* _+ o  i
3.2 TrustZone 框图
* n, p. D' G$ l$ g0 U在 STM32L5/U5 中,TrustZone 的实现得益于 SAU(安全属性单元)、IDAU(实现定义的属性单元)、Flash 存储器和 GTZC(全局 TrustZone 安全控制器 )。$ g& V/ S' u2 Q4 H1 s
下面的框图详细说明了 TrustZone 的实现过程。6 R2 v1 c2 \5 D. _' B/ Q1 h( m

! [% l6 R) ]* p  _. B- y7 z

/ j, B3 ]3 g. G RU02Z0Z`3IC23@SKIZ}(}EF.png
  e* I9 @) o1 h) m6 ^( n0 G5 T2 e6 d2 f. l# s
3.3 安全属性单元(SAU)和实现定义的属性单元(IDAU)5 G2 T0 t( |' _# T+ Q1 }
CPU 看到的内存地址安全状态由内部 SAU(安全属性单元)和 IDAU(实现定义的属性单元)组合控制。安全属性的最终结果取决于 IDAU 和 SAU 其中较高的安全设置。安全属性的优先级如下:- S& v) ^( S; D' O
• 安全具有最高的安全优先级。2 x: Z* P# d" G$ K0 _
• 非安全可调用的安全优先级次之。
% z2 L6 _* U3 X- W! e' U- r" a5 }• 非安全的安全优先级最低。3 l7 R8 ?0 u- a& X
下表显示了如何将特定的安全属性(安全、非安全、激活非安全可调用)分配给特定地址。* D/ U! B" Q; C

3 q$ I) T* O: n: A- S3 a; o5 O! m+ |

; G4 P/ \, Z! Z" i1 w* J9 O I~[O]CM0`}[NS5}2L0XDLKE.png
4 m+ @, r) ?" f9 s, c, ]. g- h
$ O& X' z; p9 d3 f( b
3 ?; @4 J; R7 T
1. 定义的区域与 32 字节边界对齐。
# i: Y* z5 [) H! F6 i7 `( n: g# r2. NSC = 非安全可调用。
3 X- [9 U8 [- r& q
3 U. R: ]4 g6 S3 N/ k8 T4 Y9 \1 d

9 b6 i6 p6 d. A( V2 y; B3.3.1 STM32L5 和 STM32U5 的 IDAU 和存储器别名使用
; i0 ~( R1 e. d1 M- H: cSTM32L5/U5 内存映射遵循 Arm 的建议实现一个重复的内存映射,一个用于安全视图,另一个用于非安全视图。这意味着内存映射的每个区域(代码、SRAM、外设)被分成两个子区域,其中内部存储和外设被解码在两个单独的地址位置 - 非安全视图中和安全视图中。IDAU 的实现定义了这些区域的安全属性。
# B4 \& W. P: ]; R- ~9 k+ V# SIDAU 内存映射分区不可配置。它由硬件确定。下表显示了 STM32L5/U5 IDAU 定义的内存映射安全属性分区。
4 M, z  g: l, F5 z  x$ l
+ C, \7 J3 ~4 s0 O9 Y

/ b; l% R* ?; j. _ 2UP`IS_PCL{~{11PD$G6)O6.png
3 Y7 U  `5 F, W5 ~# }8 @' V9 F% _- N, b+ M$ ^  _

+ @/ ~0 F0 h+ j9 G3 C9 ^2 |- J% B完整版请查看:附件% @( }9 F, ^, Z1 z  [
! {% W' G. v; u9 {; ^' l$ ]
5 Q: a+ ?" z, M! F2 R3 W

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

下载

2.63 MB, 下载次数: 4

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

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版