21 世纪是信息世纪,伴随着信息技术的蓬勃发展与广泛使用,人们既享受着信息技术带来的便利,又面临着快速发展且复杂的网络世界带来的安全危机。智能手机、平板电脑等嵌入式设备作为人们生活中不可或缺的角色,因此也成为绝大多数网络攻击的目标。智能移动设备中大多都存放着个人隐私与财产信息,一旦被攻击就会对机主造成重大损失。为了保护存储在移动设备中的金融数据、电子支付系统等敏感信息,业界提出了隐私计算中的可信执行环境(TrustedExecution Environment,TEE)技术,其作为一种可以在保证数据“可用而不可见”的前提下进行数据运算的技术,逐渐被大家所关注。

TEE 是一个隔离的处理环境,代码和数据在执行期间受到保护,其内存区域与处理器的其他部分分离,并提供机密性和完整性属性。其目标是确保一个任务按照预期执行,保证初始状态和运行时的机密性和完整性。

ARM TrustZone 是 ARM 公司推出的 TEE 解决方案,是目前大量应用于智能移动设备上的基 于 硬 件 的 片 上 系 统(System on Chip,SoC)安全体系结构。TrustZone 技术的优势在于它可以保护数据的安全与完整,避免数据受到恶意攻击。基于此技术,ARM 为安全敏感的代码和数据创建一个 TEE,实现了系统级别的隔离。典型的基于 TrustZone 的系统将整个 SoC 的资源(包括硬件组件和正在运行的软件)划分为两个具有不同特权设置和保护的世界。在这两个世界中,普通世界负责运行富操作系统以及所有的常规应用程序,称为客户端应用程序(Client Application,CA)。相比之下,另一个孤立的安全世界执行一个小型的、受信任的安全操作系统,以及一些由可信应用程序(Trusted Application,TA)开发的高级安全管理任务。在TEE 内可以有基于 TrustZone 的操作系统,如高通的 QSEE、开源的 OPTEE等,为安全敏感应用提供安全服务。系统中不需要保护的操作全部在普通世界进行。处理器可以在两个世界分时使用,从而保证系统的灵活性。

本文重点分析了 ARM TrustZone 技术的基本原理及其框架,并进一步深入探讨了基于TrustZone 的安全防护技术;同时,将该技术与其他可信计算技术进行了对比分析,也着重分析了其优势和不足;最后,结合当前可信执行环境领域存在的安全问题和该技术在安全方面的优势,对该技术的未来发展方向和应用需求进行了展望。

TrustZone 安全架构概述

1.1 TrustZone 硬件架构

支持 TrustZone 技术的 ARM 处理器被划分为两个区域,即单个的物理处理器中包含了两个虚拟处理器核:安全处理器核和普通处理器核 。这两个区域都有自己的用户空间和内核空间,以及缓存、内存和其他资源,其硬件框架如图 1 所示。安全处理器可以访问普通处理器的资源,反之则不行,这也是 TrustZone 技术能够实现对系统资源硬件级别的保护和隔离的根本原因。同时,基于 TrustZone 技术提高系统安全性,需要对系统硬件和处理器核做出相应扩展。这些扩展可以保证安全内存和安全外设,能够拒绝非安全事务的访问。因此,它们可以在正常操作系统中很好地隐藏和隔离自己,从而实现真正意义上的系统安全。

图 1 TrustZone 硬件架构

1.2 TrustZone 软件架构

TrustZone 典型的软件架构如图 2 所示,不可信操作系统运行在普通世界,也叫富执行环境(Rich Execution Environment,REE)。TEE运行在安全世界,保护环 EL1 为可信操作系统并提供运行时的支持,在用户模式下运行的保护环 EL0 能够维持 TA 的生命周期。可信操作系统的核心是可信内核,为调度和管理 TA 提供了基本的操作系统原语。可信操作系统还实现了访问可信外围设备的设备驱动程序,通过切换安全监控模式调用 SMC 指令和共享内存处理跨世界的请求,并实现共享库(例如加密)和TEE 原语,即远程认证、可信 I/O 和安全存储。

图 2 TrustZone 软件架构

