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

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

[复制链接]
STMCU小助手 发布时间:2023-2-13 15:05
引言在 IoT(物联网)应用中,设备很容易受到通过互联网实施的恶意入侵。因此,保护设备和信息并使可信区域和不可信区域彼此隔离,这些安全主题就非常的重要。: B, L5 L% {: ^" {
STM32L5 和 STM32U5 系列器件(本文档的后面部分称其为 STM32L5、STM32U5 或 STM32L5/U5)基于高性能 Arm®Cortex®-M33 32 位 RISC 内核。该处理器使用 Armv8‑M 架构,主要应用于非常注重安全性的环境。8 ^9 J+ m3 O$ F* k0 a
面向 Armv8-M 的 Arm® TrustZone®技术是一种安全扩展,旨在将硬件划分为安全区域和非安全区域。通过 Arm® TrustZone®技术和软件方法,STM32L5/U5 微控制器(MCU)为安全应用程序提供良好的设计灵活性。' A9 z2 n% T1 I3 Q! [+ E
本文档介绍 Arm® TrustZone®技术和 STM32L5/U5 器件的各项特性,这些特性允许将 MCU 内存/资源划分为安全区域和非安全区域。
% X/ t; W) A4 `, C# g% |, K
4 G. D3 U. _) A* U0 c' A1 ]4 q8 A

% o2 @2 ?7 }3 z& A0 {4 X( G1概述2 e2 x! q; m, R
本应用笔记适用于基于 Arm® Cortex®内核设备的 STM32L5 和 STM32U5 系列微控制器。4 D( d1 w0 _& g. h0 i; i
提示 Arm 是 Arm Limited(或其子公司)在美国和/或其他地区的注册商标。& g0 k  u, o; w6 Q& N

! U6 @1 g/ D4 t* k: \3 }0 g

7 w5 F2 i7 k6 T8 O$ k2 Arm TrustZone 技术8 `3 S  v  `. j" W4 N" S/ l
2.1 概述+ ^: \- R  q. E* a
面向 Armv8-M 的 Arm TrustZone 技术将系统分为两个区域:一个是安全区域,另一个是非安全区域。安全与非安全区域的划分是基于内存映射的。
# ]9 T3 i- H. y* ]: B2 G) I所有可用的微控制器资源(包括 Flash 存储器、SRAM、外部存储器、外设和中断)被分配给安全区域或非安全区域。规划了这些资源的安全属性之后,非安全区域只能访问非安全内存和资源,而安全区域可以访问这两个区域中的所有内存和资源,包括安全和非安全资源。: h" i0 H* A( R, o- \5 J
需要保护的重要数据(如加密密钥)必须在安全区域中以安全的方式进行存储和处理。
* Q% N4 s0 b: q1 ]+ F代码的执行位置定义了其类型:
7 r3 r, t  e3 k% {/ X) F• 如果代码在安全内存中执行,则称其为安全代码。
  o5 X/ O2 S6 g2 E2 [• 如果代码在非安全内存中执行,则称其为非安全代码。
" A3 h0 P: p$ t; A7 x安全代码和非安全代码在相同的 STM32L5/U5 器件上运行,如下图所示。
7 R; s0 p. a4 |! P, ]: c# O8 k
/ h( o* \/ o9 M% }% Q$ Q( I  F

' l% d' J2 D* z$ b! t9 o1 c GCBHNFX%ZW{OVF2`YI6AB7F.png
* w7 o  x/ ], U) b% v* a/ ~" [
* U! M0 O2 v- o% i) _3 O; q
& Q2 G4 P& a, U  m" s
2.2 安全状态
6 E$ o- I+ h4 o: b1 H" h在简化视图中,执行的代码地址决定了 CPU 的安全状态,即安全或非安全:
( M$ ~2 Y# f% `3 t! K• 如果 CPU 在非安全内存中运行代码,则 CPU 处于非安全状态。/ o) j' f( x4 T
• 如果 CPU 在安全内存中运行代码,则 CPU 处于安全状态。
0 ?6 `. H+ @3 u8 Z5 iArmv8-M 技术定义了以下地址安全属性:) Z7 y1 s3 h: y$ t$ @+ K: H
• 安全
7 K8 K8 k" X# P" O( y% m& B, ^安全地址用于只能由安全代码或安全 master 访问的内存和外设。安全事务是那些由 master 发起并在安全状态下运行的事务。
) I0 t# Z) [  o• 非安全可调用(NSC), I0 K: Z/ j& [& l+ v
NSC 是一种特殊类型的安全位置。这种类型的内存是 Armv8-M 处理器允许为其保留 SG(安全门)指令的唯一类型,该指令允许软件从非安全状态转为安全状态。该 SG 指令可用于防止非安全应用程序从分支进入无效入口点。
0 f, o7 [/ c/ [# } 当非安全代码调用安全端函数时:: P  F) t5 o$ a% y
– API 中的第一条指令必须是 SG 指令。; `+ h2 L" x  |/ Y$ X
– SG 指令必须在 NSC 区域内。安全代码还提供非安全可调用函数,为非安全代码提供安全服务访问。0 A1 l$ |7 P# ~
• 非安全+ C7 l0 i4 c1 B  W- t
非安全地址用于设备上运行的所有软件均可访问的内存和外设。非‑安全事务源自以非安全方式运行的 master或访问非安全地址的安全 master(仅数据事务,非获取指令)。仅允许非安全事务访问非‑安全地址。非安全事务不能访问安全地址。
1 ?1 ^: d. m' U
7 i) {4 o. q, R4 J3 在 STM32L5 和 STM32U5 系列器件上实现 TrustZone
; R8 S. f7 m0 C  L  M( p9 `$ W$ u3.1 激活 STM32L5 和 STM32U5 TrustZone. s) E" L* L! s9 U
在 STM32L5/U5 中,TrustZone 是默认禁用的,可以通过在相应的选项字节中设置 TZEN 选项位进行启用。本文档中描述的所有特性适用于启用了 TrustZone 的 STM32L5/U5 器件。; l% B) W- p6 l" M, ^
$ J. m8 R* H7 A  p  G1 W
  v0 w! J. U$ V* a$ [
3.2 TrustZone 框图
) S0 U$ Y6 Q# S! p/ F1 P2 x: p在 STM32L5/U5 中,TrustZone 的实现得益于 SAU(安全属性单元)、IDAU(实现定义的属性单元)、Flash 存储器和 GTZC(全局 TrustZone 安全控制器 )。  g2 E) ]' M% e! L7 v7 f
下面的框图详细说明了 TrustZone 的实现过程。8 e0 Z, \2 o) f, G. T
7 P% b% _4 |7 B: m

8 G+ T; }6 p$ s9 E- D' S6 u" O' c RU02Z0Z`3IC23@SKIZ}(}EF.png : c8 ]* j% R- O+ W; y  a
# O3 h6 l1 X$ q5 f, J6 ~3 V
3.3 安全属性单元(SAU)和实现定义的属性单元(IDAU)
5 P6 b, m* v. vCPU 看到的内存地址安全状态由内部 SAU(安全属性单元)和 IDAU(实现定义的属性单元)组合控制。安全属性的最终结果取决于 IDAU 和 SAU 其中较高的安全设置。安全属性的优先级如下:
& Q4 X1 e, N. o3 r$ H3 R- W* w• 安全具有最高的安全优先级。
1 B3 T4 ~' [+ Y, u8 o/ g5 Z5 ]% C• 非安全可调用的安全优先级次之。- u0 D3 P$ U! U6 G9 p# [
• 非安全的安全优先级最低。
$ `, e, G8 S* A: d下表显示了如何将特定的安全属性(安全、非安全、激活非安全可调用)分配给特定地址。' k# o: Y, m9 m% h& F3 Q, T( A
; w- _4 m2 z& o) p
/ t- T6 t6 U9 B; r, u3 }/ |
I~[O]CM0`}[NS5}2L0XDLKE.png ( ]0 j. U2 F' ~. n* O
# ^3 H$ U- H* h. F6 r

