STM32MP中的安全域(Secure World)到底是什么

一、什么是“安全域”?

安全域(Security Domain / Security World)
是 ARM 架构(从 Cortex-A 以后到 Cortex-M33)在硬件级别上
把整个系统分成两块相互隔离的世界:

  • Secure World(安全世界)

  • Non-secure World(普通世界)

两边的 CPU、内存、外设访问权限都由硬件强制区分。


二、为什么要分安全域?

目的是防止系统被入侵后“一锅端”。

举个例子:

以前所有代码都跑在一个环境里,
如果应用程序被攻击者利用漏洞提权,
他就能直接访问加密密钥、固件升级接口、存储分区……
结果:整机安全性全失。

现在通过 TrustZone 安全域分离

  • 安全世界(Secure World):保存敏感数据和安全服务(加密、签名、密钥管理、固件更新验证)。

  • 普通世界(Non-secure World):跑 Linux、Android、应用程序、UI 等。

  • 两者通过 受控接口(SMC / Secure Call)通信。

就像两个房间:一个普通办公室,一个保险库,中间只有一扇受控门。


三、硬件是怎么实现的?

Cortex-A (ARMv8-A) 上:

有两个执行状态:

  • Secure ELx(安全执行级)

  • Non-secure ELx

CPU 在硬件里有一个状态位 SCR.NS(Non-secure bit)
→ 控制当前是在安全世界还是普通世界。

有专门的指令 SMC(Secure Monitor Call)
→ Linux/Android 只能通过这个调用安全世界的服务(例如访问密钥、签名验证)。

安全世界的 OS 通常是 OP-TEE (Open Portable Trusted Execution Environment)
TF-A (BL31) 启动。


Cortex-M33 (ARMv8-M) 上:

同样有两个内存与外设访问域:

  • Secure

  • Non-secure

通过两个硬件单元控制:

  • SAU (Security Attribution Unit)

  • IDAU (Implementation Defined Attribution Unit)

它们决定哪块内存属于安全域,哪块属于非安全域。
CPU 会自动阻止 Non-secure 世界访问 Secure 区域。

安全世界运行 TF-M (Trusted Firmware-M)
Non-secure 世界运行普通应用或 FreeRTOS。


四、软件栈上的安全域分层

层级角色跑在安全域?说明
BootROMSecure芯片上电后第一段安全代码
TF-A / TF-MSecureARM 官方安全固件框架
OP-TEESecure安全世界操作系统 (A 系列)
U-Boot / Linux / AndroidNon-secure普通系统与应用
应用程序Non-secure用户空间

五、通俗理解

把整个芯片想成一栋楼:

区域比喻权限
Secure World保密机房(有金库)只有安保系统能进
Non-secure World办公区员工自由进出
TrustZone 门安全网关控制从办公区到机房的访问

六、STM32MP 平台的安全域实践

平台安全域在哪安全 OS
STM32MP1Cortex-A7 上的 OP-TEEOP-TEE
STM32MP2 (A-first)同上,A35 Secure EL1OP-TEE
STM32MP2 (M-first)M33 Secure WorldTF-M

所以:

  • MP1 / MP2 A-first 模式 → Secure World 在 A 核;

  • MP2 M-first 模式 → Secure World 在 M33 上。


七、总结

「安全域」是 ARM 硬件层面把系统分为 Secure(安全世界)Non-secure(普通世界)
使得只有受信任的固件/代码能访问敏感资源。

 A 系列用 TrustZone-A + OP-TEE + TF-A
 M 系列用 TrustZone-M + TF-M


换句话说:

有了“安全域”,
Linux 再也不是系统里最信任的那一层 ——
真正的安全根在 TF-A / TF-M + Secure World 里。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值