除了可信的操作系统,TrustZone 软件架构还包括两个基本的软件组件:安全监控器和 TEE引导加载程序。安全监视器实现了在不同世界之间进行安全上下文切换的机制,并在保护环 EL3中以最高权限运行。TEE 引导加载程序将 TEE 系统引导到安全状态,实现受信任引导原语非常关键,它被分成两个步骤,首先在 EL3 中运行,然后在 EL1 中运行。可信操作系统、安全监控和TEE 引导加载程序共同构成了典型 TEE 系统的可信计算基(Trusted Computing Base,TCB)软件。

基于 TrustZone 的系统安全防护技术

2.1 基于 TrustZone 构建可信内核

TEE 系统提供的基本功能包括一个执行环境,让安全敏感的应用程序可以与富操作系统隔离执行。在使用 TrustZone 的平台上,通常由安全世界的受信任的特权内核来维持此类应用程序的生命。富操作系统和受信任内核之间的通信需要在两个世界之间进行上下文切换。

为了获得商业的竞争优势,一些公司构建了自有的封闭源代码的可信内核,例如高通、华为、三星、Nvidia 等公司。其中三星 KNOX[7]是这类系统中最具代表性的。KNOX 是一款旨在为企业数据保护提供强有力保障的国防级移动安全平台。可以通过几层数据保护来实现安全, 其 中 包 括 安 全 引 导、 基 于 TrustZone 的 完整 性 度 量 体 系 结 构(Trustzone-based Integrity Measurement Architecture,TIMA) 和 安 全 增 强型 Android(Security Enhancements for Android,SEAndroid),KNOX 架构如图 3 所示。

图 3 KNOX 架构

像 KNOX 这样的封闭系统很难评估其制造商声称的安全特性是否能够在实践中得到执行。此外,大多数 TEE 操作系统是作为单片内核实现的。在这种设计中,设备驱动程序、内核服务和内核模块都运行在内核中,这导致内核的攻击面很大,容易遭受外部攻击。因此,Ji 等人 提出了一种基于微内核架构的 TEE 操作系统MicroTEE。在 MicroTEE 中,微内核为 TEE 操作系统的基础服务,例如,为加密服务和平台密钥管理服务提供了强大的隔离,避免了当只有一个内核服务时,因其脆弱性造成整个 TEE OS的损失,此外,还增加了一个监视器来执行安全世界和正常世界之间的切换。

传统的可信内核往往以厂商为核心,忽视了应用开发者的需求。Sun 等人提出了一个轻量级的、以应用开发者为中心的解决方案 LEAP。由 LEAP 提供自动 DevOps 工具,帮助开发人员准备运行代码,使独立的代码并行执行,轻松访问外围设备(如移动 GPU),并根据应用程序的请求动态管理系统资源。除此之外,为了解决工业物联网应用的具体要求,设计了一些可信内核来补充 TEE 的安全特性和实时能力。

2.2 基于 TrustZone 构建可信服务

在启用 TrustZone 处理器的安全世界构建专用的可信服务时,排除了对底层操作系统的需求,因此可以在依赖相对较小的 TCB 的情况下为最终用户提供一些特定的功能。相关的可信服务如下文所述。

2.2.1 数据保密

这一类受信任服务旨在对敏感文件提供安全存储和访问。Tenório 等人 提出了一种基于TrustZone 的灵活、简单、高效、低成本的物联网数据加密解决方案,通过该方案,即使是不受信任的云提供商或对手远程访问设备,也可以保障敏感数据安全。Oath 是基于 ARM 平台提出的一种片上 RAM(On-Chip RAM,OCRAM)辅助敏感数据保护机制,被用于保护敏感数据,特别是敏感 I/O 数据,使其免受软件攻击和物理内存泄露攻击。

2.2.2 身份认证

这一类受信任服务旨在提供安全的身份认 证。例 如,Wang 等 人提出了一种基于TrustZone 的移动远程认证方案 TZ-MRAS,利用TrustZone 的最高安全权限实现可信认证服务。为 了 防 范 软 连 接 漏 洞(Time of Check, Time of Use,TOCTOU)攻击,他们提出了一种基于探针的动态完整性度量模型 ProbeIMA,该模型可以动态检测内核和进程执行过程中产生的未知指纹。最后,根据改进的动态测量模型的特点,提出了一种基于局域原理(Locality Principle,LPSML)的优化存储测量日志构建算法,缩短了认证路径的长度,提高了验证效率。其他解决方案已经利用 TrustZone 为基于设备的身份验证和访问控制提供受信任的服务。

