联邦学习:算法详解与系统实现
上QQ阅读APP看书,第一时间看更新

3.1.1 概述

机器学习被越来越多地用于各种应用,包括从检测(如目标检测)、识别(如人脸识别)、预测(如年龄预测)到推荐系统。有些机器学习应用需要使用个人隐私数据进行模型训练。这些隐私数据以明文形式上传到集中的地方,以便机器学习算法提取其中的模式,并利用其训练模型。机器学习面临的问题不仅包括将所有隐私数据暴露给这些公司的内部威胁,还包括持有这些数据集的公司被黑客攻击的外部威胁。

机器学习任务中有三种不同的角色:输入方(数据所有者或贡献者)、计算方和结果方。在这样的系统中,数据所有者将数据发送给计算方,计算方执行所需的机器学习任务(比如模型训练)并将输出发送给结果方。这样的输出可以是一个机器学习模型,结果方可以利用它来测试新样本。在其他情况下,计算方可能保留机器学习模型,并执行由结果方提供新样本的测试任务,然后将测试结果返给结果方。如果所有三个角色都由同一实体承担,隐私自然能从技术层面得到保护;然而,当这些角色分布在两个或多个实体中时,就需要隐私保护技术。通常情况下,计算方和结果方是同一个实体,而这个实体通常与数据所有者是分开的。事实上,数据所有者可能不知道被收集的数据是如何被使用(或滥用)的。甚至在许多情况下,他们都不知道一些数据正在被收集。根据数据贡献和利用的过程,现存几个级别的攻击威胁,如图3-1所示。

图3-1 机器学习及其面临的威胁

如果数据所有者与计算方是分开的,那么私有数据将可能通过安全通道传输到计算方。然而,数据很可能以其原始形式存在于计算方服务器中,即没有以任何方式进行加密或转换。这是最大的一种威胁,因为隐私数据既容易受到内部攻击,也容易受到外部攻击。这种隐私数据可以作为原始数据存储,也可以作为从原始数据中提取的特征存储。自然地,以原始形式存储数据会带来更大的威胁,因为它们可能会以各种方式进行处理。

重构攻击:即使仅将(从原始数据中提取的)特征传输到计算方服务器并进行存储,重构攻击也会带来威胁。在这种情况下,攻击者的目标是通过使用他们对特征向量的知识来重构原始的隐私数据。重构攻击需要对机器学习模型进行白盒访问,即模型中的特征向量必须已知。当建立了所需的机器学习模型,且没有删除用于模型训练的特征向量时,这种攻击就可能发生。事实上,一些机器学习算法如支持向量机或k近邻会将特征向量存储在模型本身中。重构攻击的案例包括:指纹图像重组,指纹图像(原始数据)可以由细节模板(特征)重构;移动设备触摸手势重建,触摸事件数据(原始数据)可由手势特征(如速度和方向)重构。在这两种情况下,隐私威胁(由于没有以其特征形式保存私人数据而引起)会对身份验证系统造成安全威胁,进而导致无法保护数据所有者的隐私(因为攻击者可能获得访问数据所有者设备的权限)。虽然这些攻击的目的是误导机器学习系统,使其认为重构的原始数据属于某个数据所有者,但其他重构攻击可能会直接揭示隐私数据,如位置或年龄。为了抵抗重构攻击,我们应该避免直接存储显式特征向量(如支持向量)的机器学习模型,或者对其进行保密,不提供给结果方。

模型反演攻击:一些机器学习算法产生的模型不会显式地存储特征向量,如岭回归或神经网络。因此,攻击者的知识将局限于一个没有存储特征向量的机器学习模型(白盒访问),或只有结果方提交新的测试样本时计算方返回的响应(黑盒访问)。在这里,攻击者的目标是利用从机器学习模型收到的响应来创建特征向量,这些特征向量与用于创建机器学习模型的特征向量相似。这种攻击利用的是可信度信息(例如概率或支持向量机决策值),这些信息被作为对结果方提交的测试样本的响应发送回来。这些攻击产生了一个代表特定类别的平均值。为了抵御这种攻击,我们应该将结果方限制为黑盒访问,并对输出进行限制。这样可以减少黑盒攻击者获得的知识。例如,当分类算法输出四舍五入的置信值或预测的类标时,攻击成功率会降低。

