一、TEE 定义与发展脉络
概念及辨析:TEE 与 REETEE 是一种具有运算和储存功能,能提供安全性和完整性保护的独立处理环境。其基本思想是:在硬件中为敏感数据单独分配一块隔离的内存,所有敏感数据的计算均在这块内存中进行,并且除了经过授权的接口外,硬件中的其他部分不能访问这块隔离的内存中的信息。以此来实现敏感数据的隐私计算。富执行环境 (Rich Execution Environment,REE) 指的是操作系统运行时的环境中,可以运行如 Android、IOS 等通用的 OS(Opreating System)。REE 是一个容易受到攻击的开放环境,如敏感数据的窃取、移动支付盗用等等。而 TEE 是中央处理器上的一个安全区域,能够保证敏感数据在隔离和可信的环境内被处理,从而免受来自 REE 中的软件攻击。此外,与其他的安全执行环境相比,TEE 可以端到端地保护 TA(Trusted Application)的完整性和机密性,能够提供更强的处理能力和更大的内存空间。在下图这一典型的可信执行环境架构中,TEE 内部为 REE 中的软件提供了接口,使得 REE 中的软件可以调用 TEE 对数据进行处理,但不会泄露敏感数据。
TEE 与 REE 关系图示
TEE 强大的数据安全和隐私保护能力,使其成为隐私计算主要技术流派之一,比 REE 得到了更广泛的应用。
TEE 的定义论述完 TEE 的概念后,接下来进一步解析 TEE 的深层定义。目前对于 TEE 的定义有很多种形式,针对于不同的安全性需求和平台,TEE 的定义也不尽相同,但在所有 TEE 的定义中都会包含两个最关键的点:独立执行环境和安全存储。在 GlobalPlatform, TEE System Architecture, 2011 中,GlobalPlatform 将 TEE 定义如下:TEE 是一个与设备操作系统并行,但相互隔离的执行环境。TEE 可以保护其中的数据免受一般的软件攻击,TEE 可以使用多种技术实现,在不同的技术实现下 TEE 的安全性等级也会有所不同。在 IEEE International Conference on Trust 2015 上,Mohamed Sabt 等人使用分离核(separation kernel)对 TEE 进行了崭新的更一般化的定义。分离核最早用于模拟分布式系统,其需要满足以下安全性准则:1. 数据独立(data separation):储存在某个分区中的数据不能被其他的分区读取或篡改。2. 时间隔离(temporal separation):公共资源区域中的数据不会泄露任意分区中的数据信息。 3. 信息流控制(Control of information flow):除非有特殊的允许,否则各个分区之间不能进行通信。4. 故障隔离(Fault isolation):一个分区中的安全性漏洞不能传播到其他分区。基于分离核的安全性特质,TEE 可被定义成「一个运行在分离核上的不可篡改的执行环境。」 也就是说,TEE 可以保证其内部代码的安全性,认证性和完整性;可以向第三方证明它的安全性;可以抵抗几乎所有的对主要系统的软件攻击和物理攻击;可以有效杜绝利用后门安全漏洞所展开的攻击。
TEE 发展脉络及现状TEE 技术最早可以追溯到 2006 年。开放移动终端平台(Open Mobile Terminal Platform ,以下简称 OMTP))率先提出一个针对移动终端的双系统安全解决方案,即在同一个终端系统下同时部署两个操作系统,其中一个是常规的操作系统,另一个是隔离的安全操作系统。其中,安全操作系统运行在隔离的硬件环境中,专门处理敏感信息以保障其安全性。在 OMTP 方案的基础上,ARM 公司提出了一种硬件虚拟化技术 TrustZone 及其相关的硬件实现方案,并于 2008 年第一次发布了 Trustzone 技术白皮书。目前 ARM 是移动端最具影响力的方案供应商,其 TEE 技术也在行业内处于主导地位:高通的骁龙 835/845 系列芯片,海思的麒麟 950/960 系列芯片,联发科的 HelioX20、X25、X30,三星的 Exynos8890、7420、5433 等移动端主流处理器的芯片均基于 ARM 结构,并且它们采用的 TEE 技术也基于 ARM 结构。除此之外,还有一种比较主流的可信执行环境产品是 Intel 公司推出的 SGX(Software Guard Extensions)。2010 年 7 月,Global Platform(以下简称 GP)正式提出了 TEE 的概念,并从 2011 年开始起草制定相关的 TEE 规范标准,针对 TEE 系统设计了一系列规范,对应用接口,应用流程,安全存储,身份认证等功能进行了规范化。GP 是跨行业的国际标准组织,致力于制定和发布基于硬件安全的技术标准。GP 组织制定和发布的国际标准被称为 GP 标准。此外 GP 组织还设立了 TEE 检测认证体系,对 TEE 产品进行功能检测并颁发证书,国际上大多数基于 TEE 技术的 Trust OS 都遵循了 GP 的标准规范。国内,银联自 2012 年起与产业链合作开始制定包括 TEE 硬件、TEE 操作系统、TEE 基础服务和应用等各个层面的规范标准,并且于 2015 年通过技术管理委员会的审核发布银联 TEEI 规范。2017 年初,人民银行开始制定 TEE 各层面的需求类规范。2020 年 7 月,中国信通院发布联合 20 家单位共同参与制定的标准《基于可信执行环境的数据计算平台 技术要求与测试方法》。
二、TEE 与其他隐私计算技术
TEE 与安全多方计算、同态加密对比安全多方计算(MPC)、同态加密是和 TEE 一样各有所长的隐私计算技术。MPC 与同态加密是密码学领域最主流的两种隐私计算技术,这两种技术一般在数学上的困难性假设基础均可证明安全,因此它们具有逻辑严谨、可解释性强、可证明安全等特点,但是安全性的提升也导致了较高的计算或通信复杂度,让两种技术的可用性受到了一定限制。例如,同态加密的加解密过程中群上的大数运算带来的计算开销,同态加密的密文长度增长以及安全多方计算技术中多轮通信带来的通信开销等,虽然存在针对这些问题的大量优化方案,但是其性能瓶颈仍未从根本上解决。因此通用型 MPC 协议很难在大规模计算环境下广泛应用,更多是针对特定问题的 MPC 协议,如隐私信息检索(PIR)、隐私集合求交(PSI)等,而同态加密技术则大多仅应用于某些计算协议中关键步骤的计算。与 MPC 和同态加密相比,TEE 可被视为密码学与系统安全的结合,既包含底层的密码学基础,又结合硬件及系统安全的上层实现,其安全性来源于隔离的硬件设备抵御攻击的能力,同时避免了额外的通信过程以及公钥密码学中大量的计算开销。其缺点也在于其安全性很大程度上依赖于硬件实现,因此很难给出安全边界的具体定义,也更容易遭受来自不同攻击面的侧信道攻击。此外,目前 TEE 的安全性标准主要由 GlobalPlatform 制定,通过 GlobalPlatform 安全性认证的产品也比较少,如何进一步制定明确的 TEE 安全性标准也是一个难题。TEE、MPC 和同态加密的对比如下表:
TEE 在联邦学习中的应用TEE 作为基于硬件的隐私计算技术,可通过与联邦学习相结合来保障计算效率和安全性。联邦学习是近年来兴起的一种崭新的机器学习技术,类似于隐私保护下的分布式学习,多个参与方利用自己的数据联合训练一个模型,但每个参与方的数据都不会被暴露。其核心理念是:数据不动模型动,数据可用不可见。在横向联邦学习中,需要每个参与方(party)独立地根据自己手中的数据训练模型,然后将梯度等模型参数上传到服务端(server)并由服务端进行聚合操作,接着生成新的模型分发给各个参与方。在这一过程中,虽然原始数据仍然只保存在每个参与方手中,但实际上攻击者可从梯度信息恢复出原始数据。为解决上述问题,在实际应用中大多通过加噪或同态加密的方式对梯度信息进行保护。此外,也可由 TEE 来替代上述场景中的参数服务器,即在可信执行环境中进行联邦学习的参数聚合,假设 TEE 是可信的,则可以通过简单的数字信封的形式实现可信执行环境与计算节点之间的交互,由此省略了复杂的同态加密计算过程,使联邦学习训练的效率大幅提升。本文以 FLATEE 框架为例,简要介绍 TEE 技术在联邦学习中的应用。如下图所示,在 FLATEE 中,TEE 可以生成用于传输数据和代码的对称加密密钥和公钥。参与方在 TEE 中根据自己的数据训练模型,然后使用这些密钥对模型参数进行加密,并上传至服务端。接收到加密的模型参数后服务端在 TEE 中对加密的模型进行解密,接着通过聚合操作得到新的模型。如果新模型的损失函数在阈值之下,便可宣布算法完成,并把新模型通过 TEE 生成的密钥加密后发送给各个参与方,否则就再进行新一轮的迭代训练,直至到达迭代次数上限或模型训练成功为止。在这个模型中,TEE 同时承担了加解密和隔离计算的功能,可以在不损失计算效率的前提下有效地保障联邦学习算法的安全性。
图片来源文献 5
三、TEE 框架和应用
随着 TEE 技术和标准的日趋成熟,基于 TEE 的开发框架和应用也不断涌现。如下表所示,目前很多公司都开发了其相应的 TEE 系统。其中诺基亚和三星已经公开了各自的 TEE 框架。诺基亚和微软整合的 TEE 框架称为 ObC,目前已经部署在诺基亚流光设备上。三星的 TEE 框架名为 TZ-RKP, 已经部署在三星的 Galaxy 系列设备上。此外,还有一些未公开的 TEE 框架,如 Trustonic 的 < t-base 框架,Solacia 的 SecuriTEE,Qualcomm 的 QSEE,Sierraware 的 SierraTEE 等等。
表格来源文献 1
TEE 可以在一个复杂且相互联系的系统中提供良好的安全性,目前多数 TEE 应用场景均指向智能手机端。在该场景下,TEE 能够提供的安全性服务包括:隐私保护的票务服务、在线交易确认、移动支付、媒体内容保护、云存储服务认证等等。此外,TEE 也可在仅基于软件的情况下实现 TPM(Trusted Platform Module),目前的一个研究趋势是使用 TEE 去保障各种嵌入式系统平台的安全,如传感器和物联网等。基于硬件的 TEE 技术具有很高的实现效率,但这也导致它较为依赖底层的硬件架构,与一般的安全多方计算相比,TEE 具有如下优势和劣势:
优势:
- 可信硬件部分可支持多层次、高复杂度的算法逻辑实现
- 运算效率高,相较于明文计算仅有 3-4 倍损耗,而 MPC 等技术具有上百倍的计算损耗
- 能够抵御恶意敌手
劣势:
- 方案实现依赖底层硬件架构
- 更新升级需要同步进行软硬件升级
- 不同厂商的 TEE 技术各异,需要形成统一的行业标准
根据 TEE 技术的优势和劣势,可以总结出 TEE 技术适用于以下应用场景:
- 计算逻辑相对复杂的计算场景
- 数据量大,数据传输和加解密的成本较高
- 性能要求较高,要求在较短时间内完成运算并返回结果
- 需要可信第三方参与的隐私计算场景,且数据(部分或间接)可被可信第三方获取或反推
- 数据的传输与使用环境与互联网直接接触,需要防范来自外部的攻击
- 数据协作的各方不完全互信,存在参与各方恶意攻击的可能
其中已落地的最常见应用场景包括:隐私身份信息的认证比对、大规模数据的跨机构联合建模分析、数据资产所有权保护、链上数据机密计算、智能合约的隐私保护等。
四、总结
作为一种新兴的系统安全与隐私保护技术,TEE 技术实现了安全性与可用性之间较好的平衡,是当前传统公钥密码学性能受限情况下的一个较好的替代方案,在适当的应用场景中可以作为一些计算协议中的信任根来减少为了去信任引入的性能代价。然而目前 TEE 技术还无法作为通用的安全技术进行应用,主要原因在于其安全性一定程度上依赖于对硬件厂商的信任,同时攻击面较多、安全边界定义不清晰,这都成为了限制其大规模应用的重要因素。对于用户而言,在 TEE 技术的应用过程中,需要清晰地了解其应用场景和局限性,以免造成不可预知的安全问题和财产损失。