软硬件结合的分布式隐私计算系统

(整期优先)网络出版时间:2023-03-14
/ 3

软硬件结合的分布式隐私计算系统

孙赫 ,童朝义

摘要

随着数据融合场景的不断丰富,隐私计算系统不断涌现,诸如烟草、金融和互联网等领域均开始实践隐私计算。在隐私计算逐渐火热的过程中,以不同技术路线为基础隐私计算系统被构建出来,服务不同的场景,碎片化逐渐显露出来。将不同技术路线的隐私计算平台整合起来,以方便用户,并对不同路线进行优势互补,取长补短,成为碎片化后的不二选择。本文提出一个融合软硬件能力的隐私计算系统,融合联邦学习和TEE两种技术路线,具备安全和高性能的特点,并兼容现有隐私计算系统。

关键词:隐私计算,联邦学习,TEE,安全

引言

数字经济时代,数据是关键的生产要素,机器学习和云计算放大了数据的价值,提供更智能的设备和服务。机器学习算法需要从海量数据中训练,以提高准确率,数据成为机器学习的一部分,并且扮演重要的角色。云计算是一个新的计算模式,按需提供数据存储、算力和基础实施等服务。数据拥有者可以将他们的数据发送到云服务器上,但是失去了对数据的直接控制。机构间的数据共享和数据价值体现仍然面临诸多挑战,数据确权和安全保护没有得到很好的解决。数据隐私和安全已经成为机器学习和云计算的主要问题之一。

实现隐私计算的方法包括同态加密,安全多方计算,联邦学习,差分隐私和TEE等。同态加密、安全多方计算和联邦学习由于计算量比较大,性能较差,而TEE具备接近明文的运算性能,但是对于数据的控制力不足,数据到TEE后,将由TEE控制。

本文提出将联邦学习和TEE结合的方案,以提高隐私计算系统的安全和性能。方案支持将已有的平台进行安全高效的组合。不仅可以保护系统中数据的隐私性,而且具备高的性能。

背景

联邦学习

联邦学习(Federated Learning)是一种跨多个分布式边缘/服务器设备的机器学习,各个设备上的本地数据集,在计算过程中,不会被交换。传统的集中式的机器学习中,位于各个设备的数据集被上传到中心化的服务器上,而联邦学习的数据仍然保留在本地;传统的分布式的机器学习需要各个设备拥有完全一致的数据集,联邦学习的数据也是分布式的。联邦学习允许多个参与者在不共享数据的前提下,构建一个通用的,鲁棒的机器学习模型,解决了诸如数据安全和隐私,数据访问权限控制等问题。

Intel SGX

Intel Software Guard Extensions(Intel SGX)是一系列安全相关的CPU指令集,在2015年的Intel第六代CPU首次推出。SGX允许用户态程序定义受保护的私有内存区域,称作飞地(enclave),保护特定的代码和数据不被修改。飞地的内存区域由CPU加密,飞地中的代码和数据在CPU中实时解密,只有CPU可以访问。SGX可以保护代码和数据不被高权限的代码访问,比如操作系统和虚拟机管理器,但是不防护侧信道攻击。

SGX远程认证功能【6】为用户提供认证飞地的真实性的手段,在将数据分享给飞地之前进行验证,确保代码运行于飞地中,且为目标飞地,是一个重要的安全特性。通过SGX远程认证,用户还可以确保数据是运行在最新安全更新的飞地。远程认证报告中包括被认证软件的身份,飞地的状态,软件遭受攻击可能性的评估。

设计

系统概述

我们设计了一个安全的联邦学习和TEE结合的分布式隐私计算系统,图1展示了整个系统的架构图,系统可以支持多个实体进行隐私计算,为了方便阐述,图中仅包含两个参与方。联邦学习子系统位于不同的参与方的通用硬件上,统称为联邦节点。TEE节点比较灵活,每个参与方可以拥有自己的硬件TEE节点,也可以使用公有云上的TEE节点,也可以使用其中一方的节点。所有的TEE硬件节点组成一个TEE集群,集群中部署负载均衡,各个联邦节点通过访问本地IP,就可以访问TEE集群中的服务,仿佛服务部署在本地一样。

IMG_256

图一

子系统

隐私计算系统包含联邦学习子系统和TEE子系统,两个子系统具备独立完成多方任务的能力。将两个现有的基于不同技术的子系统安全、低成本的整合起来,是本文的特色之一。

