OP-TEE系统基础入门

1. ARM TrustZone技术详解

ARM TrustZone是ARM处理器架构中提供硬件级安全隔离的技术,它通过将系统划分为安全世界(Secure World)非安全世界(Normal World)来实现硬件级别的安全隔离。这种架构为敏感操作和数据提供了安全的执行环境。

TrustZone架构概览

TrustZone架构图

图1: ARM TrustZone架构示意图

(1) 安全世界(Secure World)与非安全世界(Normal World)隔离原理

TrustZone通过在处理器核心中引入安全状态的概念,实现了两个虚拟处理器的隔离:

安全世界 (Secure World)

  • 运行可信执行环境(TEE),如OP-TEE、Trusty等
  • 处理敏感数据和操作(加密、认证、密钥管理等)
  • 可以访问所有系统资源(安全和非安全)
  • 通过安全监控调用(SMC)进入

非安全世界 (Normal World)

  • 运行普通操作系统(如Linux、Android)
  • 处理常规应用和用户数据
  • 只能访问非安全资源
  • 通过特定指令触发世界切换

注意:两个世界的隔离是硬件级别的,即使非安全世界的操作系统被完全攻陷,也无法直接访问安全世界的资源。

世界切换机制

安全世界和非安全世界之间的切换通过监控模式(Monitor Mode)完成:

  1. 非安全世界通过SMC(Secure Monitor Call)指令触发异常
  2. 处理器进入监控模式,保存当前世界状态
  3. 监控模式验证请求合法性并切换到目标世界
  4. 目标世界开始执行,直到再次触发世界切换

安全考虑:世界切换是潜在的攻击面,必须确保监控模式的代码(通常由ARM Trusted Firmware提供)是安全可靠的。

(2) 硬件扩展:NS-bit、Monitor模式、安全外设(TZPC/TZASC)

TrustZone的实现依赖于一系列硬件扩展:

NS-bit(Non-Secure bit)

NS-bit是TrustZone架构中的核心概念,它标记了当前执行环境的安全状态:

NS-bit值 含义 访问权限
0 安全世界 可以访问所有资源(安全和非安全)
1 非安全世界 只能访问非安全资源

NS-bit存在于:

Monitor模式

Monitor模式是处理器的一个特殊执行模式,负责管理世界切换:

// 简化的世界切换示例
monitor_mode_handler:
    // 保存当前世界上下文
    push {r0-r12, lr}
    
    // 判断当前NS-bit状态
    mrc p15, 0, r0, c1, c1, 0  // 读取SCR寄存器
    tst r0, #1                  // 检查NS-bit
    
    // 根据NS-bit决定切换到哪个世界
    beq switch_to_normal_world
    bne switch_to_secure_world

安全外设:TZPC/TZASC

TZPC (TrustZone Protection Controller)
  • 控制外设的安全属性
  • 配置哪些外设只能由安全世界访问
  • 防止非安全世界访问安全关键外设(如加密引擎)
TZASC (TrustZone Address Space Controller)
  • 控制内存区域的安全属性
  • 将物理内存划分为安全和非安全区域
  • 支持动态内存区域配置
  • 防止非安全世界访问安全内存

TrustZone硬件扩展架构

TrustZone硬件扩展图

图2: TrustZone硬件扩展示意图

实际应用:在OP-TEE系统中,TZASC用于隔离安全世界和非安全世界的内存区域,确保即使非安全世界被攻陷,也无法读取安全世界的内存内容。