ARM TrustZone

wen IT资讯 27

本文目录导读:

ARM TrustZone

  1. 核心概念:两个世界
  2. 工作原理:如何切换世界?
  3. 关键优势与局限性
  4. 实际应用场景
  5. 相关技术对比

核心概念:两个世界

TrustZone将系统的硬件和软件资源划分为两个隔离的环境:

  1. 正常世界 (Normal World / Non-Secure World)

    • :主要的操作系统(如Android、Linux、Windows)、用户应用程序、游戏等。
    • 权限:权限较低,无法直接访问安全世界的任何资源。
    • 目标:提供丰富的功能和用户体验,对安全性的要求相对较低。
  2. 安全世界 (Secure World)

    • :一个轻量级的、专门为安全设计的操作系统或执行环境(称为Trusted OSTEE OS),以及运行在其上的安全应用(Trusted Applications, TAs)
    • 权限:权限最高,可以访问正常世界无法访问的硬件资源(如指纹传感器、安全存储、加密引擎)。
    • 目标:处理所有高安全性的任务,如指纹比对、支付令牌生成、密钥管理、DRM(数字版权管理)解密等。

关键点: 这两个世界是物理隔离的,而不是软件隔离,这意味着即使正常世界的操作系统被完全攻破(获得root权限),攻击者也无法直接访问安全世界的数据和代码。

工作原理:如何切换世界?

TrustZone并不是一个独立的物理芯片(如早期的TPM或专用安全芯片),而是嵌入在CPU核心内部的一种扩展,它通过以下关键机制实现隔离:

  1. 处理器模式位 (NS位)

    • ARM处理器内部有一个特殊的标志位,称为NS位 (Non-Secure bit)
    • 当NS位为0时,CPU运行在安全世界。
    • 当NS位为1时,CPU运行在正常世界。
  2. 监控模式 (Monitor Mode)

    • 这是一个特殊、权限极高的CPU模式,用于在两个世界之间进行上下文切换。
    • 当正常世界的安全应用(如支付APP)需要调用安全服务(如指纹验证)时,它不能直接调用,它会通过一个特殊的指令——安全监控调用(Secure Monitor Call, SMC)——触发一个异常,进入监控模式。
    • 监控模式下的监控程序(Monitor)负责:
      • 保存当前世界的状态(寄存器等)。
      • 验证请求的合法性。
      • 切换NS位,将CPU切换到另一个世界。
      • 恢复新世界的状态并开始执行。
  3. 硬件隔离

    • 总线隔离:ARM系统总线(如AXI)会检查每个访问事务的NS位,安全世界可以访问所有内存和外设,而正常世界的访问如果试图触及安全区域,总线会直接拒绝(硬件拦截,不需软件干预)。
    • 内存隔离:内存管理单元(MMU)和系统内存管理单元(SMMU)也支持基于NS位的访问控制,确保正常世界无法映射或访问安全世界的内存区域。
    • 外设隔离:关键外设(如指纹传感器、SIM卡功能、安全存储)可以被配置为“安全外设”,只接受安全世界的访问。

关键优势与局限性

优势:

  1. 高安全性:硬件级别的隔离,相比纯软件方案(如沙盒、进程隔离)要安全得多,即使内核被攻破,安全世界仍是安全的。
  2. 高性能:因为安全世界和正常世界共享同一个高性能CPU核心(在支持TrustZone的Cortex-A系列上),而不是使用一个独立的、性能较弱的协处理器,这允许安全世界进行复杂的运算(如全盘加密、高清视频DRM解密),不影响正常世界的性能。
  3. 低成本:不需要额外的物理安全芯片,节省了电路板面积和成本。
  4. 灵活性:OEM厂商和开发者可以在安全世界中构建自定义的安全服务,适配各种需求。

局限性:

  1. 软件复杂度:正确、高效地编写监控程序和TEE OS非常困难,容易引入安全漏洞。
  2. 侧信道攻击:虽然隔离了内存和处理器,但两个世界共享同一物理核心和缓存,这可能导致基于时间差缓存行为功耗分析的侧信道攻击,不过此类攻击需要极高的物理或逻辑接触权限。
  3. 资源有限:安全世界是一个轻量级环境,设计为只做必要的事情,它缺乏完整的操作系统功能(如复杂的调度、网络栈、文件系统),因此复杂的安全任务需要仔细设计。
  4. 部署挑战:确保TEE(可信执行环境)的固件和TA(可信应用)的安全更新是一个挑战,因为这需要涉及芯片厂商、OEM、服务提供商等多个角色的协作。

实际应用场景

TrustZone是许多关键安全功能的基础:

  • 移动支付:Apple Pay、Samsung Pay、Google Pay等,你的支付令牌(Token)和指纹模板存储在安全世界中,指纹比对和交易签名也在其中完成。
  • 数字版权管理(DRM):Netflix、Amazon Prime Video等流媒体服务的高清内容解密,解密密钥和解码操作在安全世界中进行,防止被“盗录”。
  • 生物识别认证:指纹、面部识别(如Face ID的基础)数据的处理,算法和数据都在安全世界内,防止被恶意应用窃取或篡改。
  • 全盘加密(FDE):Android的Full Disk Encryption使用TrustZone将加密密钥存储在安全世界中,防止在手机丢失或被盗后物理攻击读取数据。
  • SIM卡功能(vSIM/eSIM):将SIM卡的功能抽象为软件,运行在安全世界中,提供比传统SIM卡更灵活、更安全的身份验证。
  • 物联网安全:为智能摄像头、智能门锁等设备提供安全启动、固件安全更新、设备身份认证等功能,阻止僵尸网络等攻击。

相关技术对比

特性 ARM TrustZone Apple Secure Enclave Intel SGX 传统安全芯片 (如TPM)
位置 嵌入在CPU核心中 独立的协处理器/安全子系统 CPU内部的指令级扩展 独立的物理芯片
隔离粒度 两个世界(系统级隔离) 一个独立的硬件隔离环境 飞地(Enclave,颗粒度更细) 固件/硬件模块
性能 高(共享主CPU) 中(独立协处理器) 非常高(CPU内部) 低(独立芯片)
复杂性 中等 高(苹果私有)
主要用途 Android/Linux设备,嵌入式 Apple设备(iPhone, Mac) 桌面/服务器(Intel CPU) 通用设备安全启动/密钥存储
攻击面 侧信道攻击 物理/侧信道攻击 侧信道/内存安全问题 物理/通信攻击

ARM TrustZone是一种强大而成熟的硬件辅助安全隔离技术,它通过在同一CPU上创建两个物理隔离的执行环境,在高性能低成本的前提下提供了显著的安全增强,它已经成为现代移动设备和嵌入式系统安全性的基石,支撑着从移动支付到数字版权管理的各种关键应用,理解TrustZone对于从事嵌入式系统、移动安全、物联网安全或系统架构的开发者来说非常重要。

抱歉,评论功能暂时关闭!