2.2.3 富操作系统自省和控制

研究人员发现了利用 TrustZone 覆盖富操作系统功能的新方法。Restricted Spaces 是 Brasser等人 提出的一个系统,允许第三方(主机)在特定的物理空间(如工作空间)规范用户(客户)如何使用他们的设备(如管理设备资源)。为了实现这一点,Restricted Spaces 利用上下文感知方法安全地提炼富操作系统强制执行的权限。Chang 等 人提 出 了 一 种 基 于 ARM 的 保护富操作系统内存完整性的保护方法,其利用TrustZone 技术创建隔离的执行环境,保护敏感代码和数据不受攻击。

2.2.4 可信用户界面

在移动设备上,安全敏感任务(如移动支付、一次性密码等)不仅涉及加密密钥材料等敏感数据,还涉及敏感 I/O 操作,如通过触摸屏输入PIN 码,并在显示器上显示认证验证码。因此,全面保护这些服务应该强制使用可信用户界面(Trusted User Interface,TUI),对敏感的用户输入和系统输出进行保护,预防软件攻击和物理内存泄露攻击。Chu 等人开发了一个具有OCRAM 分配机制的可信用户界面,在安全操作系统和富操作系统之间共享 OCRAM,有效地保护了敏感用户输入和系统输出,同时还可以防止软件攻击和物理内存泄露攻击。Cai 等人提出了一种基于 ARM TrustZone 硬件安全扩展的安全 UI 框架 SuiT。通过该框架,在正常世界中实现一个安全的 UI 驱动和一个影子 UI 驱动。当应用程序需要以一种可靠的方式与用户交互时,影子 UI 驱动程序会代替原来的 UI 驱动程序完成用户交互。在 UI 驱动切换过程中,由安全世界中的切换代码动态构建安全 UI 驱动的临时可信执行环境,确保安全的 UI 驱动程序以安全的方式执行,来自富操作系统的潜在攻击不会干扰用户交互过程。

2.3 基于 TrustZone 构建可信云应用

随着 ARM64 在服务器市场中的应用越来越广泛,TrustZone 未来很可能成为云安全的一个关键支柱。但是随着移动云计算的快速发展,目前还没有针对移动终端访问可信云架构的安全解决方案。针对上述问题,Xia 等人提出了一种面向可信移动终端的云服务安全接入方案。采用 ARM TrustZone 基于硬件的隔离技术,构建一个可信任的移动终端,保护云服务客户和终端上的安全敏感操作不受恶意攻击。提出了物理不可克隆功能(Physical Unclonable Function,PUF)、密钥敏感数据管理机制。基于可信移动终端,采用可信计算技术,设计了安全访问协议。该协议兼容可信云架构,在云服务器和移动客户端之间建立端到端认证通道。同时,该方案实现了移动终端小 TCB 和云用户高效运行。

考虑到用户上传到 Facebook、Instagram 等云服务上的信息中包含很多个人的敏感信息,一旦云服务器被攻击破坏,可能泄露用户的隐私信息。虽然在客户端对敏感内容进行加密可以防止入侵,但在云服务器上通常需要对图像进行解密,以进行处理,例如,用于压缩或缩略图生成。这一过程很容易受到具有管理特权的对手的攻击。基于此,Brito 等人引入了一个名为 Darkroom 的系统,该系统通过在服务器端由 TrustZone 辅助的 TEE 将变换功能应用于加密的用户图像,并以加密的方式保存,从而确保服务器的操作系统无法访问用户映像的原始数据。Brenner 等人通过提出针对不可信云环境的分区应用程序的平台 TrApps,进一步扩展了这种思路。与 Darkroom 类似,该平台的目标也是通过排除信任本地操作系统的需求来减少服务器端 TCB。TrApps 的优点在于其支持访客通用分布式应用程序,而不是简单的图像转换功能。

2.4 在虚拟化环境安全防护中的应用

