1. TrustZone 基础概念
1.1 ARM TrustZone 技术概述
ARM TrustZone 是一种系统级硬件安全扩展技术,内置于 ARM Cortex-A 系列处理器及部分 Cortex-M 系列处理器中。其核心目标是在同一物理处理器上创建两个独立的执行环境——安全世界(Secure World)与非安全世界(Normal World),从而实现敏感数据与代码的隔离保护。
TrustZone 并非一个独立的操作系统或软件栈,而是一种硬件架构基础,为 TEE(Trusted Execution Environment)的实现提供了底层支撑。通过 TrustZone,开发者可以在安全世界中运行可信操作系统(如 OP-TEE、Trusty、QSEE),处理密钥管理、支付认证、生物特征比对等安全敏感任务。
1.2 安全世界与非安全世界隔离原理
TrustZone 将处理器的执行状态划分为两个世界,每个世界拥有独立的物理地址空间、系统寄存器视图和中断控制逻辑。隔离的核心机制包括:
- 地址空间隔离:通过 NS(Non-Secure)位标记内存访问属性。安全世界可访问安全内存与非安全内存,而非安全世界只能访问非安全内存。
- 系统寄存器隔离:关键系统控制寄存器(如中断控制器、定时器、调试接口)在安全世界和非安全世界拥有独立的副本或访问权限控制。
- 中断隔离:中断控制器(GIC)支持安全中断(SGI、PPI、SPI)与非安全中断的独立路由,安全中断只能由安全世界处理。
- 缓存与TLB隔离:通过物理地址空间中的安全位标记,确保非安全世界无法通过缓存侧信道获取安全数据。
| 隔离维度 | 安全世界 | 非安全世界 |
|---|---|---|
| 内存访问 | 可访问安全内存 + 非安全内存 | 仅可访问非安全内存 |
| 中断处理 | 可处理安全中断 + 非安全中断 | 仅可处理非安全中断 |
| 调试接口 | 完全控制调试权限 | 受限调试,无法访问安全世界 |
| 系统控制 | 可配置安全策略 | 无法修改安全配置 |
1.3 Monitor 模式与 SMC 指令
Monitor 模式是 TrustZone 架构中一个特殊的处理器模式,位于安全世界与非安全世界之间,充当两个世界的“门卫”。当系统需要从非安全世界切换到安全世界(或反之)时,必须通过 Monitor 模式完成上下文切换。
SMC(Secure Monitor Call)指令是触发世界切换的唯一软件途径。执行 SMC 指令后,处理器会陷入 Monitor 模式,由 Monitor 软件(通常是安全固件,如 ARM Trusted Firmware)保存当前世界状态,恢复目标世界状态,然后切换到目标世界执行。
世界切换流程
- 发起请求:非安全世界(或安全世界)执行 SMC 指令,携带功能标识符和参数。
- 陷入 Monitor:处理器硬件自动切换到 Monitor 模式,保存当前世界上下文(寄存器、状态等)。
- 安全检查:Monitor 软件验证请求的合法性(如参数范围、调用来源)。
- 上下文切换:恢复目标世界的上下文,包括寄存器、系统控制寄存器、中断路由配置。
- 返回目标世界:执行 ERET 指令,切换到目标世界继续执行。
| 步骤 | 操作 | 执行模式 |
|---|---|---|
| 1 | 非安全世界执行 SMC #0 | Non-Secure EL1/EL0 |
| 2 | 处理器陷入 Monitor 模式 | Monitor (EL3) |
| 3 | 保存非安全世界上下文 | Monitor (EL3) |
| 4 | 恢复安全世界上下文 | Monitor (EL3) |
| 5 | ERET 进入安全世界 | Secure EL1/EL0 |
1.4 中断路由与安全中断处理
在 TrustZone 架构中,中断控制器(GIC,Generic Interrupt Controller)支持将中断配置为安全中断或非安全中断。安全中断(如安全定时器、安全外设中断)只能由安全世界处理,非安全世界无法屏蔽或抢占安全中断。
GIC 通过以下机制实现中断隔离:
- GICD_IGROUPn 寄存器:每个中断源通过该寄存器配置为安全组(Group 0)或非安全组(Group 1)。
- 安全中断路由:安全中断直接路由到安全世界,即使非安全世界正在执行也无法拦截。
- FIQ 与 IRQ 分配:通常安全中断使用 FIQ 信号,非安全中断使用 IRQ 信号,但具体分配可配置。
1.5 本章小结
TrustZone 技术通过硬件强制隔离安全世界与非安全世界,为 TEE 提供了坚实的信任基础。Monitor 模式与 SMC 指令构成了世界切换的唯一通道,而 GIC 的安全中断路由机制确保了安全中断的实时性和隔离性。理解这些基础概念是后续配置安全中断处理与 TEE 世界通信的必备前提。