购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1 联邦学习的计算环境

可信安全计算环境是联邦学习对于数据计算安全的重要保障,包含可信执行环境和无可信计算环境两部分。可信执行环境通常用于移动端,是被隔离开的一块区域,为数据和代码的安全执行提供保障。无可信计算环境下的安全多方计算则是以实现隐私保护为目的,解决一组彼此互不信任参与方之间的协同计算问题。

3.1.1 可信执行环境

可信执行环境(Trusted Execution Environment,TEE),顾名思义,指值得信赖的计算环境,可以理解为一套基于硬件环境的安全计算方案。接下来,让我们看看TEE是如何完成这项保障数据安全的任务的。

1. 可信执行环境介绍

可信计算(TC)是国际可信计算组织(TCG)推出的一项研究,TCG希望通过专用的安全芯片(TPM/TCM)来增强各种计算平台的安全性 。而TEE相较于TC,更利于移动设备使用,因为该环境中的安全性可以被验证,可以将联邦学习过程的一部分放入其中。

具体而言,TEE是移动设备CPU上的一块区域,其作用是为数据和代码的执行提供一个更安全的空间,以确保它们的机密性和完整性。安全元件(Secure Element,SE)也是一种安全保护手段,它通常以芯片形式提供,具有极高的安全等级。不过,它对外提供的接口和功能极其有限,主要关注保护内部密钥。此外,在移动终端上使用额外的SE会导致成本升高。因此,TEE在提供安全性的同时,与SE相比又有低成本的优势。

可以看到,TEE能对联邦学习系统起到很好的数据保护作用,为隐私敏感的数据提供远程安全计算的保障。TEE已在较多的产品中推广应用,比如阿里云Link TEE系列产品针对密码算法和密钥管理,利用国密SM算法,进行密钥层级结构和管理;ARM TrustZone 在数据保护、支付等场景中提供保障;英特尔的SGX处理器 中也应用了TEE,用于保护敏感数据。

2. 可信执行环境实现原理

TEE对应的设备结构如图3-1所示,主要由4个部分构成:两个执行环境,REE(Rich Execution Environment,开放执行环境)和TEE;两种存储区域,外部永久和非永久存储器,这些存储器独立于REE和TEE。这两个相互独立、隔离的执行环境分别有自己的随机存储器(RAM)、只读存储器(ROM)、核心处理器、外围设备、码加速器和一次性编程的加密内容(如硬件密钥)。两个执行环境的区别是,TEE的组成部分是可信的,也是可进行联邦学习计算的部分;而REE是公开的,因而不可信。

000

图3-1 TEE的通用硬件结构

如图3-2所示,TEE在片上系统(System on Chip,SoC)中通过增添片上子系统来实现。在这种方案下,TEE被当作一个库或者嵌入的安全元件,将实现一系列的安全服务,如密钥管理、安全存储等。

000

图3-2 可信执行环境硬件结构图:片上子系统

在TEE的安全机制方面,启动的完整性由安全或者认证启动保证,TEE能够提供这种保证。在安全启动中,如果一个启动加载器或者其他接受其管理的启动进程组件被检测到篡改了平台启动,那么设备的启动进程将会被终止。常见的安全启动会使用代码签名,在设备组装时,会把启动序列开始部分存储在设备处理器芯片的ROM中,以保证其不会被恶意篡改。之后,处理器必须无条件地从这个内存区域开始启动执行。启动代码证书包括启动代码的散列值,并且这个证书已被签发到相应设备的可信根。比如设备厂商的不可更改公钥,可以用来验证启动组件的完整性。

安全启动进程可以分5步来执行:

1)启动从可信的ROM开始;

2)初始化完成,并且TEE的操作系统被验证;

3)TEE的可信操作系统启动完毕,然后为启动REE做准备;

4)开放环境接管设备并初始化开放操作系统;

5)REE建立,TEE功能就绪。

目前,主流的芯片架构平台都有各自的TEE。

ARM平台 :ARM平台有TrustZone,我们用的Android和iOS设备都是通过TrustZone来保护我们录入的指纹信息、脸部信息等个人隐私数据。ARM由不同厂商定制,实际方案有很多,如Kinibi(三星)、QSEE(高通)、TEE OS(华为)、Knox(三星)等。

Intel平台: Intel平台有SGX(Software Guard Extensions),Intel提供了便利的SDK和开发环境。SGX技术可以在联邦学习的每个节点中创建有助于确保数据安全的内存空间,用于中间参数的交互和传输,以防止内外部攻击。模型更新时,可以通过SGX硬件远程验证确认双方身份,构建加密通道,保证模型不被恶意窃取和入侵。SGX现已成为使用最广泛的TEE平台之一。

AMD服务器: AMD的服务器芯片中有SEV(Secure Encrypted Virtualization),主要用来加密服务器上运行的虚拟机内存,原理是在AMD的处理器中内置一块小的ARM芯片,专门用来加密虚拟机的内存和在状态切换时加密寄存器。

3.1.2 无可信计算环境

没有TEE的时候,通常采用无可信第三方情况下的安全多方计算(Secure Multi-party Computing,MPC)方案。MPC是一套纯软件解决方案,主要通过加密算法保障数据安全。

1. 安全多方计算环境

在MPC协议的设计过程中,假定存在可信第三方,则每个参与方只要把自己的数据加密后传给可信第三方,由它进行计算并把结果传回至各成员即可。如此一来,协议过程便可简单实现,不过这并不符合多方计算的安全需求。而无可信第三方的分布式计算协议是复杂的,但更符合安全多方计算的安全目标。因此,安全多方计算的研究主要是针对无可信第三方的计算环境。

MPC(见图3-3)是指在分布式环境下,多个参与者共同对某个函数进行计算。其中,函数的输入信息分别由这些参与者提供,且每个参与者的输入信息是保密的,彼此之间无法获知输入信息。在计算结束后,各参与者获得正确的计算结果关于安全多方计算的原理、类型和应用参见4.2.3节。

000

图3-3 MPC示意图

2. 安全多方计算分类

MPC的实现大致可归为两类:一类是基于噪声的,另一类是不基于噪声的。

(1)基于噪声的安全计算方法

这类方法的主要代表是差分隐私(Differential Privacy),其主要思想是用噪声对计算过程进行干扰,其核心目的是隐藏模型参数等数据信息,进而使参与者无法根据得到的结果反推出原始数据。

基于噪声的安全计算方法,由于可以只生成服从特定分布的随机数,因此计算效率较高。不过,这也会导致最后的输出结果不够准确,特别是对于复杂的计算任务,其结果会与无噪声的结果相差很大而无法使用。

(2)非噪声的安全计算方法

这一类方法主要包括茫然传输(Oblivious Transfer)、混淆电路(Garbled Circuit)、同态加密(Homomorphic Encryption)和密钥分享(Secret Sharing)。这些方法一般在源头上就对数据进行加密或编码,计算的操作方看到的都是密文,因此只要满足特定的假设条件,这类方法在计算过程中是不会泄露信息的。

相比于基于噪声的方法,非噪声的安全计算方法的优点是不对计算过程加干扰,因此我们最终得到的是准确值,且有密码学理论加持,安全性有保障;缺点则是由于使用了很多密码学方法,整个过程中无论是计算量还是通信量都非常庞大,对于一些复杂的任务(如训练几十上百层CNN等),短时间内可能无法完成。 B7geIsi/VNTZExmlPTThQBFs4Bjxt+KqMLkNbZMms0XWNu9GThy0vfqVyhknU4hT

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开