TrustZone 不是为可虚拟化设计的,因为硬件只提供了一个 TEE,这阻止了它被多个虚拟机安全地共享。以往的研究通过实现一个安全访 问 控 制 器(Security Access Controller,SAC)来私有化一个安全的操作系统,这样它就可以管理在正常世界中运行的安全操作系统。例如,Sun 等人提出的一种基于 TrustZone 的隔离框架 Trustlce,普通和安全的操作系统都是在普通环境中执行的。当正常操作系统向 TA 请求安全服务时,会启动 TA 私有的安全操作系统执行。SAC 位于安全世界中,干预操作系统之间的切换,其核心作用是将操作系统隔离,从而阻止外部对安全操作系统的未经授权访问,其设计如图 4所示。然而,Trustlce 要求一次只能运行一个操作系统,排他地占据整个正常世界,挂起所有其他操作系统,而没有详细的访问控制机制。这种一次只运行一个操作系统的策略可能会导致低资源利用率,特别是在多核系统中。

图 4 Trustlce 架构

在虚拟化 TrustZone(Virtualizing ARM TrustZone,vTZ) 中,SAC 是通过组合一个管理程序和TrustZone 中的安全监视器来实现的。它使用管理程序在普通环境中构造虚拟执行环境,每个环境都私有地托管一个客户的安全操作系统,其设计如图 5 所示。与 Trustlce 不同的是,vTZ能够利用多核系统同时执行正常的操作系统和安全的操作系统。然而,普通世界中的虚拟化会带来额外的性能开销。同时,vTZ 中的安全监视器使每个客户的安全操作系统拥有比虚拟机监视器更高的权限,因此安全操作系统可以保护自己免受包括虚拟机监视器在内的任何正常世界实体的攻击。但是,这种对特权层次结构的更改需要对现有的管理程序代码进行大量修改,可能会限制该技术的大规模应用。

图 5 vTZ 架构

Kwon 等人 提出的轻量级私有化安全操作系统(Light-weight Privatized Secure OSes,Pros)是另一种虚拟化实现方案,其中位于安全世界的 SAC 在同一个世界管理安全操作系统虚拟化的多个实例,而不是远程管理正常世界中的操作系统,设计方案如图 6 所示。为了完成这一点,Pros 在安全环境中虚拟化 TrustZone。值得注意的是,由于安全操作系统和 Pros 在安全世界中工作,不会影响正常世界软件的运行,也不会导致正常操作系统执行速度减慢。根据评估,Pros 在正常环境和安全环境下的平均性能开销分别为 0.02% 和 1.18%,证明了其可用性。

图 6 Pros 架构

TrustZone 技术分析

3.1 与其他 TEE 技术的对比分析

TEE 是一种在多环境共存的同时,建立起策略来保护每个环境的代码和数据的方法。TEE的初始部署主要用于移动空间,解决诸如安全视频路径或安全支付等应用程序的安全问题。然而,在过去的几年中,在消费电子、智能家电、家庭网关、无人驾驶飞机等应用领域,也出现了类似的需求。本文列举了一些热门 TEE 相关技术与 TrustZone 技术进行对比分析。

Sabt 等人 提供了 TrustZone 与使用 GlobalPlatform 标准的其他 TEE 技术进行比较的 3 项指标:功能性、安全性和可部署性。功能性指标包括保护执行、密封存储、保护输入、保护输出和验证。安全性指标包括数据分离、信息流控制、损害限制。可部署性指标衡量应用的难易程度。

3.1.1 Secure Element

根 据 Global Platform 相 关 标 准, 安 全 元 素(Secure Element)是一个防篡改的独立平台,其中存储安全应用程序及其加密数据。与TrustZone 相比,一方面,安全元素的计算能力更低,因为它运行在单独的硬件上,不能访问主系统的 CPU。TrustZone 的可信执行环境与富操作系统运行在同一个 CPU 上。另一方面,安全元素通过提供安全密钥存储和信任根来保证更高级别的安全。TrustZone 不提供非易失性存储的安全性,并且缺乏信任的保证根。

3.1.2 TPM/TCM 与 TPCM