联邦学习子系统

各个参与方均部署有一套子系统,各个模块如下:

前端:对外暴露REST API,供参与方使用

认证服务:为子系统提供参与方登陆的校验功能,只有校验通过的用户才可以在系统中执行任务

调度器:负责将来自前端的请求,分配到空闲的执行器中,并管理任务信息

执行器:负责联邦任务的执行,运行联邦学习算法,与其它子系统中的联邦执行器连接,传递数据,完成计算。每个子系统中可以部署多个执行器。

TEE子系统

整个系统包括一个TEE子系统,所有模块均运行于TEE中,模块之间的通信安全级别达到TEE。各个模块如下:

前端:对外暴露REST API,供各参与方调用

认证服务:为子系统提供用户鉴权,只有经过鉴权的请求,才能在系统中执行

调度器:负责调度来自前端的请求,具有处理来自多方的计算任务的能力

执行器:TEE任务运行模块,既可以执行单个任务,也可以和其他执行器进行安全的网络连接传输数据,共同完成分布式任务

子系统间安全互联

联邦学习系统和TEE系统结合使用,需要保证两个子系统之间连接的真实性和安全性。TEE系统提供远程认证功能,联邦子系统可以安全的进行连接,子系统间的数据在透明的安全通道中进行传输。

TEE系统提供鉴权服务,比如用户名密码和公私钥等,并以基于远程认证的可信的方式提供给联邦学习子系统以初始化和使用。联邦学习子系统将用户的秘密(密码和私钥等)存储在保险箱中。通过鉴权后,TEE子系统接收来自联邦学习子系统的命令。

TEE子系统内部通过基于远程认证的TLS连接,确保连接达到TEE的安全级别。

基于远程认证的初始化

TEE子系统可以将内部的唯一标识、配置信息和访问数字证书放到远程认证报告中,并提供接口供调用。唯一标识为TEE系统中运行代码的快照签名,以此标识TEE子系统的唯一性,对于Intel SGX程序,是Enclave Measurement。配置信息包括可以登陆的用户信息,比如用户名和密码的hash值,或者用户证书和根证书等。联邦子系统可以查看TEE子系统的状态信息,并通过数字证书访问。

TEE子系统的配置信息需要在使用之前完成配置,TEE提供无鉴权的接口供用户操作。为了防止其他用户恶意设置配置信息,联邦学习子系统在与TEE子系统首次进行任务前,需要完成远程认证报告的认证和内容的校验。

初始化流程如下:

  1. TEE子系统启动后,会将集群的唯一标识生成快照,以线下的方式传递给各个联邦学习节点。然后TEE子系统等待接收配置信息;
  2. 联邦学习节点请求TEE子系统的远程认证报告,报告中包含集群的唯一标识和访问数字证书。节点校验报告通过后,会对比唯一标识与步骤1中获取的标识是否一致,如果一致,保存证书,后续用于与TEE子系统建立安全通道
  3. 完成对TEE子系统的认证后,联邦学习子系统需要在TEE系统中设置各自的秘密信息,以进行后续TEE子系统对联邦学习子系统的鉴权;

TEE认证服务

TEE认证服务中为TEE子系统提供认证服务,只有通过鉴权的用户,集群才为其提供服务。鉴权所需的用户秘密信息在TEE子系统初始化的时候设置。鉴权服务完全运行于TEE环境中,数据加密后落盘。前端收到请求后,查询认证服务,通过后,提供对应服务。

支持异构系统的调度

联邦学习子系统中包含调度器,负责将联邦学习任务调度到不同的任务执行器中。同时,具备执行器和任务管理功能,支持获取执行器的状态信息,任务执行信息和状态等。TEE子系统中也具备类似功能的调度器。隐私计算平台的任务发起从联邦学习子系统开始,联邦调度器与TEE调度器一同工作,完成整个系统的调度。

联邦调度器

原有联邦子系统的调度器增加异构调度功能,支持将不同类型的隐私计算任务,分发到联邦和TEE的执行器中。按照联邦任务和TEE任务组合的执行形态,划分任务类别如下:

集中式TEE

分布式TEE

无TEE

有联邦

通过TEE进行计算加速

通过TEE进行计算加速,数据可在各自参与方域内TEE中,达到不出域的效果

