TEE主場仍是Intel和AMD,隱私計算的國產化路徑如何實現?
作為未來數據要素市場建設的關鍵技術,隱私計算近年來得到快速發展。事實上,隱私計算涉及的技術繁多且復雜,面對眾多技術路線分支,業務應用在技術選型時還需具體情況具體分析。本文將嘗試對隱語支持的主流技術進行介紹和對比。
隱私計算的眾多技術分別在保護什么
如下圖所示,各種隱私計算技術主要的作用范圍包括“計算過程安全”和“結果發布安全”兩部分,其中計算過程安全表示除了各方約定的計算結果之外,是否還存在額外的隱私信息泄露。而結果發布安全表示計算結果如果披露給相關方,是否會帶來安全隱患,下文將以此為思路展開詳細探討。
總體來看,可信執行環境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.
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。