可信平台模块(Trust Platform Module,TPM)始于 2000 年可信计算平台联盟制定的 TPM1.0规范。与 TPM 相比,国内使用的可信基础模块(Trust Cryptography Module,TCM)简化了 TPM中复杂的密钥管理。TPM 和 TCM 的构成和功能类似,主要部署在服务器和桌面计算机上。同安全元素一样,TPM[27] 为加密密钥存储提供了信任根,由于 CPU 总线很慢,而且不利用主 CPU,因此其性能也很低。此外,还可以将TPM/TCM 集成到 TrustZone 中,从而为系统提供信任根,并支持可信引导功能。可信平台控制模块(Trusted Platform Control Module,TPCM)是基于国产化思路针对 TPM/TCM 的一些安全问题提出的可信标准。相对于TPM 和 TCM,TPCM 对硬件和可信软件栈(Trusted Software Stack,TSS) 架 构 做 了 较 大 的 改 动。TPCM 最大的优点是具备对软硬件系统的可信控制、主动度量和主动报告等功能,但受限于硬件设计和制造能力,目前还没有完全具备设计要求的成品器件 。

3.1.3 Intel TXT

可 信 执 行 技 术(Intel Trusted ExecutionTechnology,Intel TXT)是一种虚拟机保护机制,旨在保护计算平台免受通用软件的攻击,可能的攻击型通用软件包括固件、基本输入输出系统(Basic Input Output System,BIOS)和 rootkit 攻击载体。Intel TXT[29] 的设计依赖于 TPM,并提供一种可信的方式来加载和执行系统软件,如操作系统或虚拟机监视器。TPM 允许 Intel TXT为长期存储提供保护。然而,这也导致了 TPM比 TrustZone 更依赖于制造商的可信度,而这种对制造商的信赖可能会存在一些安全隐患 。

3.1.4 SGX

英特尔软件防护扩展(Intel Software GuardExtension,Intel SGX)是 Intel CPU 上 的 一 个硬件扩展,通过内存加密技术保护程序运行态的安全,使得通过内存泄露攻击获取关键信息的难度增大,系统的可信计算基也缩小到 CPU。相比于以往将整个操作系统或特权软件(如hypervisor 等)视为可信计算基,SGX 技术可以避免更多的系统攻击,并且支持虚拟化技术、容器技术,其可用性更强。但是 SGX 本身无法抵御侧信道攻击,同时,SGX 提供的“飞地”可使用内存太小,当程序数量增多、规模增大时,需要换入换出页面。为了保证安全性,需要对页面进行完整性和机密性保障,这会对系统性能造成一定影响 。

3.2 TrustZone 技术的优势与不足

TrustZone 是 ARM 公司提出的嵌入式平台安全技术,在尽量不影响原有处理器设计的情况下,通过物理隔离保护安全内存、加密块、键盘和显示器等外设,对功耗、性能和面积的影响微乎其微。因此,该技术在提高嵌入式系统安全方面具有一定优势。首先,它提供的物理隔离的环境可以为隐私数据和加解密数据的密钥提供安全的存储空间,是一种天然的保密途径。其次,TrustZone 可以保证整个存储空间的总线带宽,这使其不同于其他的安全技术,对性能的影响极小。此外,TrustZone 系统架构是由软硬件相结合的,在硬件架构固定的情况下,用户可以通过在 TEE 中开发相应的 TA 来满足定制和升级保密系统的需求。

但是 TrustZone 技术也不是万能的,其自身存在许多不足,主要体现在以下几个方面。首先,它只能防御各种软件攻击,难以防御物理攻击,比如物理篡改设备的主存。其次,它仅仅提供了一个隔离的执行环境,并没有向用户或远程者证明这个环境是可信的。另外,虽然用户可以通过在 TEE 中开发相应的 TA 来满足定制和升级保密系统的需求,但是一些依托于硬件的新技术可能无法应用在旧的硬件架构上,从而无法抵御新型攻击。最后,为系统平台提供一个可靠的可信根是保障整个系统安全的基石,而目前该技术是通过在片上系统固化设备密钥作为可信根,这种方法存在密钥更新困难,一旦泄露会导致整个平台无法使用的弊端,并且这种方式需要将设备密钥长期存储在设备上,其安全很难保证,比如如何防御旁道攻击、故障攻击,以及逆向工程等类型的攻击。

未来展望

4.1 TrustZone 技术应用于物联网

