Advertisement

联邦学习阅读《Preserving Privacy and Security in Federated Learning》

阅读量:

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 概况

  • 一、介绍

    • 面对的隐私和安全风险
      • 隐私风险
      • 投毒攻击风险
  • 二、方法

      • 本文框架:
  • 三、系统和安全模型

      • 系统模型
      • 安全模型
  • 四、安全学习框架

    • 用户聚合组件
    • 零知识证明用于验证无攻击模型
  • 计算全局模型

  • 总结


概况

现在大部分关于联邦学习安全的研究都在于防止用户投毒攻击(恶意用户上传数据),和隐匿本地模型的更新,保护用户的隐私,很少有兼顾两者的安全方式。

但是,结合两者的研究是一个巨大挑战,因为两者在对于模型的安全性方面常常相互冲突。

本文提出了一个基于同态加密的安全聚合协议,使得服务器可以用隐私的方式合并本地模型更新,接着使用zero-knowledge证明协议将攻击检测的任务从服务端转移到用户端,关键的点在于,服务器不再需要访问本地模型进行攻击检测,因此,该框架能够让中央服务器在不侵犯隐私保护的情况下识别被篡改的模型更新。


一、介绍

联邦学习是一种用来大规模分布式深度学习模型的框架,每轮训练,中央服务器将全局模型给分给随机选中用户,用户本地使用全局模型训练,训练后的本地模型交还给服务器,服务器对于所有的本地模型进行聚合平均生成新的全局模型。

面对的隐私和安全风险

隐私风险

尽管用户训练数据不会直接泄露给服务器,但是模型更新需要被提交给服务器,这带来了隐私泄露的风险,可能会通过训练后的神经网络参数,推断出用户的原始训练数据。

投毒攻击风险

联邦学习容易受到模型投毒攻击,这种攻击利用了联邦学习中恶意用户可以直接影响全局模型的特性,攻击者可以操纵本地模型的参数或者本地模型训练规则影响全局表现,从而使攻击更具破坏性。

为了保护用户隐私,安全聚合协议被引入到联邦学习中,用于设计一个保护本地模型更新的训练框架。这些协议允许服务器在不获知任何单个本地模型信息的情况下,私密地合并本地模型更新,从而更新全局模型。具体来说,服务器可以计算本地模型参数的总和,而不需要访问这些本地模型。因此,本地模型更新对服务器是隐匿的,从而防止服务器通过用户的更新推断他们的私人训练数据。

但是,联邦学习在应对某些恶意用户的对抗性攻击,尤其是投毒攻击的脆弱性,这种脆弱性利用了联邦学习赋予了用户训练本地模型自由性的特质。任何用户可以通过任意修改本地模型的权重进行攻击,为了预防这类攻击,传统方法是让中央服务器运行一些防御机制,检查每个模型更新,例如使用异常检测算法过滤出被中毒的模型更新。

然而,将隐私保护和安全防护这两条研究路线结合起来并非易事,因为它们彼此矛盾。具体来说,允许服务器检查用户的本地模型更新以过滤掉被攻击的模型,实际上违反了安全聚合的安全模型。事实上,在安全聚合的设置下,服务器不应当能够获知任何单个模型更新的信息。因此,使用安全聚合时,服务器无法直接对每个模型更新运行防御机制来判断其是否无攻击。因此,现有的使用安全聚合的联邦学习系统阻止了服务器检测被中毒的本地模型。

二、方法

为了解决这个问题,本文提出了一个框架,将安全聚合与针对用户投毒攻击的防御机制相结合。为了规避上述问题,我们将运行防御机制的任务转移给用户,赋予每个用户证明其防御机制执行正确性的能力。简单来说,用户负责运行防御机制,并且他们必须向服务器证明该机制已被正确执行。

为了实现这一点,框架利用了零知识证明(ZKP)协议,用户可以用该协议来证明防御机制执行的正确性。ZKP协议必须确保在防御机制未被正确执行时难以生成有效的证明,并且证明不得泄露任何关于本地模型更新的信息,以保持安全聚合的隐私保障。通过我们的ZKP协议,服务器可以验证防御机制是否被用户正确执行。

为了展示该框架的可行性,以后门攻击作为一个用例,构建了一个针对特定后门防御机制的ZKP协议。此外,还提出了一个用于联邦学习的安全聚合协议,以解决先前工作的局限性。

具体来说,框架展示了聚合协议如何在面对恶意用户时保持稳健性,能够在某些用户不诚实执行协议的情况下仍保持隐私性和活跃性。我们的框架可以结合ZKP和安全聚合协议,来应对联邦学习中的隐私和安全风险。

本文框架:

建立了一个整合安全聚合协议和针对中毒攻击的防御机制的框架,且不违反任何隐私保障。

提出了一种新的安全聚合协议,使用同态加密用于联邦学习,能够在半诚实服务器和恶意用户的情况下保持隐私和活跃性。

为后门防御机制构建了一个ZKP协议,以展示框架的可行性。

最后,分析了框架的计算和通信成本,并提供了一些性能基准。

三、系统和安全模型

