羽山数据-合规、权威、安全,数据科技赋能产业升级。羽山数据践行数据要素市场化合规流通,为金融、保险、人事、安防、互联网等行业提供企业数字化解决方案。

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

    发布时间: 2020-09-25

           参与到网络的各机构编写业务计算模型,节点间进行计算任务协调、调度,以移动计算结果而不是移动数据方式,实现多方模型计算和结果共享,我们将这种联合多方参与的计算模式称为联邦计算。

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

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

    一、TEE简介

           可信执行环境技术,指的是通过对外部资源和内部资源的硬件隔离实现安全的执行环境。隔离的具体实现包括中断隔离、RAM的隔离和外设的隔离、芯片内部RAM和ROM的隔离等。通过这种隔离将一个CPU物理核分成安全状态和非安全状态,当物理核处于非安全状态时只能访问非安全的外设和内存;当物理核处于安全状态时,可以访问安全资源也可以访问非安全资源。TEE基于可信硬件,是处理器上的一块独立的安全区域。作为独立执行环境的TEE能够保证使用TEE的应用程序的代码的完整性,以及数据的机密性,TEE-enabled的处理器提供如下两个关键特性:

           1. Isolation(隔离)

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

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


    本文内容转载自:微信公众平台 mp.weixin.qq.com

    原文作者:俞志斌 QTech

    原文地址:https://mp.weixin.qq.com/s?__biz=Mzg2MDA2NzQwNw==&mid=2247483772&idx=1&sn=461183928849488e1ca174c94d36b29b&chksm=ce2d425cf95acb4adc154e929abf8ee51425a4540470fe255854769f49cb78437e75bb75d0f7&scene=21#wechat_redirect

     

    作者: 俞志斌

  • 1 - 1
note

本专栏搜集引用互联网上公开发表的数据服务行业精选文章,博采众长,兼收並蓄。引用文章仅代表作者观点,不代表羽山数据官方立场。

如有侵权、违规及其他不当言论内容,请广大读者监督,一经证实,平台会立即下线。监督电话:400-110-8298