近几年,物联网(Internet of Things,IoT)行业蓬勃发展的同时,也吸引了不计其数的网络罪犯。物联网具有广泛的应用领域,如家用电器、医疗器械、工业自动化、智能建筑等。据报道,全球已有超过 200 亿台物联网设备,到 2027 年,这一数字将达到 410 亿台。可穿戴设备和物联网设备在现代社会越来越普遍。据思科公司材料显示,到 2030 年,物联网设备将达到 5 000 亿台。这些设备持续地从各种传感器中产生与隐私相关的数据。问题是,由于硬件需求和成本限制推动了不同的设计方向,确保物联网设备的安全可能是一个难题 。为了解决这个问题,ARM 将 TrustZone 扩展到新一代微控制器(ARMv8-M),使安全在规模和整个价值链上变得切实可行。通过内置 TrustZone,ARM 减轻了安全的经济性,降低了风险、成本和实现健壮的安全措施 的复杂性。

目前,有关 ARMv8-M 安全运行时环境、框架、服务或产品开发的可用信息还很少。咨询 机 构 Prove&Run 推 出 的 ProvenCore-M是一个使用正式验证代码实现的微内核。对于ARMv8-M 而 言,ProvenCore-M 是 下 一 代 经 过正 式 验 证 的 安 全 TEE, 它 提 供 了 一 个 运 行 在ARMv8-M TrustZone 内的基于信任根的安全层。Sequitur Labs 公 司 推 出 的 CoreLockr-TZ 是 一个轻量级的服务分派层,它简化了 ARMv8-M TrustZone 提供的访问安全功能。CoreLockr-TZ通过提供一套服务来简化编写非安全应用程序的开发人员对安全资源和功能的访问,从而抽象出 TrustZone-M 体系结构的复杂方面。为了弥补目前物联网设备传感器系统的不足,Liu 等人 提出的虚拟传感系统 VirtSense,为每个传感应用提供了一个虚拟传感器实例,实现了不同传感应用程序之间的传感隔离,并在不可信的环境中强制执行访问规则。这些目标能够同时合法地访问来自不同应用程序的传感器,而不会相互影响,进一步实现物联网设备上安全、灵活和隔离的传感环境。Oliveira 等人 提出了 utango 第一个面向现代物联网设备的多世界 TEE。utango 提出了一种新颖的体系结构。该架构利用了双世界实现相同的 ARMv8-M TrustZone 硬件原语,以提供多个同等安全的执行环境和增强的 TEE 功能(类似于 SGX 的“飞地”),能够在高度隔离的区域内执行多个环境,可在物联网环境中提供更高的灵活性,并增加安全保障。

4.2 TrustZone 技术与区块链技术结合

区块链技术有望驱动整个制造业革命的到来。例如,一些供应链用例可能受益于使用智能合约的透明资产跟踪和自动化流程。在一些实际的部署中,区块链的透明性既是优点也是缺点。资产和业务交互的暴露,可能引发严重的安全风险。然而,通常没有保密方案来保护智能合约逻辑以及处理过的数据。TZ4Fabric[39]是 一 种 Hyperledger Fabric 的 扩 展, 利 用 ARM TrustZone 来安全执行智能合约。该设计通过避免在 TEE 中执行整个 Hyperledger Fabric 节点(继续在不受信任的环境中运行),最大限度地减少了执行的可信计算大小。同时 TZ4Fabric 将其限制为仅执行智能合约,这种设计不仅可以利用 ARM TrustZone,还可以利用模块化架构,将TZ4Fabric 扩展到未来的 TEE。随着数字货币总价值的不断增长,加密钱包的安全性变得越来越重要。基于硬件的钱包是安全的,但是不方便,因为用户需要携带额外的物理设备;基于软件的钱包是方便的,但是其安全性不能保证。所有钱包都需要同步区块链,而目前大多数移动设备没有存储所有块的能力。为了解决这些问题,移动设备可以使用简化支付验证(Simplified Payment Verification,SPV)。然而,在现有的方法中,并没有很好的方法来保护交易的验证过程。Dai 等人 设计了一个基于 TrustZone 的区块链轻量级安全钱包来保护 SPV。它比硬件钱包更便携,比软件钱包更安全。通过隔离,无论富操作系统是否恶意,都可以保护私钥和钱包地址不被攻击者窃取。