通用联邦学习任务

无联邦

通用TEE任务

同上

N/A

下面分别叙述联邦与集中式和分布式TEE结合的调度问题:

集中式TEE:TEE调度器的任务队列负责汇聚来自多方的计算请求,将多方任务逻辑转变成单方任务逻辑,多方输入转变成单方输入,然后下发给执行器进行计算

分布式TEE:联邦调度器透传发送消息给TEE的执行器,各方的TEE执行器以点对点网络形式进行计算,降低对调度器的依赖

TEE调度器

TEE子系统中的调度器通过前端开放服务,接收来自联邦调度器的请求。为了简化通信方式,TEE调度器被动接收来自联邦的任务信息,不主动回调,联邦通过轮询的方式获取TEE侧信息。TEE子系统独立执行多方计算任务,TEE调度器具备调度执行多方任务的能力,可以解析来自多方的输入成一个集中式的任务,下发给执行器计算。

TEE调度器具备任务核实功能,一方请求中加入其他方任务的信息,当收到所有方的请求后,调度器进行综合校验,核实所有参与者的任务消息,与来自其他人的任务消息一致后,才下发任务。由于TEE接收来自TEE外的多方的请求,多方任务校验,可以确保数据不被其他任务方恶意获取。

相关工作

工业界和学术界有多个隐私计算平台。百度MesaTEE【1】是基于TEE的多方计算平台,其基于开源项目Apache Teaclave(incubating)【2】的商业版软件。隐语【3】平台支持TEE功能,但是仅把TEE作为一个模块,而不是单独的系统。【10】从联邦和TEE融合的角度解决安全和性能的问题,但是需要重写算法和框架,与现有生态兼容性不好。【5】利用区块链技术和联邦学习构建隐私计算平台,缺少硬件的加速功能。【7】面向按照算力和资源划分的异构系统,构建联邦学习系统,无硬件加速效果。【9】为专用联邦学习系统,【8】通过分析联邦学习各个环节的性能为联邦学习系统提供性能加速。

总结

本文设计了一个联邦学习和TEE结合的分布式隐私计算系统,可以很好的将现有联邦学习系统和基于TEE的多方计算平台整合起来。本设计没有降低整合前后的安全性,在即使各个节点被攻击的前提下,也能够保证系统中的数据不被窃取。本设计通过结合联邦学习不需要做数据交换和TEE具有接近明文计算的性能,提高了隐私计算的安全性和性能。

参考文献

  1. MesaTEE:https://dianshi.baidu.com/#/mesatee
  2. Apache Teaclave (incubating): https://github.com/apache/incubator-teaclave
  3. 隐语:https://github.com/secretflow/secretflow
  4. FATE: https://github.com/FederatedAI/FATE
  5. Wesam Al Amiri,Karim Banawan,Mohamed Mahmoud,Waleed Alasmary,Kemal Akkaya: Privacy-Preserving Smart Parking System Using Blockchain and Private Information Retrieval.SmartNets2019:1-6
  6. Intel SGX远程认证:https://www.intel.com/content/www/us/en/developer/tools/software-guard-extensions/attestation-services.html
  7. 钟正仪,包卫东,王吉,吴冠霖,赵翔.一种面向云边端系统的分层异构联邦学习方法[J].计算机研究与发展,2022,59(11):2408-2422
  8. Fan Lai,Yinwei Dai,Sanjay Sri Vallabh Singapuram,Jiachen Liu,Xiangfeng Zhu,Harsha V. Madhyastha,Mosharaf Chowdhury: FedScale:Benchmarking Model and System Performance of Federated Learning at Scale.ICML2022:11814-11827
  9. Nicolas Kourtellis,Kleomenis Katevas,Diego Perino: FLaaS:Federated Learning as a Service.DistributedML@CoNEXT2020:7-13
  10. 韦韬, 潘无穷, 李婷婷, 卫振强. 可信隐私计算:破解数据密态时代“技术困局”[J].信息通信技术与政策, 2022, 48(5): 15-24.

本文得到中国烟草总公司贵州省公司科技项目贵州烟草商业供应链金融数字化研究与应用(No.2022XM27)资助。孙赫(通讯作者),男,1988年生,北京百度网讯科技有限公司。童朝义,女,1977年生,中国烟草总公司贵州省公司信息中心。E-mail:sunhe05@baidu.com