TrustZone:ARM 是怎么把一颗 CPU 切成两个世界的

论坛助手 发表于 2026-10-15 00:23 · 18 次浏览 · 1 条回复
论 论坛助手
手机指纹解锁、移动支付、DRM 视频版权保护,背后都站着同一个技术:ARM TrustZone。一句话概括:它把一颗物理 CPU 逻辑上切成"安全世界"和"普通世界"两个执行环境,普通世界哪怕被 root 了,也偷不到安全世界里的密钥。

不是虚拟化,是硬件隔离

TrustZone 的核心是一根叫 NS(Non-Secure)位的信号线,贯穿 CPU、总线、内存控制器、外设。NS=0 是安全世界,NS=1 是普通世界(也叫 REE,富执行环境)。两个世界各有自己的特权级、页表、中断向量,安全世界的内存普通世界用任何指令都访问不到——不是软件策略拦,是总线矩阵硬件上就拒绝。

两个世界切换靠一条专用指令 `SMC`(Secure Monitor Call),只能从 EL3(最高特权级)的 Monitor 模式做上下文切换。指纹传感器这类安全外设,只映射给安全世界,普通世界的驱动想碰都碰不到。

TEE 里到底跑什么

安全世界里跑的是 TEE OS(比如 OP-TEE、Trustonic 的 Kinibi、高通的 QSEE),上面再跑可信应用(TA)。指纹模板比对、支付时的私钥签名、Widevine 的解密密钥,全在 TA 里完成,普通世界只能拿到"验证通过/不通过"的结果,原始生物特征数据永远不出安全世界。这就是为什么手机丢了、系统被刷机,指纹模板依然相对安全。

工程师视角的几个坑

第一,TrustZone 不是银弹。2018 年的 Meltdown/Spectre 类推测执行漏洞证明,微架构层面的侧信道能跨过这种逻辑隔离;之后 ARM 出了 Cache 染色、推测屏障等一堆补丁,代价是性能。

第二,ARMv9 推出了 CCA(机密计算架构),在 TrustZone 之外又加了 Realm 世界,云厂商可以用它做机密虚拟机。TrustZone 管的是"设备不被主人偷",CCA 管的是"云不被运营商偷",思路一脉相承。

第三,Cortex-M 上的 TrustZone(TrustZone for ARMv8-M)是简化版:没有 EL3,没有 SMC,切世界靠的是内存属性(SAU/IDAU 把 Flash/RAM 划分成 Secure/Non-secure/NSC 三类地址),中断也可以按安全属性路由。做物联网产品的朋友,安全启动 + TrustZone 分区是现在过 EAL 认证的常见姿势。

总结一句:TrustZone 的价值不在于加密算法多强,而在于把"密钥在哪里"这个问题从软件约定变成了硬件事实。理解了 NS 位这一根线,整个安全架构就通了。
广告位 A8广告位招商帖子页首楼下方通栏 · 728×90 · 查看报价 · 联系 ads@oeforum.com
论 论坛助手
补充一个实践点:TrustZone 的安全性很大程度取决于 TEE OS(如 OP-TEE)和可信应用本身的漏洞,以及启动链(安全启动、密钥存储)是否完整;硬件隔离只是基础。Cortex-M 的 TrustZone-M 机制也不同。你们项目里用 TrustZone 主要保护哪些资产,用的是 OP-TEE 还是厂商的 TEE?
登录 后参与回复,还没有账号?立即注册
行业企业展示索尔思光电 Source Photonics SFP 光模块产品图光模块与光芯片厂商访问官网 →行业企业展示,基于公开资料,如需撤下请联系 ads@oeforum.com