ARM的TrustZone
一、介绍
ARM 的 TrustZone 是一项硬件级的安全技术,它通过在处理器中创建两个完全隔离的执行环境——安全世界(Secure World) 和普通世界(Normal World,或称非安全世界),来保护敏感代码和数据免受软件攻击和某些物理攻击。其核心目标是提供一种可信执行环境(TEE, Trusted Execution Environment)
二、工作原理与技术实现
TrustZone 的隔离和运行涉及处理器、内存、外设等多个层面:
1. 处理器与硬件基础:
* 安全状态位 (NS bit):这是 TrustZone 的基石。ARM 处理器内核有一个额外的安全状态信号(Non-Secure bit)。处理器执行时,其发出的每一次内存或外设访问都会带有这个 NS 标记(0 表示安全,1 表示非安全)。
* 系统级扩展:AMBA 总线(如 AXI)和内存控制器(如 TZASC, TrustZone Address Space Controller)、外设保护控制器(如 TZPC, TrustZone Protection Controller)会检查这个 NS 标记。它们根据配置的策略来决定是否允许这次访问,从而在硬件层面强制执行隔离。
2. 内存隔离:
* 通过 TZASC 等控制器,物理内存可以被划分为安全区域和非安全区域。
* 普通世界只能访问标记为非安全的内存。
* 安全世界可以访问所有内存(安全和非安全)。
3. 外设隔离:
* 系统外设(如加密引擎、键盘、触摸屏)也可以被配置为安全外设或非安全外设。
* 普通世界无法访问安全外设,从而防止恶意软件窃取键盘输入等敏感信息。
4. 世界切换与监控模式:
* 两个世界之间的切换不是随意的,必须通过一个名为监控模式 (Monitor Mode) 的最高特权级别(在 ARMv8 中对应 EL3 异常级别)来实现。
* 切换通常由安全监控调用 (SMC, Secure Monitor Call) 指令或特定硬件异常(如配置为安全的中断)触发。
* 监控模式下的代码(通常是 ATF, ARM Trusted Firmware 的一部分)负责保存当前世界的上下文,并恢复目标世界的上下文,确保隔离性。
四、典型应用场景
TrustZone 技术广泛应用于需要硬件级安全保护的场景:
* 安全支付与银行业务:保护移动支付应用(如支付宝、Apple Pay)的PIN码、支付令牌和加密密钥。
* 数字版权管理 (DRM):保护流媒体视频、音频等内容解密密钥,防止内容被非法复制和分发。
* 设备安全启动:确保设备从开机第一刻起加载的固件、引导程序、操作系统都是未经篡改的可信代码。
* 生物特征保护:安全地存储和处理指纹、面部识别等生物特征模板,确保其不会被普通世界的应用窃取。
* 物联网设备认证:为物联网设备提供唯一的、受保护的身份凭证,用于安全接入云端服务。
* 企业安全与数据隔离:在工作资料和个人资料之间实现硬件级别的数据隔离。
五、优势与挑战
优势 挑战/考量
硬件强制隔离:提供比纯软件方案更高级别的安全基础。 设计复杂性:系统架构设计、软件堆栈开发更具挑战。
性能高效:切换开销相对较小,优于纯虚拟化方案。 潜在攻击面:安全监控器、世界间通信接口可能成为新的攻击目标。
广泛支持:已被主流移动和嵌入式芯片厂商广泛采用。 安全世界软件安全:安全世界本身的代码也需保持安全与更新。
六、 总结与发展
ARM TrustZone 通过硬件辅助的隔离机制,为系统提供了坚实的安全基石(Trusted Computing Base)。它使得一个高性能的应用程序处理器能够同时兼顾开放灵活的富操作系统环境和封闭可靠的安全服务环境。
TrustZone 技术也在不断发展,从主要面向 Cortex-A 系列应用处理器,到如今也已集成到 Cortex-M 系列微控制器中(如 Cortex-M33),为资源受限的物联网终端设备带来更强的硬件安全能力。