當聯邦學習保護數據隱私,如何保證其自身的安全性?
聯邦學習(Federated Learning)是一種由多方參與的聯合計算技術,多方在不泄漏各自隱私數據的前提下,完成模型的訓練與推理。
在實際應用中,聯邦學習既可以發生在同一企業的不同部門,也可以在不同企業之間。一般在聯邦學習框架中,各個參與者的明文數據不出本地,以降低隱私泄漏的風險,多方之間僅交換必需的中間結果以完成訓練。
在目前的學術研究與應用中,根據應用場景的不同,聯邦學習可以分為橫向聯邦學習和縱向聯邦學習 [1]。在本文中,我們將重點對以上兩種聯邦學習進行安全性分析,深入探索多方在橫向聯邦學習和縱向聯邦學習中交換的中間結果是否會帶來隱私數據泄漏。
Vanilla 橫向聯邦學習的安全性
Vanilla 橫向聯邦是聯邦學習的一種最初形態,由 Google 在 2016 年提出 [2],該方案最早地展示了如何在不接觸用戶本地數據的前提下完成模型訓練,從而在一定程度上減少了用戶的隱私數據泄漏。

圖 1:Google 的 Vanilla 橫向聯邦學習。
上圖 1 展示了 Vanilla 橫向聯邦學習的過程,該方案由以下三個步驟組成:
- Map:中心服務器將當前模型分發給參與者,收到模型的參與者在本地數據上進行參數的有偏估計;
- Aggregate:中心服務器收集參與者的參數估,進行聚合,得到新的模型參數;
- Reduce:中心服務器使用聚合后的新參數作為當前模型。
該方案將重復步驟(1)-(3)直到模型收斂,Google 已將該方案實踐于 Google- keyboard 應用。
安全性分析
在 vanilla 橫向聯邦中,中心服務器獲取到了參與者每輪訓練的梯度明文,基于這些明文梯度信息,中心服務器可以使用梯度攻擊的方法,反推參與者的訓練數據。目前常用的梯度攻擊方法有兩種:(1)全連接網絡層攻擊 [3](2)非全連接、深度模型的攻擊 [4]。
1.全連接網絡層攻擊
當神經網絡模型第一層為全連接層時,中心服務器可以使用方法(1)進行攻擊,假設第一層網絡為:
a=wx+b
則在反向傳播中,w 的梯度為:

其中 ∂l/∂a 為反向傳遞到第一層的梯度,對每一個神經元,輸出維度為 1,即 ∂l/∂a 為標量,∂l/∂w 是原數據 x 的 ∂l/∂a 倍。以圖像數據為例,其數據區間為 0~255,中心服務器只需要將某一個神經元的梯度進行 rescale,調整到 0~255 之間,即可直接獲得參與者的訓練數據。

圖 2:全連接網絡層攻擊結果(2 層網絡,每層 512 個 unit)[5]。
上圖 2 展示了在該方法在 MLP 模型上的攻擊結果,可以看到攻擊結果中的數字清晰可辯別。
2.非全連接、深度模型的攻擊
當模型為非全連接、深度模型時,例如卷積神經網絡、循環網絡,中心服務器可以使用方法(2)進行攻擊,該方法的基本思路是使用梯度信息作為輸入、訓練一組假數據。當假數據產生的梯度和真實梯度相近時,假數據就會十分接近真實數據。下圖 3 展示了該攻擊方案的基本原理。

圖 3:針對卷積神經網絡的梯度攻擊方法。
下圖 4、圖 5 展示了圖像任務和 NLP 任務的攻擊結果,可以看到中心服務器可以使用該梯度攻擊方法較好地還原圖像和文本訓練數據。

圖 4:卷積神經網絡的攻擊結果(圖像任務)。

圖 5:語言模型的攻擊結果(NLP 任務)。
安全性分析(結論):vanilla 橫向聯邦學習雖然避免了中心服務器直接接觸用戶數據,但仍無法保證用戶的隱私數據安全,中心服務器在接收到用戶的明文梯度后,可以使用梯度攻擊模型恢復出用戶的隱私數據。
多種保護機制下橫向聯邦學習的安全性
在 vanilla 橫向聯邦學習不安全成為共識的背景下,大量聯邦學習數據保護方法被提出,下面我們將對最常用的兩種進行討論:(1)基于 Secure Aggregation 的橫向聯邦學習(2)基于同態加密的橫向聯邦學習。
基于 Secure Aggregation 的橫向聯邦學習
vanilla 橫向聯邦學習的隱私數據泄漏發生在中心服務器參數聚合的步驟中,中心服務器獲得了每個參與者單獨的梯度,進而可以使用梯度攻擊竊取隱私數據。假設系統保障中心服務器無法獲得單個參與者的梯度信息,即可很大程度保護參與者的數據,使得中心服務器無法對某一個參與者直接發起攻擊。
Secure Aggregation 就是借助了這種思想,每個參與者在上傳模型數據前,在自身的模型上加入大量噪聲,然后控制噪聲的分布,使得多個參與者的模型在聚合后,數據上的噪聲會相互抵消,進而不會影響聯邦學習的模型收斂。
這里我們介紹一種使用 one-time pad 進行安全聚合的方法 [6],給定 K 個參與者,假設每兩個參與者之間都有一條安全通信的通道,參與者兩兩之間首先協商一組擾動噪聲,參與者 u 會對所有其他參與者生成隨機向量 r∈(0,R],其中 R 是一個大整數。隨后,參與者 u 和 v 之間會通過他們之間的安全通道交換隨機向量 r_(u,v) 和 r_(v,u),然后計算擾動噪聲 p_(u,v)=r_(u,v)-r_(v,u) (mod R)。在完成擾動噪聲生成后,每個參與者將噪聲應用到模型數據上并發送給中心服務器:

