中国电信研究院、浦发银行、冲量在线和中国信通院联合发布——隐私计算之TEE技术实践分析

2021-06-09
据IDC预测,全球数据总量预计2020年达到44ZB,我国数据量将达到8060EB,占全球数据总量的18%。

image.png

隐私计算TEE技术应用实践分析

大数据时代,数据流通、安全等问题接踵而至。

据IDC预测,全球数据总量预计2020年达到44ZB,我国数据量将达到8060EB,占全球数据总量的18%。2025年全球大数据规模将增长至163ZB,但据统计98%的企业数据都存在数据孤岛问题,各自存储难以流通,使得数据价值无法得到充分利用。随着数据量量级迅速增长,以及数据自身的特殊性质,数据流通安全问题显得尤为重要。除企业和个人对数据隐私愈发重视外,国家在数据流通安全方面的法律法规也逐渐完善,并且推出了一系列法律法规。

image.png

(内容来源于网上公开资料)

在数据安全问题频出的时代,隐私计算中的TEE技术作为一种可以在保证数据“可用而不可见”的前提下进行数据运算的技术,逐渐被大家所关注。

一、隐私计算TEE技术介绍

TEE全名为可信执行环境(Trusted Execution Environment)是计算平台上由软硬件方法构建的一个安全区域,可保证在安全区域内部加载的代码和数据在机密性和完整性方面得到保护。其目标是确保一个任务按照预期执行,保证初始状态的机密性、完整性,以及运行时状态的机密性、完整性。

1.1 发展历史

TEE相关标准组织的成立:1999年,康柏、HP、IBM、Intel、微软等企业发起成立了可信计算平台联盟TCPA(Trusted Computing Platform Alliance)该组织于2003年改组为可信计算组织TCG,并制定了关于可信计算平台、可信存储和可信网络链接等一些列技术规范。

TEE的实现:2009年OMTP (Open Mobile Terminal Platform,开放移动终端平台)率先提出了一种双系统解决方案:即在同一个智能终端下,除了多媒体操作系统外再提供一个隔离的安全操作系统,这一运行在隔离的硬件之上的隔离安全操作系统用来专门处理敏感信息以保证信息的安全。

TEE相关标准的规范:2011年GlobalPlatform(全球最主要的智能卡多应用管理规范的组织,简称为GP)从2011年起开始起草制定相关的TEE规范标准,并联合一些公司共同开发基于GP TEE标准的可信操作系统。因此,如今大多数基于TEE技术的Trust OS都遵循了GP的标准规范。

TEE相关的芯片厂商:在国外 ARM公司、Intel和AMD公司分别于2006、2015和2016年各自提出了硬件虚拟化技术TrustZone、 Intel SGX和AMD SEV技术及其相关实现方案,在国内由中关村可信计算产业联盟2016年发布TPCM可信平台控制模块,为国产化可信执行环境TEE技术的发展起到了指导作用,国内芯片厂商兆芯、海光分别在2017年和2020年推出了支持可信执行环境技术ZX-TCT、海光CSV(China Security Virtualization)。

image.png

(内容来源于网上公开资料)

二、TEE分类和系统架构

TEE技术是隐私计算的核心技术之一,目前较为成熟的技术主要有:Intel SGX、ARM TrustZone、AMD SEV和Intel TXT。

2.1 Intel SGX

Intel® Software Guard Extensions(英特尔® SGX)是一组用于增强应用程序代码和数据安全性的指令,开发者使用SGX技术可以把应用程序的安全操作封装在一个被称之为Enclave的容器内,保障用户关键代码和数据的机密性和完整性。

(图片来自:Intel Sgx Product Brief 2019 )

Intel SGX最关键的优势在于将应用程序以外的软件栈如OS和BIOS都排除在了Trusted Computing Base(简称TCB)以外,一旦软件和数据位于Encalve中,即便是操作系统和VMM(Hypervisor)也无法影响Enclave里面的代码和数据,Enclave的安全边界只包含CPU和它本身。

(图片来自:Intel Sgx Product Brief 2019 )

SGX Enclave运行时主要由三个部分组成,分别是运行在Ring0的系统模块即SGX驱动,和运行在Ring3中的非可信运行时系统即uRTS,以及运行在EPC内存区的可信运行时系统(tRTS),其中Enclave代码和数据放置在被称为Enclave Page Cache。

(图片来自:Caslab官网)

SGX驱动主要完成如下工作:

Enclave加载。

内存空间分配与销毁。

换页和缺页中断处理。

uRTS主要完成如下工作:

Enclave加载和卸载。

调用管理,处理所有ECall和OCall请求。其中ECall指调用Enclave内的请求,OCall指从Enclave内调用外部的请求。

