http://www.7klian.com

基于可信执行环境(TEE)技术的联邦计算

基于TEE的联邦计算模式相对基于密码学的安全多方计算方式而言性能更高,而且能够同时保护计算模型和数据,但是从数据安全的角度来看这种方式完全依赖所需要的硬件,且计算集中存在更大的安全隐患和缺乏公平性。

导读:前面文章提到跨组织安全数据协作方案,通过在各机构建立BitXMesh节点,并以P2P形式连接,构建链下去中心的网络。

参与到网络的各机构编写业务计算模型,节点间进行计算任务协调、调度,以移动计算结果而不是移动数据方式,实现多方模型计算和结果共享,我们将这种联合多方参与的计算模式称为联邦计算。通过联邦计算可以联合多方数据进行计算,为保证在过程中不泄漏参与计算的数据信息和篡改模型执行流程。

可信执行环境技术(TEE,Trusted Execution Environment)提供了可行的技术支持,其核心思想是以可信硬件为载体,提供硬件级强安全隔离和通用计算环境,数据仅在隔离的安全区“飞地”(Enclave)内才进行解密并计算,除此之外任何其他方法都无法接触到数据明文内容,数据在离开“飞地”(Enclave)之前又会被自动加密。

通过可信执行环境技术将模型需要的数据汇集到TEE可信硬件区域中,然后进行计算,实现互不信任的多个数据参与方进行协同计算,输出计算结果,并保证任何一方均无法得到除应得的计算结果之外的其他任何信息,实现数据“可用不可见”。

TEE简介

可信执行环境技术,指的是通过对外部资源和内部资源的硬件隔离实现安全的执行环境。

隔离的具体实现包括中断隔离、RAM的隔离和外设的隔离、芯片内部RAM和ROM的隔离等。

通过这种隔离将一个CPU物理核分成安全状态和非安全状态,当物理核处于非安全状态时只能访问非安全的外设和内存;当物理核处于安全状态时,可以访问安全资源也可以访问非安全资源。

TEE基于可信硬件,是处理器上的一块独立的安全区域。作为独立执行环境的TEE能够保证使用TEE的应用程序的代码的完整性,以及数据的机密性,TEE-enabled的处理器提供如下两个关键特性:

Isolation(隔离)

以硬件为载体,提供强安全隔离和通用计算环境。

即可以把任何通用程序运行在TEE内部,保证不会泄露内部的程序或者数据,也无法干预程序的内部执行流程。每个Enclave的环境都与Enclave之外的untrusted软件以及其他Enclave隔离。

Attestation(认证)

认证的支持,TEE保证不泄漏隐私,可以给其他人提供服务,那其他人怎么相信服务是运行在TEE里面,而不是TEE外,需要认证。

认证方案,允许向远程方证明软件正在TEE内运行,结果可以通过签名来保证TEE内的程序一定是运行在TEE内的环境中的。

以Intel提供的TEE技术SGX为例,说明TEE应用的设计,英特尔 SGX 技术将应用分成两个部分,如下图:

可信部分

它指的是安全区,可信部分中的代码是访问应用私密(secret)的代码,应用可以拥有一个以上安全区。

不可信部分

它包括应用的剩余部分及其所有模块。从安全区的角度来看,操作系统和虚拟机显示器都被看做不可信部分。

应用程序(APP)运行并创建Enclave,该Enclave放置在受信任的内存中,Enclave中的可信函数被调用,Enclave内部运行的代码可以看到使用数据,数据一旦出了Enclave就加密,外部对安全区数据的访问都会被拒绝。

基于TEE联邦计算

为实现跨组织安全数据协作,提出了基于硬件TEE联邦计算模式,通过硬件技术建立多方均可信任的安全隔离计算媒介,实现安全协作。

机构的计算模型在可信的环境中执行,结合远程认证确认节点协作身份,以及计算模型在SGX平台上执行。

引入区块链,将SGX Enclave启动后身份信息以及远程认证后信息上链,使得各个节点身份透明,各个机构节点都知悉与其协作的节点信息,保证多节点之间协同处理的安全性。

