隐私计算技术路线介绍及对比
作为未来数据要素市场建设的关键技术,隐私计算近年来得到快速发展。事实上,隐私计算涉及的技术繁多且复杂,面对众多技术路线分支,业务应用在技术选型时还需具体情况具体分析。本文将对隐语支持的主流技术进行介绍和对比。
隐私计算的众多技术分别在保护什么
如下图所示,各种隐私计算技术主要的作用范围包括“计算过程安全”和“结果发布安全”两部分,其中计算过程安全表示除了各方约定的计算结果之外,是否还存在额外的隐私信息泄露。而结果发布安全表示计算结果如果披露给相关方,是否会带来安全隐患,下文将以此为思路展开详细探讨。
总体来看,可信执行环境 TEE 和纯密码学的密态计算技术(包括多方安全计算 MPC、同态加密 HE 等)在保护计算过程安全方面,具备比较清晰的安全模型,因此用户一般只需要关注两点,即应用场景是否满足安全模型,以及结果发布安全性;而联邦学习的目标主要是实现安全、效率以及精度的平衡折中,因此主要是在一些关键子过程上采用各类安全防护技术,但并不追求完善的计算过程安全性,通常还是会泄露部分额外的中间信息。
结果保护
无论是在机器学习建模还是在数据分析中,隐私计算的使用者都希望基于这一技术获取联合多方数据的模型或分析结果,也就是实际业务需要保证一定的结果信息量,以供建模和分析人员进行决策。
需要注意的是,MPC、TEE 等技术本身无法直接抵御攻击者基于结果信息量进行的攻击。针对结果信息发布的隐私安全保护手段,目前业界能进行严谨数学证明的主要是差分隐私技术。差分隐私技术主要目的是保护最终结果的个体隐私,并能在数学上证明保护效果,且保护强度可调节,但并不保护数据的整体使用价值。
过程保护
目前保护计算过程的隐私计算技术有很多,并发展出不同的密态计算分支,本文主要介绍基于可信执行环境的机密计算技术以及基于密码学的密态计算技术。
可信执行环境 TEE
不同的可信执行环境原理有所不同,本文以使用较为广泛的 Intel SGX 为例进行介绍。Intel SGX 主要提供两个能力:一是提供飞地(Enclave),飞地在内存中创建加密空间,以防御来自于虚拟机、操作系统以及其他恶意程序的攻击;二是提供关键的远程认证(Remote Attestation)机制,以帮助用户判断飞地中执行的程序是否符合用户预期。
其中,远程认证技术一般需要结合密码学技术,在验证 Enclave 行为后利用密码学技术协商出加密秘钥,以此在用户和 Enclave 之间创建出一条可信安全信道。
密码学的密态计算
基于密码学的安全计算技术存在很多分支,目前更受关注的为 HE、MPC 两类技术。
MPC 和 HE 两者并不是完全独立的存在,MPC 协议涉及多种密码学技术,如秘密共享 SS、混淆电路 GC、不经意传输 OT、零知识证明 ZKP 等。其中很多 MPC 协议就需要使用 HE 作为关键支撑技术。比如 ABY 协议的离线因子生成,就可以使用 HE 。因此很多时候可以将 HE 视为一种独立的原语能力,既能够被 MPC 使用,也能够被用于外包计算等其他非 MPC 应用。
实际应用中,由于 MPC 本身相对复杂的安全假设分类(如:是否允许不诚实大多数、是否要求恶意攻击下安全可证等),其性能不能一概而论,通常而言如若追求抗恶意攻击和不诚实大多数等进阶能力,需要运用的密码技术也将更深,其性能也将有所下降。
MPC 还有专用 MPC 协议和通用 MPC 协议之分。通用 MPC 协议如 SS、GC 等理论上是可以支持任意计算,但是对于某些专用场景,其性能未必高,往往还是需要设计专用的 MPC 协议才能达到较好的实用性。目前,专用 MPC 协议主要在隐私求交(PSI),隐匿查询(PIR) 领域比较火热,如 PSI 技术当前可以达到十亿级/小时级别的实用性能。
诚实大多数的 MPC 技术一般不涉及到 HE 等复杂密码计算,性能会明显提升,目前使用较为广泛的主要为基于秘密分享的协议,如 ABY3 协议、第三方发离线因子的降级 SPDZ 协议等。虽然这类协议的计算相对较快,但是无法抵御大多数参与方的合谋攻击。
秘密分享等 MPC 的技术支持计算方与数据提供方相分离的模式。这类模式一般称为代理或者外包(OutSourcing)计算模式。在代理模式中,数据提供方只需要将数据以 SS 形式上传到计算方,后续 MPC 协议全部由计算方执行,数据提供方无需参与具体的计算过程。存算分离的模式优势是解决了数据提供方跨公网的带宽和计算稳定性问题,且可以支持任意多的数据提供方接入。短板则是对计算方的安全依赖较高,比如计算方的共谋会直接导致数据泄露。
主流技术路线多维度定性对比
上图是各主流技术路线的优缺点分析,目前很难对各种技术路线在各个维度进行定量分析,故而本文主要采用定性分析的方式,分别使用绿色、黄色、红色代表优势、中等、劣势项。整体来说,目前没有任何一项技术能在所有维度全方位领先,实际业务需要根据所在场景的安全假设、性能要求、硬件条件等情况具体判断。
下文主要针对经典 MPC 模式、经典联邦学习、经典 TEE 模式、MPC 代理模式分别进行比对。
安全性
经典 MPC 技术具备严谨的可证安全模型,但 MPC 技术可证安全的前提,是满足 MPC 协议的安全假设,否则其安全性也是不成立的。目前,大多数落地的 MPC 协议还停留在半诚实模型,而我们认为实际场景中恶意攻击者是存在的,因此只有实现恶意安全可证才能评为绿色安全等级。
联邦学习的安全性始终是行业的关注重点,目前这一方面尚缺乏严谨的安全模型,主要以论证和攻防为主。如对于联邦学习算法存在的中间信息泄露问题,其攻防研究一直从未停歇。虽然不少联邦学习方案使用了 MPC、HE 等密码学技术以对核心交互信息进行加固,但整体来说,其加固设计主要是经验性的,不同场景下的联邦学习方案可能存在的安全问题均有所不同。我们可以将这些安全问题粗略的分为水平分割和垂直分割两类。
水平分割问题
水平分割目前主要的方案是安全聚合,如 FedAVG 中多个参与方需要对各自的梯度进行一次安全的求和,求和过程可以使用 HE 或 MPC 完成。安全聚合的主要问题在于即使求和过程是安全的,但求和结果是需要作为明文参与下一轮迭代的,因此求和结果本身就是额外的中间信息泄露。如果参与方数目较少(如只有两三个),则一方可能基于求和结果推断其他方的梯度,进而推断其数据内容,这一风险是不容忽视的;如果参与方数目较多(如数十上百个),则聚合结果包含的信息量较少,其风险一般认为可接受。
垂直分割问题
垂直分割场景中,以 Split Learning 为例,各方之间传递的并非完整的梯度,而是自身部分特征或标签的一个 embedding。与水平分割场景一样,即使方案对传递的 embedding 使用 HE 或 MPC 进行了保护,但参与方数目较少的风险在垂直分割中依然存在。以两方合作为例,一方可以容易推出另一方的 embedding 内容。但是这些 embedding 与原始数据内容的关系是与具体机器学习方案相关的,目前在这方面的研究还没有水平分割的梯度攻击那么多,一般需要 case by case 的研究。
可信执行环境 TEE 是从系统层面解决隐私计算的安全挑战。可信执行环境的优点是性能接近明文,可直接复用已有的海量 AI/BI 框架,缺点则是有可信硬件信任根,存在软件和硬件层面的各类侧信道攻击,面临额外的硬件漏洞风险。
实际使用 TEE 技术保护计算过程时,并不仅仅是需要考虑硬件漏洞和侧信道等安全问题,而是需要通盘的安全设计。比如基于远程认证的细粒度访问控制就是需要重点关注的。例如,基于一些 LibOS(如 Occlum)/TEE VM 技术(如 TDX)可将 MySQL 这类应用无删改的放入 TEE 执行,但由于 MySQL 本身允许客户端执行任意 SQL,仅对 MySQL 程序进行远程认证,并不能约束用户编写恶意 SQL 语句(如 Select *)进行攻击,因此“一键迁移到 TEE”是不够的,需要额外设计针对动态逻辑的远程认证+访问控制方案。
综合来讲,久经考验打磨的 TEE(如 Intel SGX 经历众多研究者的攻击)不存在明显的已知漏洞,在用户正确应用远程认证机制、正确衡量数据使用行为的情况下,可信执行环境的安全性可以达到中等。其余风险则主要来自软硬件的侧信道攻击。
MPC 代理是一种较为特殊的模式,由于计算集群和数据提供方之间解耦,故而与 TEE 同样具有集中式的计算效果,也因此相比经典去中心化的分布式 MPC 模式具备更多优势。但在安全性上,代理计算方共谋则会直接导致数据泄露。其次,若不引入 TEE,数据提供方对代理计算方如何使用数据也无法进行强限制。因此,此处认为 MPC 代理模式的安全性相比经典 MPC 模式稍弱。
以上安全性纬度的对比分析主要聚焦计算过程,需要强调的是,计算结果也是信息泄露的途径之一,无论前置计算过程安全性如何理想,一些任务其计算结果天然存在信息泄露,如两方加法场景中,通过最终结果减去己方数值可推导对方数值。
目前针对结果反推的攻击,隐私计算的实践集中在一些结果信息量降维明显的应用中,如基于百万百维的数据集训练一个逻辑回归模型,最终结果只有百维左右的权重,信息量相对原始数据降低约百万倍。因建模人员对线性模型的可解释性需求,目前不少业务实践认为逻辑回归模型最终的权重参与方各自可见,是一种可接受的方案。但数据分析中的结果反推攻击面明显大于建模,实现结果安全可接受,需要更多的技术辅助手段,如差分隐私等。差分隐私与前文所述主要保护计算过程安全的技术路线均可叠加。
应用开发成本
应用开发成本指开发具备隐私保护能力的应用所花费的成本。
TEE 在这一维度具备绝对优势,理论上支持所有算法,可快速复用已有应用,并且在功能层面是完备的。
经典 MPC 或 MPC 代理模式在这一维度的表现较为相似,MPC 具备通用运算能力,但功能需要基于 MPC 底层能力重新进行研发,目前主要用以实现机器学习(ML)和数据分析(SQL),功能完善度相比 TEE 通常存在劣势。隐语框架 SPU 的设计思路,便是希望借助现代编译器技术,能够直接复用已有的上层机器学习算法,从而部分程度解决上层 MPC 算法重复开发的效率成本问题。
联邦学习技术与 MPC、TEE 不同,主要面向机器学习领域的应用,并不具备通用的密态运算能力,因此其功能完善度相较 TEE 同样存在劣势。
用户运维成本
用户运维成本主要站在数据提供方的视角进行考量,如是否需要于用户侧部署可以访问外网的服务,并且在任务运行周期内全程在线。由于离线态和在线态不同,需分别进行比较。
首先,明确离线态与在线态在本文的语义:
**离线态:**主要指训练、大数据分析等任务,数据通常一次性准备完成,任务粒度较大,整体耗时较长(注:离线批量预测也属于离线态任务)。
**在线态:**如联合预测等,通常特征值需从机构方某个在线服务/数据库中实时获取,这些特征值的最新值存在变动,预测时将按需读取指定某个用户的特征值。
由于经典 MPC 与联邦学习其实现原理要求任务过程中每个用户在线,因此在离线态阶段如训练过程即需用户进行服务化,在线态不仅同理,还要额外考虑高可用等问题。
TEE 与 MPC 代理模式则由于可实现数据和计算相分离,对离线态计算在完成数据加密/分片上传后,后续的计算过程用户无需在线。但在线态依旧按需实时访问数据,目前也需要用户进行服务化。
计算性能
TEE 的计算性能基本等同明文计算(指明文在 CPU 为主的情况)。
联邦学习尤其是深度学习场景,由于可以复用 GPU,理论也可以实现千万-亿级的性能,实际表现要基于具体的带宽条件:当带宽条件较低时,会转为带宽瓶颈,此时 GPU 的优势便无法体现;当带宽条件较高时,在 FedAVG 等部分场景性能有望超过 TEE。在一些重密态的传统风控联邦学习中,性能受同态加密、带宽等约束相对较低。
MPC 的计算性能是最低的,需要结合实际带宽和场景条件。PSI 场景现阶段可实现十亿级别性能实用;在联合建模场景中,MPC 所能支持的数据规模则会大幅降低,在不同的安全假设条件下,性能存在较大差异,如经典金融风控场景中,如在较为宽松的诚实大多数条件下,约可实现千万级别,但如要满足不诚实大多数的安全假设,性能通常降低一个数量级,约在百万量级。
计算精度
常用的 HE、MPC 等密态技术计算的函数逻辑与明文是一致的,因此其精度影响主要来自于定点数近似,即它们需要将高精度的浮点数映射到固定位数的定点数运算中(也存在一些可以完美模拟浮点计算单元的密态技术,但还处于研究阶段,实践中没有定点数应用广泛)。从定点数在机器学习场景的实践结果来看,目前会对精度产生微小影响,但相对较小,通常调整对应的位宽和定点参数即可比较稳定地解决机器学习场景的数值计算问题。
联邦学习由于其分布式计算的特点,其计算逻辑与明文是存在区别的,相对 MPC、TEE 需要额外考量 Non IID 等实际存在的数据分布问题,一般认为联邦学习的精度效果弱于集中式明文全量数据训练的精度效果。
TEE 可达与 CPU 明文计算等同的计算精度,因此在计算精度这一维度具备明显优势。
数据参与方数量
大多数隐私计算实践始于两方或三方场景。从趋势上看,支持更多的数据源有望得到更好的模型效果。因此,对数据参与方数量的支持能力将是未来的重要考核点之一。
其中,经典 MPC 与联邦学习因原理上要求参与方实时在线,并且这两类技术对带宽的需求会随着参与方的增多进一步提高。现有实践通常建议 MPC 的参与方数量小于 5,否则在非局域网环境下,其稳定性和训练时长将会面临挑战。
垂直联邦学习也存在和 MPC 类似的问题,但由于其部分计算能够本地完成,其性能相较 MPC 而言更高,垂直场景下通常建议参与方数量小于 10。Cross-silo 的水平联邦学习能支持的数据提供方数量会更多,但具体数量与模型大小、模型压缩率、聚合频次和 client 采样率等多个因素相关,其上限约在百级-万级浮动。
TEE 与 MPC 代理模式由于支持计算和数据提供方分离,因此在数据参与方支持数量维度呈现明显优势。
数据控制力
在讨论数据控制力之前,我们需要对“原始数据不出域”这一隐私计算领域的常用词进行讨论:“原始数据不出域”的严格定义是什么?原始数据加密出域是否属于原始数据出域?若不是,其原因什么?
“原始数据不出域”目前缺乏严谨的官方定义,但是归根结底,我们考虑问题的核心是数据安全和攻防成本。假设原始数据使用一个固定密钥加密出域,但攻击者无法破解秘钥,此时原始数据加密出域是安全的,可以认为属于“原始数据不出域”。但如果考虑小概率事件,如加密过程可能被破解,或是攻击者可能通过其他手段如社会工程学获取密钥,则原始数据加密出域不是安全的。此时联邦学习等原始数据不出域方案确实更优,如 FedAVG 经典水平联邦算法中,Secure Aggregation 过程只有加密模型参数出域,由于出域的信息已是降维后的模型参数等,最不理想的情况下泄露的范围也限于这些模型参数权重信息,依据这些信息拟合原始数据需要一定条件。
因此仅从密码学的角度,原始数据加密出域本身不是问题。但是考虑到整个数据安全需求,如果要考虑到秘钥被破解后的最坏情况,则原始数据加密出域是存在风险的。
但是,强调原始数据不出域在实际中很难体系化保证,如联邦学习的基本原则是原始数据不出域,但预处理等各类算法组件无法完全遵守这个原则。如基于加法同态的 WOE 算法中,有标签的参与方需要将原始标签数据同态加密后出域。总而言之,在大部分隐私计算应用中,都无法避免原始数据的加密出域,需要对应用涉及的所有模块进行详细的风险分析。
从上面的讨论来看,TEE 技术如果正确地使用了密码学技术和远程认证机制创造出安全信道,其计算过程理论是安全的。但基于笔者对一些用户的访谈了解,部分用户确实对 TEE 的原始数据加密出域使用存在顾虑,典型顾虑是:数据加密出域到外部 TEE 后,又发现 TEE 爆出硬件漏洞,自己没有办法控制。这种安全感上的顾虑是隐私计算用户切实存在的,其本质是对数据控制力的担忧。
本节判定的数据控制力强弱标准如下。
**数据控制力强:**数据提供方对数据的计算过程有强管控,计算过程需要数据提供方参与才能完成,数据提供方可以随时停止数据的使用。
**数据控制力弱:**全量数据以加密/分片组合等形式存储在远端,数据提供方难于对计算进行随时限制,而需要计算方的配合。
显然在用户体感上,MPC 代理模式或经典 TEE 模式数据控制力相对较弱,由于计算无需用户参与,因此如若 TEE 突发漏洞或代理计算方存在共谋,数据提供方因数据已经上传,缺乏简单有效的方法停止计算,无法即时止损。
经典 MPC 和联邦模式由于用户本身便是计算参与方之一,可立刻关闭隐私计算节点外网访问,待安全漏洞修复后再对外提供服务,从而确保数据的安全。
专有硬件成本
TEE 技术由于依赖专有硬件,如机构此前并未采购此类硬件,则需额外的硬件采购流程。而经典 MPC、联邦或者是 MPC 代理模式则只需普通硬件,机构可复用已有服务器。尤其在隐私计算探索尝试阶段,如可复用已有普通硬件,可以节省前序的专有硬件采购周期。
信任根和自主可控
目前 TEE 方案有额外的硬件信任根,这也是 TEE 用户需要前置确认的信息,需要判断具体场景是否可以信任硬件信任根的可信方。
在自主可控方面,由于国密库的成熟度较高,MPC 和 FL 技术路线的国密化相对来说支持更容易。而 TEE 方面,目前市面上成熟度较高的 TEE 硬件主要产自外企,如 Intel 以及 AMD ,国产 TEE 依旧处于完善建设阶段,目前针对国产 TEE 的实际攻防实践偏少,其硬件安全性和漏洞情况还需时间加以验证打磨。
小结
本文尝试对部分主流的隐私计算技术从多种维度进行了对比,可以看到,没有任何一种单一技术路线是完美的,业务应用的实际技术选型,还需根据具体的安全假设、硬件条件和性能要求等因素综合考量,选择最适合业务场景的解决方案。
并且,随着发展隐私计算的技术路线还在持续增加,本文并未涵盖所有,后续更新将拓展讨论更多的新型技术路线,如软硬件结合的综合型技术方案等。
本文作者
余超凡,蚂蚁集团隐私智能技术部技术总监,目前是隐语开源框架的密态计算方向负责人。具有丰富的隐私计算生产落地经验,有二十多项隐私计算相关专利。
洪澄,中国科学院大学博士,阿里巴巴集团安全部双子座实验室担任资深安全专家,主要从事密码学、隐私保护计算相关技术研究,带领团队在顶级学术会议和期刊上发表论文 30 余篇。
王磊,浙江大学计算机博士,蚂蚁集团隐私智能计算部总经理,开源隐私计算框架“隐语”负责人,拥有国内外隐私计算方向授权专利 40 余篇。
段普,美国 TexasA&M University 计算机科学博士,现任蚂蚁集团隐私智能计算技术部资深技术专家,领导密码学和安全团队研发隐语和相关隐私计算平台的密码学核心协议和功能,并发表多篇相关论文和专利。
参考链接
1、 Frank McKeen, Ilya Alexandrovich, Alex Berenzon, Carlos V Rozas, Hisham Shafi, Vedvyas Shanbhogue, and Uday R Savagaonkar. Innovative Instructions and Software Model for Isolated Execution. Hasp, isca, 10(1), 2013.
2、Demmler D, Schneider T and Zohner M. ABY – A framework for efficient mixed-protocol secure two-party computation. In: NDSS 2015. The Internet Society, 2015.
3、Mohassel P and Rindal P. ABY3 : A mixed protocol framework for machine learning. In: Lie D, Mannan M, Backes M and Wang XF (eds.). ACM CCS 2018. ACM Press, 2018, 35–52.
_4、_Damg˚ard, I., Pastro, V., Smart, N. P., and Zakarias, S. Multiparty computation from somewhat homomorphic encryption. In CRYPTO 2012 (Aug. 2012), R. Safavi-Naini and R. Canetti, Eds., vol. 7417 of LNCS, Springer, Heidelberg, pp. 643–662.
5、Gennaro, R., Gentry, C., Parno, B.: Non-interactive verifiable computing: Outsourcing computation to untrusted workers. In: Rabin, T. (ed.) CRYPTO 2010. LNCS, vol. 6223, pp. 465–482. Springer, Heidelberg (2010)
6、McMahan B, Moore E, Ramage D, et al. Communication-efficient learning of deep networks from decentralized data. Artificial intelligence and statistics. PMLR, 2017: 1273-1282.
_7、_Vepakomma P, Gupta O, Swedish T, et al. Split learning for health: Distributed deep learning without sharing raw patient data[J]. arXiv preprint arXiv:1812.00564, 2018.
_8、_Youren Shen, Hongliang Tian, Yu Chen, Kang Chen, Runji Wang, Yi Xu, Yubin Xia, and Shoumeng Yan. Occlum: Secure and efficient multitasking inside a single enclave of intel sgx. In Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems, pages 955–970, 2020.
9、Intel. Intel Trust Domain Extensions. https://software.intel.com/content/dam/develop/external/us/en/documents/tdxwhitepaper-v4.pdf , 2020.
10、https://en.wikipedia.org/wiki/Fixed-point_arithmetic
_11、_Hangyu Zhu, Jinjin Xu, Shiqing Liu, and Yaochu Jin. Federated learning on non-iid data: A survey. Neurocomputing, 465:371-390, 2021.
12、Bonawitz K, Ivanov V, Kreuter B, et al. Practical secure aggregation for privacy-preserving machine learning[C]//proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security. 2017: 1175-1191.
评论