异常处理,判断具体异常反向调用Enclave。

tRTS主要完成如下工作:

Enclave加载。

调用管理,处理ECall和OCall。

Enclave代码和数据放置在被称为Enclave Page Cache(EPC)的特殊内存区域中,该内存区域使用内存加密引擎(MEE)进行加密,下图展示的是SGX对Enclave内存的保护过程:

(图片来自:Overview of Intel SGX - Part 1, SGX Internals)

值得关注的是,Intel SGX已经先后发布了SGX1与SGX2两代次。其中在服务端芯片中SGX2已在2021正式开始大规模商用。

(图片来自:Caslab官网)

(图片来自:Caslab官网)

SGX2相较于SGX1增加了Enclave动态内存管理(Enclave Dynamic Memory Management,简称为EDMM)能力。在SGX1的指令集中,创建Enclave时需要提前确认Enclave需要用到的内存大小。并且在运行过程中代码模块不能动态加载到Enclave中。这种设计一是增加了Enclave的启动时间,因为需要确认所有内存地址。二是限制了EPC的空间大小,因为需要预分配,考虑到合理性,SGX1 EPC内存上限被设置为256M。这就导致了在运行过程中超过256M的堆栈,会被以换页的形式加密换出到系统内存中,类似换页就会带来较大的性能开销。

SGX2设计引入了EDMM机制,提供了在保证安全性的同时可动态扩缩Enclave内存的能力。EDMM方案中EPC中内存的分配主要有基于OCall事件触发的分配以及基于缺页终端触发的分配两种模式。其核心都是由SGX Driver分配内存页,再由Enclave确认分配生效,分配机制对应用层透明。

SGX2在引入EDMM后,安全性没有降低。SGX2依旧确保Enclave内存页的一致性,一致性可以被度量。由于内存分配依赖OS,为了防止OS提供错误的内存页,每一次内存调整Enclave都需要二次检查内存页(包括权限)的正确性。

SGX支持通过安全认证技术来向挑战者证明Enclave中运行的用户程序的完整性和真实性。SGX的安全认证分为本地认证和远程认证,下图展示的是SGX的远程认证流程:

(图片来自:Intel Software Guard Extensions EPID Provisioning and Attestation Services)

2.2 ARM TrustZone

ARM TrustZone是ARM公司推出的TEE解决方案,它通过对原有硬件架构进行修改,在处理器层次引入了两个不同权限的保护域 --安全世界和普通世界,任何时刻处理器仅在其中的一个环境内运行。

同时这两个世界完全是硬件隔离的,并具有不同的权限,正常世界中运行的应用程序或操作系统访问安全世界的资源受到严格的限制,反过来安全世界中运行的程序可以正常访问正常世界中的资源。

(图片来自:ARM官网)

各芯片产商会根据ARM公司对于TrustZone的硬件设计在具体的芯片上进行设计和实现,基于TrustZone技术,可以搭建一个可信执行环境TEE,在TEE内可以有基于TrustZone的操作系统,如高通的QSEE、开源的OPTEE等,下图即为高通的QSEE的整体架构。

(图片来自:Blogspot: Exploring Qualcomms Secure Execution)

在国产化方面,飞腾、华为等都推出了基于ARM架构CPU的TrustZone方案,如下图所示是支持TrustZone技术的飞腾FT-2000CPU的系统软件架构。

(图片来自:天津飞腾信息技术有限公司 FT-2000+/64 系统软件开发指南)

2.3 AMD SEV

SEV是由AMD提出的安全虚拟化Secure Encrypted Virtualization技术。主要有三个核心技术:

SVM,虚拟化技术。

SME,内存加密技术。

SEV,虚机内存保护技术。

SVM即AMD Secure Virtual Machine的缩写。这是由AMD提供的虚拟化技术,用来X86上支持基于硬件的虚拟化技术,通过硬件提供的辅助加速功能,可以有效提高虚拟化性能。为了支持虚拟化技术,AMD虚拟机框架做了以下设计:

提供VMM(即Hypervisor)和Guest(即虚拟机)之间的快速切换机制。

拦截虚拟机中特定指令和事件的能力。

对内存提供外部(DMA)访保护。

辅助中断处理和虚拟中断(Virtual Interrupt)支持。

对属于Guest和Host(宿主机)的TLB使用标签来减少虚拟化的开销。

SME是Secure Memory Encryption的缩写。AMD在DRAM的控制器中添加了加解密模块,用来控制内内存数据的加密和解密。

(图片来自:AMD Memory Encryption white paper)

