高性能、硬隔离、可通用:可信执行环境浅析及应用实践

本文浅析可信执行环境的技术原理、发展历程和应用场景,并介绍基于可信执行环境的可信计算应用实践。

由于数据具有可复制、易流失的特性,数据持有者出于对自身利益、政策法规、泄露风险等方面的考量,不愿将数据对外开放共享,导致大量数据隔离在分散的“数据孤岛”中,难以发挥价值。因此,利用隐私计算技术,遵循数据“可用不可见”的原则,可以在保障数据安全的前提下实现数据的交换、共享、分析和计算。

当前,隐私计算主要包括基于硬件的可信执行环境(Trusted Execution Environment,TEE),基于密码学的多方安全计算,基于人工智能的联邦学习、数据脱敏、差分隐私等技术手段。可信执行环境技术凭借其芯片级的保护方案,具有高安全性、高性能、高通用性等优势,在数据联合金融风控、交易隐私保护、区块链、人工智能、医疗等领域有着广阔的应用前景。本文浅析可信执行环境的技术原理、发展历程和应用场景,并介绍基于可信执行环境的可信计算应用实践。

可信执行环境概述

可信执行环境是一种基于硬件和操作系统的安全架构,通过时分复用CPU或者划分部分内存地址作为安全空间,构建出与外部隔离的安全计算环境,用于部署计算逻辑,处理敏感数据。与可信执行环境相对应的是通用执行环境(Rich Execution Environment,REE),通用执行环境可以提供丰富而灵活的功能,但安全性低;可信执行环境功能较单一,但安全性高。当通用执行环境侧需要进行隐私计算时,它将加密的数据送入可信执行环境,解密为明文后再进行计算。硬件隔离保证了可信执行环境侧明文数据和计算逻辑的安全,明文的计算方式保证了高性能的计算和计算结果的高可用性。

可信执行环境技术的发展可以追溯到2003年,ARM公司为了增强移动设备运行环境的安全性,在V6架构中首次引入了TrustZone技术。该技术通过时分复用CPU,构建了安全世界和普通世界这两个硬件隔离、权限不同的保护域。运行在普通世界的应用程序或者操作系统访问安全世界的资源时会受到严格的限制,运行在安全世界中的应用程序则可以正常访问普通世界的资源(如图1所示)。这一硬件级别的隔离和保护机制确保了即便是普通世界中运行的用户操作系统被获取了root权限,也无法访问安全世界中的资源。

高性能、硬隔离、可通用:可信执行环境浅析及应用实践

图1 ARM TrustZone系统架构

随后,ARM公司将其TrustZone应用程序接口(API)提供给全球平台国际标准组织(GlobalPlatform,GP)。GP起草并制定了可跨平台移植的可信执行环境规范标准,并联合一些厂商共同开发基于GP的可信执行环境标准的安全OS(GP TEE)。GP TEE具有硬件隔离保护机制、高性能、快速通信机制、支持多应用、安全设计等特性。

如今GP TEE已经成为行业主流标准,大多数基于可信执行环境技术的安全OS都遵循这一规范进行开发,并采用相同的API,以便使用不同可信执行环境解决方案的开发者可以利用这些符合GP TEE标准的通用API开发可信应用。

在2018年发布的GP TEE系统架构1.2版本中(如图2所示),可信执行环境软件架构的设计目标是为了使可信应用(TA)拥有可隔离的、可靠的运算能力供客户应用(Client Application,CA)调用。在通用执行环境侧,通信代理为客户应用(CA)和可信应用(TA)间的消息传递提供支持;可信执行环境客户API作为低等级的通信接口,用于运行在通用OS的CA与运行在可信执行环境的TA进行数据交换;可信执行环境协议规格层为CA提供一些高等级的API,用于获取某些可信执行环境服务。在可信执行环境侧,TA运行在可信操作系统上。可信操作系统组件包括可信核心框架和可信设备驱动,前者为TA提供操作系统的功能,后者为可信外围设备提供与可信执行环境的通信接口。可信内核为TA和可信核心框架提供调度和其他操作系统管理功能。

高性能、硬隔离、可通用:可信执行环境浅析及应用实践

高性能、硬隔离、可通用:可信执行环境浅析及应用实践

图2 GP TEE软件架构