/ e  N' a# K: G' E1. 定义的区域与 32 字节边界对齐。
# H/ r6 U) ~4 O6 x2. NSC = 非安全可调用。, Y6 f, F; o+ ~- O. g2 {6 N  M

* N" ~9 j% m8 ]8 s: b

7 v5 a. {" H& i4 `3.3.1 STM32L5 和 STM32U5 的 IDAU 和存储器别名使用
, p; S$ X  C8 b5 Q! W- I  G4 u1 ^STM32L5/U5 内存映射遵循 Arm 的建议实现一个重复的内存映射,一个用于安全视图,另一个用于非安全视图。这意味着内存映射的每个区域(代码、SRAM、外设)被分成两个子区域,其中内部存储和外设被解码在两个单独的地址位置 - 非安全视图中和安全视图中。IDAU 的实现定义了这些区域的安全属性。; f' M9 r/ L0 C4 u, H
IDAU 内存映射分区不可配置。它由硬件确定。下表显示了 STM32L5/U5 IDAU 定义的内存映射安全属性分区。
/ \% Y. m2 y7 ]; G- C) k5 P0 w
  v# W" `- v% J/ _5 V. C8 q& E
% d  F3 [) [/ W/ a  ^- H: f3 X
2UP`IS_PCL{~{11PD$G6)O6.png , x  N# E- b1 n5 u$ V- n

" v& p7 ~! t) Z. @

. i: v' [2 k: [完整版请查看:附件* L6 k, g/ M) }' U7 J

2 b( X; E1 E1 X$ F$ V$ @6 j- S, I2 r2 d

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 手机版