SEV(Secure Encrypted Virtualization)是在SVM、SME的基础上对虚拟机进行保护提供的安全增加功能,主要完成对虚拟机内存数据的保护。

将主内存加密功能与现有的AMD-V虚拟化体系结构来支持加密的虚拟机。 加密虚拟机不仅可以让虚拟机免受物理威胁,还可以免受其他虚拟机甚至是hypervisor本身。 因此,SEV代表了一种新的虚拟化安全范例,特别适用于虚拟机不需要完全信任其主机的hypervisor和管理员的云计算系统。 与SME一样,不需要修改应用程序软件即可支持SEV。

(图片来自:AMD x86 Memory Encryption Technology)

在国产化方面,海光推出过相关的解决方案。

2.4 Intel TXT

Intel TXT(Trusted Execution Technology)的主要目标是通过使用特定的Intel CPU、专用硬件以及相关固件,建立一个从开机就可信的环境,从而为系统上运行的用户程序提供更好的安全保护。

(图片来自:英特尔官网)

Intel TXT依赖于可信平台模块(Trusted Platform Module,TPM)来保存软件的指纹信息,每次软件启动时都会Intel TXT都会检测并对比这些指纹信息是否一致,从而判断是否存在风险。

Intel TXT引入了两个TCG概念:静态信任链(Static Chain of Trust)和动态信任链(Dynamic Chain of Trust),如下图所示。静态信任链度量平台配置,动态信任链度量系统软件、软件配置及策略。对于Intel TXT而言,信任根(Root of Trust)就是支持TXT技术的Intel CPU。

(图片来自:英特尔官网)

在国产化方面,兆芯推出过基于其自主设计的开先系列CPU的ZX-TCT解决方案,来应用于可信计算领域。

三、TEE的优势和劣势

3.1 TEE的技术特点

2009年OMTP(Open Mobile Terminal Platform)组织在《OMTP Advanced Trusted Environment OMTP TR1 V11》中明确定义TEE的相关概念和规范,定义TEE为“一组软硬件组件,可以为应用程序提供必要的设施”,相关实现需要支持两种安全级别中的一种:

(1)安全界别(Profile 1)目标要求可以抵御软件级别的攻击。

(2)安全界别(Profile 2)目标要求可以同时抵御软件和硬件攻击。

针对TEE的相关概念及规范定义,各家软、硬件厂商结合自己的基础架构形态具体实现各不相同。虽然在技术实现上存在差异性,但是仍可抽象出TEE的共同技术特点。具体而言,TEE存在以下技术特点:

隔离性:X86架构的隔离机制从Intel 80286处理器开始,Intel提出了CPU的两种运行模式,并且逐步衍生出后来的不同的特权界别,再后来提出了安全区域更小的SGX机制实现可信执行环境TEE。同样的,ARM架构通过TrustZone技术实现了相关软硬件的隔离性,实现安全世界与非安全世界的隔离。TEE通过隔离的执行环境,提供一个执行空间,该空间有更强的安全性,比安全芯片功能更丰富,提供其代码和数据的机密性和完整性保护。

软硬协同性:虽然标准定义可以通过软件方式或硬件方式实现TEE,但实际生产场景下,行业内更多通过软硬结合的方式进行安全性的保障与支持。

富表达性:TEE与单纯的安全芯片或纯软件的密码学隐私保护方案相比支持的上层业务表达性更强,由于只需要定义好业务层面隐私区域和非隐私区域的逻辑划分,而不会对定义隐私区域内的算法逻辑的语言有可计算性方面的限制(图灵完备的)。同时由于TEE已经提供了”安全黑盒“,安全区域内数据无需进行密态运算,从而支持更多的算子及复杂算法。

3.2 TEE的优势

根据TEE的技术特定可以总结其优势:

(1)可信区域内可支持多层次、高复杂度的算法逻辑实现。

(2)运算效率高,相较于明文计算仅有3-4倍损耗,相比MPC及联邦学习100+倍的运算损耗具有一定的优势。

(3)能够应对恶意攻击模型下的攻击手段,通过可信度量的方式保证TEE的运行逻辑的可信及可度量性。

3.3 TEE的劣势

相对的TEE的劣势如下:

(1)方案实现依赖底层硬件架构。

(2)更新升级需要同步进行软硬件升级。

(3)不同厂商的TEE技术互联互通方面有待加强形成更统一的生产级行业标准与事实标准。

四、业界布局

可信执行环境TEE技术因可支持多层次、高复杂度的算法逻辑实现、 运算效率高和可信度量的方式保证TEE的运行逻辑的可信及可度量性的特性,受到业界一致认可,越来越多可信执行环境TEE的开源框架和产品踊跃而出。

4.1 开源框架

来源:美通社