目前的系统提出,以解决来自用户的中毒攻击或隐私的模型更新的设计使用的安全模型,相互冲突。事实上,在保护模型更新的隐私时,中央服务器和用户都被认为是诚实但好奇(或半诚实)的。

然而,当防御来自用户的投毒攻击时,服务器被认为是诚实的,而用户是恶意的。由于这种冲突,本节建立了一个更通用的安全模型,结合了以前关于联邦学习的安全性和隐私性的工作中提出的模型。从安全模型出发,我们还定义了一些设计目标。

系统模型

在这里插入图片描述

安全模型

  1. 威胁模型:
    我们考虑到一个计算能力受限的攻击者,它能够破坏服务器或部分用户,方式如下。服务器被认为是诚实但好奇的,即服务器会按联邦学习的训练协议行为,但也会试图从用户的数据中尽可能多地学习信息。服务器还可以与已被破坏的用户串通,来获取剩余用户的输入信息。此外,一些用户可能试图注入不干净的模型更新,以毒害全局模型,他们也可能任意偏离协议。

关于密钥生成和分发过程的安全性,已有大量关于构建多方计算(MPC)协议的研究,公共密钥是集体计算的,而每个用户计算自己的私钥。这样的协议可用于本架构中,安全生成用户和服务器所需的密钥。因此,本文不专注于密钥生成和分发过程的安全性,而假设密钥已安全生成,且诚实用户的密钥不会泄露给其他人。

设计方面:
在这里插入图片描述

四、安全学习框架

为了解决上一节提出的安全模型,本文提出了一个安全学习的框架,使得安全聚合和投毒攻击的防御相结合,来保障各自的安全性和隐私属性,旨在保护用户本地模型的隐私,同时,也要防止来自于用户的攻击。

如图一所示,框架由三个组件组成:1,用户聚合,2,无攻击模型的零知识证明,以及 3,计算全局模型:
【1】
【1】
在这里插入图片描述

用户聚合组件

在这里插入图片描述
【2】
算法解释:
在这里插入图片描述
用户聚合组件可以很好的将诚实用户的本地模型在加密的形势下进行聚合,同时攻击者很难根据已知的明文-密文对进行区分。

同时,本地模型Xu也不会泄露给其他用户U或者服务器S,这很好的保护了用户的隐私。

零知识证明用于验证无攻击模型

该组件生成零知识证明,证明本地模型不受某种中毒攻击的影响。具体来说,我们首先假设存在一个函数 R(x),它验证模型是否无攻击,如下所示:
在这里插入图片描述
x是本地模型,C(x) 是 x 的承诺值。接下来,该组件实现了一个零知识证明协议,用户可以证明他们正确执行了 R(x),而不会泄露x。

需要注意的是,零知识证明本身并不是防御机制,而是验证用户在其一侧正确执行了函数 R(⋅) 的手段。因此,该组件在防止中毒攻击中的有效性取决于防御函数 R(⋅) 的表现。
在这里插入图片描述
上图主要证明了ZKP组件的属性,证明者算法P由用户运行,而验证者算法V由服务器S运行。
在这里插入图片描述

计算全局模型

在这里插入图片描述

此组件将两个前面的组件的输出作为输入,生成对应的全局模型。因此,它将前面的两个组件结合起来,并且仅由服务器运行。具体而言,它需要能够从第一个组件中解密 c ,并验证来自第二个组件的零知识证明 。然后,它输出来自诚实用户的模型更新之和。
算法解释:
在这里插入图片描述


总结

本文主要提出了一个可行的解决联邦学习安全性的方案:

面对恶意用户的投毒攻击,和保护诚实用户的隐私(例如防止从用户上传的本地模型反推出用户隐私数据),提出了一个兼顾两者的框架。

首先,服务器不会直接接触到客户端,在客户端进行本地模型训练后,会把本地模型上传给用户聚合组件,该组件会将用户本地模型在不解密的形式下聚合,同时利用了IND-CPA使得攻击者利用已知的明文-密文对来区分密文,更重要的是,服务器和其他用户无法从用户聚合组件获取隐私数据,最后给服务端的是一个聚合且加密的模型。

同时,威胁模型假设了一批能力有限的恶意用户,这就需要零知识证明用于验证无攻击模型组件来进行甄别。用户在把本地模型上传给用户聚合组件的同时,也会上传给零知识证明组件,该组件通过定义的验证无攻击模型函数和本地模型,输出模型的承诺值和验证零知识模型函数正确执行的证明,这点有利于对于诚实客户端和恶意客户端的鉴别。

最后,在中心服务器中,收到了前两个组件的:加密聚合模型,零知识模型函数正确执行证明,输出模型的承诺值,以及私钥SK,会先验证零知识模型函数正确执行证明是否正确,来证明是否有恶意用户进入(是否被攻击),通过对承诺方案的同台加法验证的得到的承诺是否正确,验证全局模型是否正确聚合(是否完整),再对加密聚合模型进行私钥解密,最后对所有可靠模型进行聚合平均得到新的全局模型。

全部评论 (0)

还没有任何评论哟~