隐私计算中可信执行环境的一知半解

时间:2022-11-14 15:11:20

隐私计算是使数据“可用不可见”的技术,它包括了密码学、人工智能、安全硬件等众多领域交叉的学科体系。对于隐私计算而言,业界通常分为三大路径技术:以安全多方计算为代表的密码学路径、以可信任执行环境为代表的硬件路径和以联邦学习为代表的人工智能路径。

老码农在了解了《从隐私到隐私计算》之后,对《隐私计算之全同态加密》和《隐私计算中的联邦学习》学习之后,如果不再了解一下可信执行环境,总觉得有点怅然若失。尽管“纸上得来终觉浅”,但与“一无所知”相比, 聊胜于无,略觉心安。

可信执行环境

可信执行环境的核心思想是构建一个独立于操作系统而存在的可信的、隔离的机密空间,数据计算仅在 该安全环境内进行,通过依赖可信硬件来保障其安全。可信执行环境的概念源于 Open Mobile TerminalPlatform( OMTP) 于 2006 年提出的一种保护移动设备上敏感信息安全的双系统解决方案,在传统系统运行环境( Rich Execution Environment,REE) 之外,提供一个隔离的安全系统用于处理敏感数据。2010 年 7 月,Global Platform( 致力于安全芯片的跨行业国际标准组织,简称 GP) 起草制定了一整套可信执行环境系统的体系标准,成为当前许多商业或开源产品定义其各种功能接口的规范参考。

根据全球平台国际标准组织 (GlobalPlatform)的定义,一个可信执行环境体系主要包括 :1)普通执行环境(REE)。普通执行环境是指那些有着丰富功能的环境,如 Android、Windows、iOS 等。这些系统由于广泛使用,功能不断增加,结构也越来越复杂,相应地导致安全性普遍不高。

2)可信执行环境(TEE)。可信执行环境主要指那些与普通执行环境相隔离,用于执行高安全性操作的环境。与普通执行环境相比,可信执行环境的功能相对较少,只保留一些与安全相关的机制,如密钥管理等,同时提供一些必要的系统功能。

3)客户端应用(CA)。所有运行在普通执行环境中的应用都被称作客户端应用,其中一些可能需要与可信执行环境通信并要求服务。

4)可信应用(TA)。可信应用是指那些运行在可信执行环境里的应用。这些应用一般用来为客户端应用提供特定的安全服务,或处理一些安全任务,如密钥生成和密钥管理等。

可信执行环境体系结构的构建方法有多种,总体可以归结为 3 种 :扩展协处理器、嵌入式协处理器和处理器安全环境。扩展协处理器和嵌入式协处理器都需要额外的处理器作为安全核来处理安全和完整性保护任 务,不同之处在于扩展协处理器将安全核放置在片外,不与主处理器共享任何资源,而嵌入式协处理器将安全核嵌入片内,一般与主处理器共享部分资源。

可信执行环境的最本质属性是隔离,通过芯片等 硬件技术并与上层软件协同对数据进行保护,且同时 保留与系统运行环境之间的算力共享。目前,可信执行环境的代表性硬件产品主要有 Intel 的 TXT、ARM 的 TrustZone 等,由此也诞生了很多基于以上产品的商 业化实现方案,如百度 MesaTEE、华为 iTrustee 等。下图为基于可信执行环境的数据计算平台技术架构。

隐私计算中可信执行环境的一知半解

严格来讲,可信执行环境并不属于“数据可用不可见”,但其通用性高、开发难度低,在通用计算、复杂算法的实现上更为灵活,使得其在数据保护要求不是特别严苛的场景下仍有很多发挥价值的空间。

Intel 的可信执行技术

可信执行技术(Trusted Execute Technology,TXT)是Intel公司的可信计算技术,主要通过改造芯片组和CPU,增加安全特性,通过结合一个基于硬件的安全设备—可信平台模块(Trusted Platform Module,TPM),提供完整性度量、密封存储、受保护的I/O、以及受保护的显示缓冲等功能,主要用于解决启动进程完整性验证和提供更好的数据保护。

英特尔称,TXT技术具备以下保护功能:处理器执行内存、处理器事件处理、系统内存、内存和芯片组路径、存储子系统、人为输入设备和显卡输出等。

可信执行技术给硬件平台增加了许多关键功 能‚这些功能包括:

