睿诚科技协会

Arm TrustZone技术如何保障系统安全隔离?

什么是 ARM TrustZone?

ARM TrustZone 是由 ARM 公司设计并推出的一种硬件级的安全扩展技术,它并非一个独立的芯片或软件,而是集成在 ARM 处理器架构中的一种机制,旨在为系统提供一个安全可靠的执行环境。

Arm TrustZone技术如何保障系统安全隔离?-图1
(图片来源网络,侵删)

TrustZone 技术将一个标准的 SoC(System on a Chip,片上系统)划分成两个独立的、隔离的世界:

  • 安全世界
  • 普通世界

这两个世界在硬件层面上是相互隔离的,就像一个国家里有两个互不干涉的“特区”,普通世界的应用程序无法直接访问安全世界的资源(如代码、数据、外设),反之亦然,这种隔离性是 TrustZone 安全性的基石。


核心概念:安全世界 vs. 普通世界

为了更好地理解,我们可以用一个银行金库的比喻:

特性 普通世界 安全世界 银行比喻
主要功能 运行日常应用程序、操作系统(如 Android, Linux) 处理敏感任务、密钥管理、安全启动、生物识别验证 银行大厅,处理客户日常业务
执行环境 Normal World (EL0/EL1) Secure World (EL3 / Secure Monitor Mode) 银行金库,存放贵重物品
访问权限 只能访问自己的资源和通过安全监视器授权的普通资源 可以访问所有资源,包括普通世界的资源 银行职员和保安,可以进入金库和银行大厅
资源隔离 通过硬件机制隔离,无法直接窥探安全世界 硬件隔离,可以主动监控和切换世界 物理墙壁和门禁系统隔离金库和大厅
典型应用 操作系统、UI、媒体播放、网络通信 安全启动、密钥存储、支付、指纹/人脸识别、DRM(数字版权管理) 存放现金、重要文件、保险柜

工作原理:硬件与软件协同

TrustZone 的安全性是通过硬件和软件紧密配合实现的。

Arm TrustZone技术如何保障系统安全隔离?-图2
(图片来源网络,侵删)

A. 硬件层面

  1. ARMv8 架构:在 ARMv8 架构中,安全隔离的核心是异常级别,处理器有四个异常级别,TrustZone 利用了其中最高和最低的两个:

    • EL3 (Exception Level 3)安全监视器的运行级别,这是整个系统的最高权限级别,负责管理和切换安全世界和普通世界,它就像一个“门卫”,决定什么时候让哪个世界运行。
    • EL2 (Exception Level 2):hypervisor 的运行级别,用于虚拟化。
    • EL1 (Exception Level 1)普通世界操作系统的运行级别(如 Linux Kernel, Android Kernel)。
    • EL0 (Exception Level 0)普通世界应用程序的运行级别。
  2. 总线与内存单元

    • 系统总线:SoC 的主总线(如 AXI, AHB)上有一个TrustZone 地址空间控制器,它会检查所有内存和外设的访问请求,根据请求来自哪个世界(安全或普通)以及目标地址是否属于该世界,来决定是否允许访问。
    • 内存管理单元:MMU 也会对地址进行标记,区分安全内存和非安全内存,确保普通世界的进程不会访问到安全内存。
    • 外设:SoC 中的外设(如摄像头、传感器、加密引擎)可以被配置为安全设备、非安全设备或双角色设备,指纹传感器可以配置为安全设备,其数据只能被安全世界的代码读取。

B. 软件层面

  1. 安全监视器

    • 这是 TrustZone 软件栈的核心,驻留在 EL3。
    • 它是一个极小、高度受信任的固件。
    • 主要职责是:
      • 世界切换:响应来自普通世界的“安全监视器调用”(SMC, Secure Monitor Call),保存当前上下文,切换到安全世界执行;执行完毕后,再切换回普通世界。
      • 资源管理:控制安全世界和普通世界对硬件资源的访问权限。
      • 启动管理:负责安全世界的启动和初始化。
  2. 安全世界软件栈

    Arm TrustZone技术如何保障系统安全隔离?-图3
    (图片来源网络,侵删)
    • 运行在安全世界,通常是一个专用的、轻量级的操作系统(如 ARM TrustZone OS)或固件。
    • 它处理所有敏感任务,
      • 安全启动:验证整个系统(包括普通世界的操作系统)的完整性,确保没有被篡改。
      • 密钥管理:生成、存储、使用加密密钥,用于数据加密、身份验证等。
      • TEE (Trusted Execution Environment):这是安全世界提供给普通世界的一个受信任的执行环境,普通世界可以通过特定的 API(如 GlobalPlatform TEE Standard)请求 TEE 来执行敏感操作,而无需知道内部实现细节。
  3. 普通世界软件栈

    • 就是我们熟悉的操作系统(如 Android, Linux)和应用程序。
    • 当应用需要执行安全操作时(如用户进行指纹支付),它会通过 SMC 请求安全监视器,让安全世界来处理,处理结果(如“验证成功”)会返回给普通世界的应用。

典型应用场景

TrustZone 技术已经广泛应用于各种领域:

  1. 移动支付与身份认证

    • 指纹/人脸识别:生物特征数据在安全世界中采集、处理和存储,普通世界只能得到一个“验证成功/失败”的结果,防止敏感数据泄露。
    • NFC 支付:支付相关的密钥和交易逻辑在安全世界中执行,确保交易安全。
  2. 数字版权管理

    视频/音乐的解密密钥存储在安全世界中,即使普通世界的播放器被破解,攻击者也无法获取到密钥,从而保护内容版权。

  3. 企业安全

    在企业设备上,可以创建一个“安全容器”,用于存放公司邮件、文档等敏感数据,即使设备被越狱或 root,普通世界的攻击者也无法访问安全容器内的数据。

  4. 物联网

    • 保护设备固件的完整性,防止恶意篡改。
    • 安全地存储设备身份密钥,用于设备认证和通信加密。
  5. 车联网

    保护车载信息娱乐系统和车辆控制系统的安全,防止黑客通过网络攻击控制车辆。


优势与挑战

优势

  • 硬件级隔离:提供了比纯软件沙箱更强大的安全保障,因为攻击者难以从硬件层面突破。
  • 性能开销小:相比于完全独立的两个处理器,共享处理器核心切换的方式性能开销更低。
  • 灵活性与可扩展性:可以根据不同产品的需求,灵活配置安全世界和普通世界的功能。

挑战

  • 实现复杂:正确实现 TrustZone 需要硬件和软件的深度协同,开发难度大,容易引入漏洞。
  • 安全边界:TrustZone 的安全性取决于其实现,如果安全监视器本身存在漏洞,或者安全世界的代码有缺陷,整个安全体系就可能被攻破。
  • “侧信道攻击”:即使数据被隔离,攻击者仍可能通过分析功耗、电磁辐射、执行时间等侧信道信息来推断敏感数据。
分享:
扫描分享到社交APP
上一篇
下一篇