注册
关闭
区块链大帝

区块链大帝

发布于 2020-09-18 阅读数 2383

基于可信执行环境(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 技术将应用分成两个部分,如下图: 基于可信执行环境(TEE)技术的联邦计算 可信部分 它指的是安全区,可信部分中的代码是访问应用私密(secret)的代码,应用可以拥有一个以上安全区。 不可信部分 它包括应用的剩余部分及其所有模块。从安全区的角度来看,操作系统和虚拟机显示器都被看做不可信部分。 应用程序(APP)运行并创建Enclave,该Enclave放置在受信任的内存中,Enclave中的可信函数被调用,Enclave内部运行的代码可以看到使用数据,数据一旦出了Enclave就加密,外部对安全区数据的访问都会被拒绝。 基于TEE联邦计算 为实现跨组织安全数据协作,提出了基于硬件TEE联邦计算模式,通过硬件技术建立多方均可信任的安全隔离计算媒介,实现安全协作。 机构的计算模型在可信的环境中执行,结合远程认证确认节点协作身份,以及计算模型在SGX平台上执行。 引入区块链,将SGX Enclave启动后身份信息以及远程认证后信息上链,使得各个节点身份透明,各个机构节点都知悉与其协作的节点信息,保证多节点之间协同处理的安全性。 基于可信执行环境(TEE)技术的联邦计算 上图为基于TEE联邦计算拓扑。区块链为所有的TEE搭建一个基础设施,给他们提供一个共享的安全性。远程认证可以建立TEE和区块链的信任。 TEE在做远程认证前,会在内部生成一个能表示自己身份的秘钥对,这个秘钥对的Public Key会被包含在远程认证的报告中,在做过一次认证之后,我们会把公钥写在链上。 只有这样公钥对应的秘钥对,可以唯一表示这个TEE的身份。 远程认证时,TEE会产生一个远程认证请求(Quate),在Intel在验证TEE的身份后,就会生成一个远程认证的report,这个report是有Intel签名的,确认应用在SGX平台上执行,然后签名连着report即TEE远程认证结果,保存到链上去,实现TEE和区块链可信。 节点之间通过TLS加密通道传输数据保证了节点间数据交换在一个加密的通道中进行,外界无法获知交换的数据,达到了数据传输的安全性。 TEE联邦计算执行流程 我们通过下面的交互图,梳理基于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 victor@costan.us, devadas@mit.edu. SGX attestation process. Research seminar in Cryptograpy.  

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

本文链接:https://www.8btc.com/media/648392
转载请注明文章出处

  • 0
区块链大帝
区块链大帝

0 条评论