TA通过可信操作系统组件提供的API与系统的其他部分进行通信,其中,可信执行环境内部核心API定义了可信执行环境的基础软件功能,非GP标准的扩展API可以为专有功能提供接口。当一个CA创建了与TA的会话,CA应用会被连接到TA的一个实例,该实例的物理内存、地址、空间与其他TA实例的地址、空间是相互隔离的。会话的作用是将TA中被调用的多条指令在逻辑上关联起来,每个会话都有它的状态,通常包括会话的环境和执行会话的任务环境。只有当TA接收到外部指令,CA应用才会开始执行;何时返回指令的执行结果由TA应用决定。

前面提到,可信执行环境的一个特性是快速通信机制,即CA和TA可以快速而高效地交换大量数据,这一机制是由可信执行环境和通用执行环境共享内存实现的。共享内存的使用协议由TA的设计者定义,通过可信执行环境客户API和内部核心API实现。由于存在CA或者TA异步地修改内存内容的可能性,使用共享内存时应特别注意安全方面的考量。

可信执行环境技术应用场景

2013年,苹果公司推出的基于可信执行环境的指纹识别TouchID,可被视为可信执行环境技术在手机端的一次具体应用。随着可信执行环境技术的发展,基于移动终端的可信执行环境应用已经较为成熟,具体应用场景包括指纹/人脸识别、手机钱包、手机盾等涉及隐私计算的服务。服务器端的可信执行环境应用还处于起步阶段,目前主流云计算厂商提供的基于可信执行环境的隐私计算服务大体有2种应用场景:多方隐私计算产品和单方高安全要求的计算。多方隐私计算产品结合可信执行环境技术和多方安全计算技术,在可信执行环境内进行计算,可用于多方隐私数据的安全融合,实现数据联合风控、联合营销等应用。单方高安全要求的计算主要用于区块链安全增强场景,可以为区块链提供高安全性的智能合约执行环境;可以实现可信桥接机制,将外部数据安全引入区块链内,实现链上链下数据核验或触发区块链内合约的执行。除此之外,可信执行环境技术还可以用于密态数据库、人工智能和密钥管理系统等场景。

基于可信执行环境的隐私计算应用实践

可信执行环境技术是实现隐私计算的重要趋势技术,研究人员基于华为鲲鹏计算TrustZone解决方案进行了技术研究和原型验证,实现了隐私求交案例。

iTrustee可信执行环境遵循GP TEE标准,是华为自主研发的安全OS,具有高安全、高性能、高扩展和高稳定等特性。鲲鹏服务器支持TrustZone TEE,在硬件层面把CPU隔离为通用执行环境普通世界和可信执行环境安全世界。可信执行环境拥有最高的系统权限,通用执行环境无法访问它的内存、时钟、Cache、TLB等系统安全资源。通过将普通应用拆分为CA和TA,并且将安全性要求高的TA运行在可信执行环境环境中,可以确保关键数据明文不出可信执行环境,防止敏感数据被窃取。

作为原型验证,在隐私求交案例中,在通用执行环境侧CA读取存储在硬盘中的本地数据,加密后将数据传递到可信执行环境环境。可信执行环境接收到密文后加载对应的TA,先对密文进行解密,然后对两组明文数据进行求交操作。最后,TA将计算结果返回给CA。由于采用了时分复用CPU的机制,可信执行环境运行时占有CPU的全部运算能力,该案例中可信执行环境展现了高计算性能。

知识小拓展

什么是“联邦学习”?

联邦学习是一种机器学习框架,设计目标是在保证数据隐私的前提下实现共同建模。根据多个参与方之间的数据分布模式,联邦学习可分为横向联邦学习、纵向联邦学习和迁移学习。

以横向联邦学习为例,不同的机器从服务器下载模型,用本地数据训练模型后返回需要更新的模型参数给服务器,服务器综合各机器反馈的参数进行模型更新与重新发布。在这一过程中,机器只传输了模型参数给服务器,避免了传输明文数据;机器之间无数据交换。联邦学习需要根据特定场景设计算法,通用性受到限制,安全性无理论证明。

声明:本文来自FCC30+,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。

版权归原作者所有,如若转载,请注明出处:https://www.ciocso.com/article/372.html

(0)
上一篇 2021-03-11 02:30
下一篇 2021-03-11 12:48

相关推荐

发表回复

登录后才能评论