(1) 程序执行保护:保护程序执行和存放敏感 数据的内存空间。这项特性允许某个应用程序在一个相对独立的环境中运行,与平台上的其他程序不 能互相干扰。没有任何其他程序能够监视或读取在 保护环境中运行的程序数据。每个运行在保护环境 中的程序将从处理器和芯片组那里获得独立的系统 资源。

(2) 加密存储:密封的存储密钥和其他在使用 和存储中易受攻击的数据。TPM 芯片将可以把密 钥加密并存储在硬件中。而集成了 TPM 芯片的系 统将具备解密密钥的能力。任何企图从 TPM 系统 中未经授权的拷贝操作都只能得到一堆毫无意义的 乱码。

(3) 证明系统能够正确调用可信执行技术‚同 时也确保一个运行在保护空间的软件的校验值。

(4) 减少由于改进的服务而所需的技术支持费 用;支持分散或远程计算;鉴别有更高级别保证的平 台配置。

(5) 内存保护:能够加强系统资源的保护‚增强 了数据机密性和完整性‚改进了数据传输的安全性 和敏感数据的保护性。

TXT 技术的这些特性使计算平台在遇到越来越频繁和越来越复杂的软件攻击时更安全。为了实现可信执行技术‚计算平台需要一些硬 件组成部分‚主要的硬件元件有:处理器‚芯片集‚键 盘和鼠标‚图形设备‚TPM 设备。IA-32架构处理器的扩展允许创建多操作环境‚ 比如标准区域和保护区域的并存‚这样应用软件就 可以独立的被允许在一个受隔离的保护区域。扩展的芯片组加强内存保护机制‚加强了访问内存的数据保护‚保护图形设备和 I/O 设备的通道‚并提供了 TPM 的接口。

隐私计算中可信执行环境的一知半解

此外,Intel TXT 需要系统内建 Trusted Computing Group 定义的 TPM v1.2 和特定软件满足供部分用途,在部分国家的供货可能受到当地法规限制。

ARM 的Trust Zone

TrustZone 技术的主要方法是将设备的硬件和软件资源全部划分成安全区域和非安全区域,两个区域之间不能随意进行数据交换,非安全区域的进程禁止访问安全区域,以保证存储在安全区域的资源不被窃取。下面从硬件和软件两个层面进行分析。

隐私计算中可信执行环境的一知半解

在硬件层面上,TrustZone 将物理处理器核虚拟成两个核,一个称为非安全核(Non-secure,NS),另一个称为安全核(Secure,S),通过 CP15 的 SCR 寄存器中的 NS 位来表明当前所处的状态。非安全核只能访问自己的系统资源,安全核可以访问所有资源 。在安全核和非安全核之间切换的机制称为监视器模 式。非安全核的进程可以通过 SMC 指令或者硬件异常机制进入监视器模式,由此获得安全核的服务。需要注意的是,非安全核的进程只能获得安全核的服务,并不能访问安全核的数据。此外,TrustZone 技术在虚拟内存管理、Cache、外围总线等方面 都做了努力来保证安全核的数据信息不被泄露。

在软件层面上,TrustZone 实现了安全可信启动,即在引导加载过程中先启动安全区域并对启动状态做完整性验证,验证无误后再启动非安全区域,这样能够保证系统启动过程的安全。

目前市面上存在一些基于 TrustZone 的安全技术,如华为 Mate7 手机中使 用的 指 纹识 别 技 术、 苹果 公司的Secure Enclave 技术、三星公司的 Knox 系统等。但到目前为止,这些技术并没有挖掘出 TrustZone 的全部潜力,原因在于 :

1)结构简单,导致功能比较单一,难以扩展 ;

2)平台并不开源,很多开发者不能基于这些安全平台设计新的可信应用。

因此,搭建一个基于 TrustZone 技术的完善的可信执行环境对于平台和应用的开发和研究都是非常有利的 。

小结

信任机制是隐私计算广泛应用的关键,隐私计算技术自诞生以来的重要使命便是保证隐私数据在被利用的过程中不被泄露,以 TEE 为代表 的可信硬件也主要应用于个人移动用户的数据安全保护中。基于 ARM TrustZone 实现的可信执行环境是一种硬件隔离安全机制,以物理方式将系统划分为安全和非安全组件,确保在正常操作下的软件无法直接访问安全区域的数据; 而基于 Intel TXT 实现 的可信执行环境是一种算力和内存隔离的安全机制。而从开源的视角来看,隐私计算的开源项目还是大多集中在联邦学习领域。