上图为基于TEE联邦计算拓扑。区块链为所有的TEE搭建一个基础设施,给他们提供一个共享的安全性。远程认证可以建立TEE和区块链的信任。

TEE在做远程认证前,会在内部生成一个能表示自己身份的秘钥对,这个秘钥对的Public Key会被包含在远程认证的报告中,在做过一次认证之后,我们会把公钥写在链上。

只有这样公钥对应的秘钥对,可以唯一表示这个TEE的身份。

远程认证时,TEE会产生一个远程认证请求(Quate),在Intel在验证TEE的身份后,就会生成一个远程认证的report,这个report是有Intel签名的,确认应用在SGX平台上执行,然后签名连着report即TEE远程认证结果,保存到链上去,实现TEE和区块链可信。

节点之间通过TLS加密通道传输数据保证了节点间数据交换在一个加密的通道中进行,外界无法获知交换的数据,达到了数据传输的安全性。

TEE联邦计算执行流程

我们通过下面的交互图,梳理基于TEE联邦计算整个过程:

1)参与方计算模型发布

参与方将本地的TEE能力通过计算模型方式发布,计算模型一个任务脚本,可以使用本地数据进行计算,也可以像合约一样带入外部数据进行计算。

模型指定了在TEE中的可调用函数名称、调用参数规范等信息,这些信息会发布在链上。

当使用方获取到模型可以根据调用规范组装参数传入TEE中执行,我们在BitXMesh中提供了一个TEE模块,将计算模型封装成计算任务,进行后续计算调度。

2)发起方获取模型

使用方在数据共享平台上获取模型,这样使用方就能使用该模型,通过传入参数,模型会在持有方节点上调用,调用模型时进入TEE执行。

计算模型的输入可以是本地数据或者通过TLS由其他节点传入。

3)TEE联邦计算总模型编写和任务分派

发起方通过获取到的多个模型,在总模型中发起子模型调用;总模型会使用多个获取到的模型。编写完总模型后,需要在计算任务调度模块的支持下,进行计算任务的分派。

4)发起TEE联邦计算任务调度

任务调度处理每一个合法的且经过审核的子任务请求,分配给任务参与方。联邦计算模块会根据任务配置信息以及模型中指定的处理逻辑,将子任务发送给数据提供方,模型持有方。

5)联邦任务执行

任务执行阶段将各参与方接收各数据提供方的数据密文后,对于one-task-one-data型的任务可以通过TLS直接输入进行计算。各方根据模型编排的任务逻辑进行协同计算,并将计算结果加密存储(可选)。计算结果可以汇集到某个可信的存储媒介中,后续可检索。

6)获得计算结果

结果会返回给发起方,发起方联合了多方进行计算,得到了结果。发起方本地进行计算结果密文进行解密得到计算结果明文,并对结果明文进行后续处理。结果的获取过程,发起方和TEE节点会进行秘钥协商,保证传输安全性。

总结

本文详细描述了基于可信执行环境技术的联邦计算模式,通过可信执行环境技术将模型以及模型需要的数据汇集到TEE可信硬件区域中,然后进行计算,实现互不信任的多个数据参与方进行协同计算,输出计算结果,并保证任何一方均无法得到除应得的计算结果之外的其他任何信息,同时实现数据“可用不可见”。

基于TEE的联邦计算模式相对基于密码学的安全多方计算方式而言性能更高,而且能够同时保护计算模型和数据,但是从数据安全的角度来看这种方式完全依赖所需要的硬件,且计算集中存在更大的安全隐患和缺乏公平性。

【参考文献】

[1]Intel? Software Guard Extensions (Intel? SGX) SDK for Linux* OS, Developer Reference.

[2]Intel SGX Explained.Victor Costan and Srinivas Devadas [email protected],[email protected]

SGX attestation process. Research seminar in Cryptograpy.

作者简介俞志斌数据网格实验室BitXMesh团队

本文来源:趣链科技桔子原文标题:基于可信执行环境(TEE)技术的联邦计算

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读