,中心服務器進行以下參數聚合:

以上聚合公式也提供了準確性驗證,即在聚合過程中,不同參與者模型上的擾動噪聲會相互抵消、保證最終聚合模型不受影響。
安全性分析(結論):在使用了 Secure Aggregation 方法后,中心服務器無法獲得單個參與者的梯度信息,大大提升了系統的安全性,中心服務器也無法單獨使用梯度攻擊對參與者的隱私數據進行攻擊。
基于同態加密的橫向聯邦學習
除了 Secure Aggregation 方法外,我們亦可使用同態加密技術對參與者的梯度信息進行保護。同態加密是密碼學研究中的「明珠」,其特殊性質在于,可以直接在密文上進行計算而無需解密。根據同態加密算法在密文上支持算子的不同,可以將其分為:加法同態、乘法同態和全同態算法。
在橫向聯邦學習中一般使用支持加法的同態加密算法,即參與者在上傳模型數據前,首先對其進行加密,然后中心服務器收到密文后,在密文上進行加法聚合,再將密文結果返回給參與者,假設使用的同態加密為部分同態,則參與者需要先解密、再完成模型更新;如果使用的同態加密為全同態加密,則參與者無需進行解密,可以在密文的模型上進行更新。
下圖 6 展示了一個標準的基于加法同態加密的橫向聯邦學習框架,該框架的運算流程可以概括為以下三個步驟:
- Map:中心服務器將當前加密模型分發給參與者,收到模型的參與者先對模型進行加密,再在本地數據上進行參數的有偏估計;
- Aggregate:中心服務器收集參與者的加密參數估計,進行聚合,得到新的、密態下的模型參數;
- Reduce:中心服務器使用聚合后的新加密參數最為當前模型。

圖 6:基于加法同態加密的橫向聯邦學習 [3]。
基于全同態的橫向聯邦框架:除了使用加法同態算法之外,還可以使用全同態對橫向聯邦里的參數信息進行保護。在使用了全同態加密后,不止中心服務器上的參數聚合在密文下,參與者本地的模型更新也是在密文下,多方需要預先規定訓練次數,在達到指定數量后停止訓練。
安全性分析(密鑰管理):在對基于同態加密的聯邦學習系統進行安全性分析之前,還有一點需要我們額外注意的,那就是同態加密算法在使用中如何管理密鑰。大部分同態加密算法僅有一個私鑰,即在使用中,所有的參與者持有同一組公私鑰、然后將公鑰分享給中心服務器。但這種模型安全性較低,一旦有一個參與者與中心服務器共謀,系統的安全性就下降到了 vanilla 聯邦學習。以上問題目前有一個較好的解決方案,即使用閾值同態加密算法 [10,11],該類型的同態加密算法支持多個私鑰存在,并且當一定數量以上的私鑰參與,才能將密文成功解密,近期閾值同態加密研究火熱 [7,8,9],受到了廣泛關注。
安全性分析(總結):在使用了同態加密之后,中心服務器無法獲取任何有效的明文信息,所以也無法進行梯度攻擊。并且借助閾值同態加密,多個參與者可以各自持有一個私鑰,可以大大提升了系統的安全性,可以說參與者的數據十分安全。
縱向聯邦安全性分析
除了橫向聯邦學習之外,另一種在實際中大量應用的是縱向聯邦學習。從分布式計算的角度考慮,橫向聯邦是一種數據并行的思路,而縱向聯邦是模型并行的思路。不同點是,橫向聯邦(數據并行)對模型沒有要求,不管是線性模型、神經網絡,都可以很輕松的套用橫向聯邦的框架進行實現;而縱向聯邦(模型并行)中,每個解決方案都和模型緊密綁定,一般需要對單機版本的模型進行拆解,規定好每個參與者本地需要計算的內容、以及多方之間需要交換的信息。所以說縱向聯邦的安全性分析需要對每個算法進行,不同的算法實現方式可能會有不同的安全性。
在本文中,我們將以 FATE 聯邦學習框架中的縱向線性回歸為例,對其數據安全性進行分析。
下圖 7 展示了 FATE 中使用的縱向線性回歸算法模型, ⟦.⟧ 代表同態加密后的密文。我們可以發現,聯邦建模中 A、B 雙方交換的信息均為同態加密后的,每一輪訓練中 A、B 僅能獲得自身模型的梯度,無法反推對方的隱私數據。

圖 7:帶第三方的縱向線性回歸模型算法流程 [1]。
安全性分析(總結):縱向聯邦學習算法和模型緊密相關,不同的聯邦算法設計可能會有不同的安全性,所以我們在設計縱向聯邦學習算法時,就需要對安全性進行考慮。本文以 FATE 中使用的線性回歸模型為例進行了分析,FATE 使用同態加密作為基礎隱私保護技術,多方之間傳遞的信息均為同態加密后的,所以可以保障參與者的隱私數據安全不泄漏。
結語
最近,我們看到網絡上有很多針對聯邦學習安全性的討論,絕大部分的質疑主要集中在聯邦學習可以被梯度攻擊,從而使其安全性下降。但是,梯度攻擊只能被利用在 vanilla 聯邦學習上,而 vanilla 聯邦學習不會被用于生產系統中。在生產系統中,如本文的分析和介紹,聯邦學習往往會利用同態加密或者差分隱私等技術進一步保護傳遞的參數,從而使得聯邦學習無法被攻擊,保證安全性。
我們希望通過文本為讀者們展示一個更加準確的聯邦學習全貌,從而使得讀者們可以更加準確地了解到聯邦學習的安全性現狀。