成员推理攻击:模型反演攻击不会根据机器学习模型的输出来推断样本是否在训练集中,而成员推理攻击会推断样本是否在训练集中。给定一个机器学习模型和一个样本(攻击者已知的知识),成员推理攻击的目的是确定样本是否处于用于建立该机器学习模型的训练集中(攻击者的目标)。攻击者可以利用这种攻击来了解某个特定个体的记录是否被用来训练特定的机器学习模型。这种攻击利用了机器学习模型对训练集中使用的样本与未包括的样本的预测的差异。Shokri等人对这种攻击进行了研究,以样本的正确标签和目标机器学习模型的预测作为输入,训练出攻击模型,并确定样本是否在训练集中。这种攻击模型使用影子模型进行训练,这些影子模型是由3种方法生成的数据训练而得的:模型反演攻击、基于统计的合成方法或有噪声的真实数据。当训练攻击模型使用黑盒或白盒访问时,只需要一个黑盒攻击者便可使用这些模型执行攻击。该研究也尝试了不同的攻击防御技术,如利用正则化和将预测向量模糊化等技术,并发现将输出限制为类标是最有效的防御技巧(尽管不足以完全阻止攻击)。

常用的隐私保护技术聚焦于允许多个输入方协同训练机器学习模型。这些技术主要是通过使用加密的方法或差分隐私来实现的。差分隐私技术在防止成员推理攻击方面特别有效。当某个机器学习应用需要来自多个输入方的数据时,我们可以利用加密协议对加密数据进行机器学习训练或者测试。在这些技术中,要获得更高的效率,需要让数据所有者将其加密的数据贡献给计算服务器,这将把问题退化为两方或者三方安全计算情形。这些方法中的大多数都针对横向联邦学习的情况:不同参与方拥有不同样本ID的同一组特征数据。例如人脸识别,如果你想为自己的脸训练一个机器学习模型,就可以提交从自己的照片中提取的多个特征向量。在每一种情况下,每个数据所有者都会提取相同的一组特征。从技术上实现面向隐私保护的机器学习(Privacy-Preserving Machine Learning,PPML)的最常用隐私保护技术有同态加密、混淆电路、秘密共享或者多方计算等。

同态加密:全同态加密允许对加密数据进行计算。通过加法和乘法等操作,我们可实现更加复杂的函数的计算。由于频繁刷新密文(因为噪声累积而不得不刷新密文)的成本较高,PPML主要采用加法同态方案。这类方案只支持加密数据的加法操作,以及明文的乘法操作。一个常见的例子是Paillier加密机制。为了扩展加法同态加密的功能,部分研究者聚焦于实现两个加密值的比较,或者执行安全的乘法和解密操作(主要是通过向需要保护的加密值添加一个加密的随机值来保护密文)。

混淆电路:假设张三和李四想要得到一个在他们的隐私数据上计算的函数的结果,张三可以把这个函数转换成一个混淆电路,并把这个电路和他的混淆输入一起发送出去。李四从张三那里得到了他输入的篡改版本,而张三却不知道李四的隐私数据,如使用不经意传输(Oblivious Transfer)。李四现在可以使用他的混淆输入和混淆电路来获得所需函数的结果(并且可以选择与张三共享)。一些PPML方法结合了加法同态加密和混淆电路。

秘密共享:是在多个参与方之间分发秘密的一种方法,每个参与方持有秘密的“共享”部分。单个“共享”本身是没有用的;然而,当大家的“共享”被合并时,秘密可以被重建。在一种设置中,多个输入方可以生成其隐私数据的“共享”,并将这些“共享”发送到一组非共用的计算服务器。每个服务器都可以从接收到的“共享”中计算出部分结果。最后,结果方(或代理)可以接收这些部分结果,然后将它们组合起来并找到最终结果。由于这些计算服务器具有类似的功能,因此应该特别注意这些服务器托管在哪里,以及哪些实体控制它们,以便让数据所有者相信这些计算。

差分隐私:差分隐私技术通过向输入数据、在某个算法中迭代或在算法输出中添加随机噪声来抵御成员推理攻击。虽然大多数差分隐私方法假设了一个可信的数据聚合器,但本地差分隐私允许每个输入方在本地添加噪声,因此不需要受信任的服务器。最后,我们也可通过将数据投影到一个低维超平面来干扰数据,以防止重构原始数据或限制敏感信息的推理。