大数据时代,数据流通、安全等问题接踵而至。
据IDC预测,全球数据总量预计2020年达到44ZB,我国数据量将达到8060EB,占全球数据总量的18%。2025年全球大数据规模将增长至163ZB,但据统计98%的企业数据都存在数据孤岛问题,各自存储难以流通,使得数据价值无法得到充分利用。随着数据量量级迅速增长,以及数据自身的特殊性质,数据流通安全问题显得尤为重要。除企业和个人对数据隐私愈发重视外,国家在数据流通安全方面的法律法规也逐渐完善,并且推出了一系列法律法规。
在数据安全问题频出的时代,隐私计算中的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)。
TEE技术是隐私计算的核心技术之一,目前较为成熟的技术主要有:Intel SGX、ARM TrustZone、AMD SEV和Intel TXT。
2.1 Intel SGX
Intel® Software Guard Extensions(英特尔® SGX)是一组用于增强应用程序代码和数据安全性的指令,开发者使用SGX技术可以把应用程序的安全操作封装在一个被称之为Enclave的容器内,保障用户关键代码和数据的机密性和完整性。
Intel SGX最关键的优势在于将应用程序以外的软件栈如OS和BIOS都排除在了Trusted Computing Base(简称TCB)以外,一旦软件和数据位于Encalve中,即便是操作系统和VMM(Hypervisor)也无法影响Enclave里面的代码和数据,Enclave的安全边界只包含CPU和它本身。
SGX Enclave运行时主要由三个部分组成,分别是运行在Ring0的系统模块即SGX驱动,和运行在Ring3中的非可信运行时系统即uRTS,以及运行在EPC内存区的可信运行时系统(tRTS),其中Enclave代码和数据放置在被称为Enclave Page Cache。
SGX驱动主要完成如下工作:
Enclave代码和数据放置在被称为Enclave Page Cache(EPC)的特殊内存区域中,该内存区域使用内存加密引擎(MEE)进行加密,下图展示的是SGX对Enclave内存的保护过程:
值得关注的是,Intel SGX已经先后发布了SGX1与SGX2两代次。其中在服务端芯片中SGX2已在2021正式开始大规模商用。
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的远程认证流程:
2.2 ARM TrustZone
ARM TrustZone是ARM公司推出的TEE解决方案,它通过对原有硬件架构进行修改,在处理器层次引入了两个不同权限的保护域 --安全世界和普通世界,任何时刻处理器仅在其中的一个环境内运行。
同时这两个世界完全是硬件隔离的,并具有不同的权限,正常世界中运行的应用程序或操作系统访问安全世界的资源受到严格的限制,反过来安全世界中运行的程序可以正常访问正常世界中的资源。
各芯片产商会根据ARM公司对于TrustZone的硬件设计在具体的芯片上进行设计和实现,基于TrustZone技术,可以搭建一个可信执行环境TEE,在TEE内可以有基于TrustZone的操作系统,如高通的QSEE、开源的OPTEE等,下图即为高通的QSEE的整体架构。
在国产化方面,飞腾、华为等都推出了基于ARM架构CPU的TrustZone方案,如下图所示是支持TrustZone技术的飞腾FT-2000CPU的系统软件架构。
2.3 AMD SEV
SEV是由AMD提出的安全虚拟化Secure Encrypted Virtualization技术。主要有三个核心技术:
SEV(Secure Encrypted Virtualization)是在SVM、SME的基础上对虚拟机进行保护提供的安全增加功能,主要完成对虚拟机内存数据的保护。
将主内存加密功能与现有的AMD-V虚拟化体系结构来支持加密的虚拟机。 加密虚拟机不仅可以让虚拟机免受物理威胁,还可以免受其他虚拟机甚至是hypervisor本身。 因此,SEV代表了一种新的虚拟化安全范例,特别适用于虚拟机不需要完全信任其主机的hypervisor和管理员的云计算系统。 与SME一样,不需要修改应用程序软件即可支持SEV。
在国产化方面,海光推出过相关的解决方案。
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解决方案,来应用于可信计算领域。
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存在以下技术特点:
(1) 隔离性:X86架构的隔离机制从Intel 80286处理器开始,Intel提出了CPU的两种运行模式,并且逐步衍生出后来的不同的特权界别,再后来提出了安全区域更小的SGX机制实现可信执行环境TEE。同样的,ARM架构通过TrustZone技术实现了相关软硬件的隔离性,实现安全世界与非安全世界的隔离。TEE通过隔离的执行环境,提供一个执行空间,该空间有更强的安全性,比安全芯片功能更丰富,提供其代码和数据的机密性和完整性保护。
(2) 软硬协同性:虽然标准定义可以通过软件方式或硬件方式实现TEE,但实际生产场景下,行业内更多通过软硬结合的方式进行安全性的保障与支持。
(3) 富表达性: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 开源框架
4.2 Teaclave
Teaclave是由百度公司开源的基于TEE的安全计算平台,目前是Apache孵化项目之一,在贡献给Apache之前项目名为MesaTEE。Teaclave设计思路是构建一个类FaaS(Function as a Service)的计算平台服务。平台在提供TEE机密计算、远程验证、安全存储等功能基础上,再通过一套任务管理框架实现了多任务的管理和并发操作。同时按照FaaS的设计逻辑实现计算函数的可插拔。
Teaclave后端核心模块包括管理服务、调度服务、鉴权服务和机密存储服务,这些服务全部在Enclave运行。各模块之间通过统一形式的RPC接口通信,并且端到端双向验证。具体的函数执行通过调度服务分派到不同的TEE工作节点上完成。
当前Teaclave支持两类计算实现,一类由Rust实现,通过实现预定义的run方法,并将类注册到执行器类中即可发起对应方法的任务。另一类由python实现,python实现的代码会在具体执行时被TEE内的解释器翻译执行。底层使用的是MesaPy for SGX解释器,目前已经支持Marshal、Math、Binascii、Itertools、Micronumpy等工具库。
4.3 Graphene
Graphene是一个SGX LibOS项目,Graphene本身直接与SGX AESM Gateway服务进行交互,所以在实现上不依赖SGX SDK。目前已经封装了47个Host ABI接口,其中36个需要OCall。支持包括fork、exec在内大部分System V IPC。Graphene目前包含接近5万行LibOS代码和2万行SGX PAL代码。编译后接近1MB,可以说非常轻量。
Graphene用户态多进程模型是由LibOS隔离的,即通过创建新的Enclave来启动新的OS进程。LibOS之间使用RPC模拟进程间通信。
在Graphene上已经进行过充分验证的应用包括Tensorflow、Pytorch、OpenVINO等机器学习框架,Memchached、Redis、Nginx、Apache HTTP Server等企业级服务。
4.4 Occlum
Occlum是蚂蚁金服公司开源的面向内存安全和多任务的SGX LibOS项目。和其他LibOS一样,Occlum目标是降低遗留应用迁移到SGX中的编码成本。对应用代码不做更改或者只做少量调整,就可以迁移到SGX中运行,获得机密性和完整性保护。
Occlum相比其他同类LibOS项目主要有以下优势:
4.5 OpenEnclave
Microsoft Open Enclave希望兼容不同的TEE技术,并且提供统一的编程API。Open Enclave是一套C/C++的SDK。Open Enclave目前主要支持Intel SGX,对ARM TrustZone的OP TEE OS支持还停留在预览阶段。
Open Enclave SDK主要封装了Enclave生命周期管理、Enclave度量、Enclave内外互调用、系统调用、数据封装、远程验证以及一些密码学库。
Open Enclave移植了MUSL库(跨平台的C标准库),也适配了一些第三方库,包括Openssl、Mbedtls、LLVM LibC++等。
4.6 Asylo
Google Asylo也提供了C/C++的SDK,但不同的是Asylo更进一步定义了基于SGX的应用实现规范,也就是所谓的编程框架。基于Asylo实现的应用也是分为非可信区和可信区,但互相的通信被约束为C/S模式。非可信部分实现客户端和Enclave管理器,可信部分实现计算服务端。
在远程验证方面,Asylo提供了基于Intel ECDSA Quoting Enclave和Assertion Generator Enclave(简称AGE)两种TCB模式,两种模式都是在SGX ECDSA远程验证模式基础上开发的,所以都需要CPU支持FLC。两者的区别是前者直接基于Intel QE提供了函数接口。而AGE采用了C/S模式,基于Asylo框架,成为了一个常驻GRPC服务,方便外部用户实时调用验证。虽然提升了远程验证的易用性。但显然,AGE的TCB会比单纯使用Intel QE更大。
另外,Asylo还集成了秘密封装、密钥协商以及TEE服务代理等功能。总体而言Asylo是一套把SGX做成服务化的编程框架。
4.7 OP-TEE
在ARM TrustZone生态中,Trusted OS是工程化相对密集的领域。OP-TEE是Trusted OS的一个开源实现。Trusted OS位于安全世界(Secure World)不是一个位于非安全世界(Normal World)的普通操作系统(Normal OS)。Trusted OS属于整个TrustZone应用的可信计算根,必须保证安全,所以相对而言代码量较少,通常而言代码量会比TA少一个量级。在Trusted OS中没有POSIX API,也没有动态链接库,所以其上运行的TA默认使用了静态编译。Trusted OS也需要依赖普通操作系统的帮助,比如对文件系统的访问、对外部设备的访问,都需要通过普通操作系统的系统调用完成。
OP-TEE包括安全世界操作系统(OPTEE_OS),普通世界客户端(OPTEE_Client),测试套件(OPTEE_Test / XTest)和Linux驱动程序。 操作系统和客户端符合Global Platform规范。 项目由Linaro维护,已经适配支持28多个平台/处理器。开发用户负责开发在Linux上运行的客户端应用程序(CA)和在OP-TEE上运行的可信应用程序(TA)。 CA使用TEE客户端API与TA对话并从中获取安全服务。 CA和TA使用共享内存在彼此之间传递数据。
类似OP-TEE,开源的Trusted OS还包括OPEN-TEE、Trusty、SierraTEE、SafeG等,并且还有很多企业自用闭源的Trusted OS,比如苹果的Secure Enclave、高通的QTEE、三星的Knox、Teegris、Trustonic的Kinibi OS、华为的TrustedCore等。
4.8 产品服务
中国信息通信研究院联合行业领军企业共同制修订了《基于可信执行环境的数据计算平台 技术要求与测试方法》。测试标准致力于为可信执行环境TEE在数据流通中的应用提供在任务处理能力、算法拓展性、环境验证、通信安全、计算机密性、一致性、数据存储、审计和运维这九个角度对产品能力提出规范要求,为可信执行环境技术在数据流通行业的落地提供可行性证明。
5.1 应用场景:
可信执行环境技术(后简称TEE)因其较强的算法通用性和较小的性能损失,在许多涉及到隐私数据计算的场景中都得到了广泛应用,并且尤其适用于具备以下特征的应用场景:
(1) 计算逻辑相对复杂,算法难以通过同态加密等技术进行改造,或者改造过后效率下降过多
(2) 数据量大,数据传输和加解密的成本较高。
(3) 性能要求较高,要求在较短时间内完成运算并返回结果。
(4) 需要可信第三方参与的隐私计算场景,且数据(部分或间接)可被可信第三方获取或反推。
(5) 数据的传输与使用环境与互联网直接接触,需要防范来自外部的攻击。
(6) 数据协作的各方不完全互信,存在参与各方恶意攻击的可能。
其中最常见的具体应用场景包括:隐私身份信息的认证比对、大规模数据的跨机构联合建模分析、数据资产所有权保护、链上数据机密计算、智能合约的隐私保护等。
隐私身份信息的认证比对
身份信息的认证比对是许多数字化应用需要具备的基础功能之一,通过对使用者的指纹、脸部图像、声音等数据进行比对,验证使用者的真实身份以确保安全性。在一些场景中,监管部门还会要求应用对使用者的实名信息进行匹配,以便满足社会安全管理的相关需求。
在身份信息认证比对的过程中,用户的个人信息需要被设备采集上传,并存储在服务端的数据库当中。无论是网络传输、持久化存储还是验证过程中的数据调用,都有可能因外部攻击或应用本身的恶意行为而导致的用户隐私泄露,从而危害到用户的财产甚至人身安全。
为了降低身份信息认证比对过程中的隐私泄露风险,TEE技术被应用于包括移动端、PC端和各类终端设备中。由摄像头、指纹识别器等IO设备采集到的个人身份数据,经过加密后传输到基于TEE技术生成的隐私计算环境中,数据在TEE内进行解密、特征提取、相似性比对等一系列操作,并将最终结果和再次加密的数据,通过安全的传输通道上传至服务器端。
在整个过程中服务器仅能获得最终的比对结果和加密的原始数据,明文数据的计算完全在由用户掌握的终端设备的TEE中完成,既能够保障用户隐私信息的安全性,又可以防止终端设备上其它应用通过对校验过程进行干扰而发生作弊行为。
大规模数据的跨机构联合建模分析
在数字化社会的发展过程中,基于大数据技术和数据智能衍生出的各类产品和服务已经广泛地影响到商业和生活,包括但不限于基于大数据制定商业策略、预测市场趋势、评估用户购买意愿、控制金融和社会风险等。随着这些场景中各类算法的迭代发展,对于数据维度和数据量的要求也在日益增加,单个机构仅仅使用自身业务产生的数据已经不足以支撑这些场景的需求,因此联合多方数据进行联合分析建模已经成为一个重要趋势。
由于大数据分析难以避免会涉及到企业的用户数据和经营数据,在多方数据联合和协作的过程中,各方都希望输入的原始数据中的这些隐私信息能够得到充分保护,而最终输出的结果仅包括通过算法计算得到的不包含具体数据的分析结果或模型,即实现数据的可用而不可见。
在这类型的场景中,可以通过分布式部署在多个机构间的TEE节点网络,实现数据的隐私求交和计算。各方通过部署在本地的TEE节点从数据库中获取数据,并通过一个基于TEE可信根生成的加密密钥对数据进行加密,该密钥通过多个TEE节点协商产生,仅在各节点的TEE安全区域内部可见。加密后的数据在TEE节点网络间传输,并最终在一个同样由TEE节点组成的计算资源池中,然后在TEE中进行数据的解密、求交和运算。在运算完成后,TEE节点仅对外部输出结算结果,而原始数据和计算过程数据均在TEE内部就地销毁。
通过TEE技术实现的多方数据联合建模,既能够满足多方数据协作的业务需求,也能够充分保护各方之间原始数据可用不可见。并且相比其它的分布式计算或纯密态计算的方案,基于TEE的方案具备更强大的性能和算法通用性,能够在涉及到大规模数据或对性能有一定要求的场景中达到更好地效果。
数据资产所有权保护
随着国家宏观数据政策对于数据生产要素市场化的要求越来越明确,数据作为一种资产在企业间共享、交易和流通已经是大势所趋。然而数据作为一种数字化资产,具备可复制、易传播的特性,如何在数据资产共享和交易过程中保护数据资产的所有权,成为了推动数据生产要素市场化需要解决的首要问题之一。
通过TEE技术与区块链技术的有机结合,可以在企业间进行数据共享和交易时有效确保数据所有权和数据使用权的分离和保护。所有数据资产通过数据指纹在区块链中存证,通过区块链的交易记录来追溯和监管数据所有权的变更。当数据使用权和所有权发生分离时,所有数据的使用过程必须在TEE内部发生,通过对运行在TEE中的程序可信度量值的存证,数据的所有者可以确定数据使用者仅在双方约定的范围和方式内使用数据,当计算过程完成后,原始数据将在TEE内部销毁,保障数据所有权不会因使用者对原始数据的沉淀而丢失。
在TEE和区块链技术的结合下,数据交易过程的安全、可信和公平可以得到更好的保障,数据权属的划分可以更加明确,从而让数据生产要素成为一种真正可流通的资产,促进数字化社会对于数据生产要素潜能的充分激活。
链上数据机密存储和计算
面对日益增长的电子数据存证需求,传统的存证方式因成本高、效率低、采信困难等不足,而逐步被区块链电子存证取代,利用区块链的可追溯、不可篡改和安全透明的特性去保证数据“存储、提取、出示、比对”等环节都在链上公示,如何保证链上公示数据的安全性,成为推动区块链电子存证发展的需要首要解决的问题之一。
在这类场景中,可以通过TEE节点,实现链上数据的机密存储和计算。链上的各方通过一个加密密钥对数据进行加密存储,该密钥通过链上的TEE节点协商产生,仅在各节点的TEE安全区域内部可见。当需要对链上数据进行验证时,加密后的数据在TEE节点网络间传输,然后在TEE中进行数据的解密,并与链上存储的经过区块链全网共识的数据指纹进行对比,确认数据未被恶意篡改后,再进行后续的运算。在运算完成后,TEE节点仅对外部输出运算结果,而原始数据和计算过程数据均在TEE内部就地销毁,从而实现链上数据的机密存储和计算。
在TEE技术的加成下,链上数据以及使用流程的隐私性也可以得到更好的保证,从而让区块链具备安全、可信和公平的存证的能力,让区块链存证也可以更好的落地并服务于各行各业的用户,做到真正的为民所用。
5.2 实践案例:
基于可信执行环境TEE的数据隐私计算服务通过TEE技术实现的多方数据协作运算,既能够满足数据协作的业务需求,也能够充分保护各方之间原始数据可用不可见。并且相比其它的分布式计算或纯密态计算的方案,基于TEE的方案具备更强大的性能和算法通用性,目前已在运营商、政务、金融、互联网和医疗行业不断落地,以下根据网上公开信息收集整理。
冲量在线和中国电信围绕电信集团内部和政企客户之间的数据流通场景展开,基于中国电信自主研发的区块链底层技术,和冲量在线在隐私计算方向的技术融合解决数据流通的可信、隐私、安全、公平、可追溯等问题,提供链上数据智能合约化定价与流通的新范式。
百度区块链和浦发银行的合作中通过可信计算+区块链的能力,构建一个多方联合数据隐私计算的平台,让各参与方在不暴露原数据的情况下,在隐私安全、公平可追溯的前提条件下进行一些数据的联合计算,有助于打破数据孤岛,发挥出数据的价值。
蚂蚁推出的可信计算服务产品可信计算服务,打通了链上数据与链下数据源,支持多方数据融合和治理,为用户提供了通用的、可验证的隐私数据计算服务,当前该服务已在某数据物理平台落地,通过网络货运平台运单上链,将物流运输关键信息进行交叉核验,以真实运输背景为出发点,连接金融机构,为物流平台提供普惠金融服务,同时拥抱监管,确保各项业务真实合规。
国外的Fortanix是一家专注可信计算的公司,为企业提供数据隐私保护服务,该服务支持多家企业数据在可信环境中汇聚并进行数据分析任务,并在PayPal、Standard Chartered Bank等多家金融机构合作的项目中,完成了落地,通过多家金融机构的数据协作,极大的提升了金融机构反洗钱风控的准确性。
6.1 端到端的可信任
可信执行环境TEE技术已经成为隐私计算领域的多种技术路线之一,并且具备通用性好、性能高,跨网通信量小、支持人工智能算法、算力可无限扩展等核心优势,但仍需进一步提升TEE技术的普及度和可信度。
首先需要提供的是“可信第三方”的能力,TEE技术本质上源于芯片的安全与加密能力,所以对于芯片提供商的技术能力、可持续发展性、安全可控性有很高要求。在国内的自主可控与自主创新的大背景下,国产芯片、TEE中间件、操作系统和隐私计算软件等多厂商联合起来共同提高国产芯片TEE的可用性、性能、安全性和通用性才能够真正地提供端到端的隐私计算与数据流通方案能力。截止2021年第二季度,已看到很多国产芯片结合隐私计算的相关解决方案落地,相信不久的将来将会出现更多可信任的国产化TEE实践案例。
其次需要提供的是“去中心化和大规模组网”的能力,从芯片开始TEE技术本质提供的是单台服务器的加密计算内存空间,在实际落地中仅使用一台TEE无法解决多参与方和大规模数据量并行计算的问题,需要通过软件与中间件的手段建设分布式组网的大规模TEE算力集群,真正地做到任何参与方都掌控TEE算力,任何计算任务都能灵活地并行调度至合适的TEE节点中,才能够实现去中心化和灵活组网的数据流通新范式,符合国家对于跨域跨网跨地区的数据流通和共享的新要求。
6.2 工业标准
TEE技术已经成为硬件行业和软件行业争相布局的安全领域。硬件行业包括全球最领先的计算芯片设计制造商Intel、AMD、ARM都提出了各自的TEE实现方案;软件行业,虚拟化方向包括VMware、Xen、KVM都在跟进TEE虚拟化方案,云服务行业包括AWS、Azure、Google Cloud、Alibaba Cloud、IBM Cloud、Oracle Cloud都在推出基于TEE的安全计算服务。可以确信,在不久的将来,可信执行环境TEE一定会成为安全计算的基础技术。
6.3 开发者友好度
对于目前TEE LibOS技术路线来说,较小的TCB和较完备的POSIX兼容性看起来是一对矛盾的工程化目标。较小的TCB意味着更简单更透明的基础依赖层以及更低的信任成本,较完备的POSIX兼容性意味着遗留系统迁移到TEE中运行的改造工作更少。目前看来工程界还没有找到两全其美的解决方案。不过有越来越多的LibOS项目在压缩自己的设计复杂度和代码量,同时也在兼容覆盖更多的系统调用。
对于坚持使用SDK的开发者阵营而言,如何去支持更多的语言成为了工程上最大的问题。目前已经兼容的SDK,包括C/C++、Rust、Python、Golang等。但除了C/C++、Rust外,其他SDK从API覆盖度、语言单一度都有所欠缺,还无法直接支持生产环境下的工程开发。不过我们可以看到有越来越多的研发资源投入到SDK本身的开发上,并且越来越多的项目依赖这些SDK来开发。另一个思路是找到通用语言适配的方法,目前尝试最多的是针对WASM的TEE实现,可以将任何高级语言的代码转译成WASM码然后再执行。通过上述两个研发方向的促进,TEE的SDK生态发展规模势必会越发蓬勃。
6.4 TEE实例化
TEE实例化是解决TEE运行时统一性的问题。可以看到不管是哪种TEE技术,各个厂家的原生方案都在追求同一个TEE芯片内部的实例化隔离特性。TEE提供资源管理,具体内部的运行逻辑以及运行并发数则由具体的程序逻辑而定。从而把资源和运行时区分开来。运行时的隔离往往更方便资源的切割,这是云计算服务商最希望使用的技术。因为TEE实例化后可以对底层资源进行更好的度量、分配和调度。
这个方向后续可以关注TEE与云原生的结合,云计算服务厂商目前都在推出单个的安全容器服务,后续会逐步过渡到支持安全容器在云原生系统中调度。同时也可以关注异构TEE硬件的通用实例化技术,包括SGX Enclave、TrustZone TA以及AMD SEV,可能可以找到一致的实例化通用描述,从而方便未来在跨硬件跨云的灵活调度。
6.5 自主可控性
随着国内的政府、金融等关系到国计民生的重要领域在计算机软硬件领域的自主可控要求逐步提高,如何将依赖软硬件结合的数据流通和隐私计算技术——TEE,发展成为完全自主可控的技术,并落地在实际业务场景中,成为业界关注的话题,当前国内的多个芯片厂商也在研发和推出TEE解决方案,并在信任链扩展性、集成密码学算法等方面,相比国外TEE方案国产化TEE技术都做了创新。随着国产化CPU需求的快速增长、软硬结合的隐私计算技术的快速突破以及跨机构跨行业的数据协作意识越来越强,多重因素的刺激下,满足自主可控性要求的国产化TEE技术势必会成为未来TEE技术的主流。
6.6 多技术融合
满足商业生产环境的复杂应用需求,保障数据安全可信流通的技术解决方案只靠TEE是远远不够的。可以从安全、可信、可运维和数据智能化四个层面来分析需要融合的技术。
从系统安全角度来看,系统安全是数据隐私保护的前提,若某一方的系统如果被敌手攻破,之上构建的所有隐私策略效果都会归零。安全主要要保证系统的各个域内以及跨域之间的通信是可靠的,抗攻击的。所以需要TEE、可信计算、加密通信等技术对已有底层系统进行安全加固。
从系统可信角度来看,系统本身要保证各个切面的行为都是可以被跟踪、审计的。所以需要保证各方之间流通的要素都是可度量的。各方之间有计算任务的流通、算法需求的流通、算力的共享等,这些要素都可以直接或间接地通过密码学算法、TEE等进行量化度量,再通过区块链做到抗抵赖的存在性证明。
从系统可运维性来看,因为是一套跨多方的分布式系统,系统要具备可灵活部署、标准化交付的能力。在系统设计上,基于云原生标准构建,可以方便地进行跨云部署,并且兼容底层不同的硬件体系。此外容器化构建的好处也在于可以将交付物统一。
从数据智能化来看,因为数据的价值取决于数据挖掘的计算能力。构建数据协作的系统的目的是为了挖掘出数据的价值,所以必然需要集成已有大数据系统和已在生产环境中反复验证过效果的数据挖掘算法。
结合上面的分析,安全可信的数据流通系统需要多技术融合,不仅仅是TEE,区块链、云原生、数据挖掘等都将是这个领域的技术基石。
作者简介:中国电信研究院刘岩、梁伟、杨明川、高伟勃、夏晓晴、赵君,中国电信股份有限公司吉林分公司崔文博,浦发银行信息科技部郭林海、高扬,北京冲量在线科技有限公司陈浩栋、宋雨筱、毛宏斌、张亚申、周岳骞,中国信息通信研究院云计算与大数据研究所闫树、袁博。