天天看點

可信密态計算在螞蟻集團内部的實踐

作者:DataFunTalk

導讀:我們提出了一種隐私計算新思路,這種思路為業界提供了新的安全性和性能的平衡點。今天為大家講述這個平衡點,看能否給大家一些啟發,找到一些應用場景。

今天的介紹會圍繞下面四點展開:

  • 背景
  • TECC 技術路線
  • TECC 實作現狀
  • 總結和展望

分享嘉賓|潘無窮博士 螞蟻集團 進階專家

編輯整理|陳人琪 微衆信科

出品平台|DataFunTalk

01

背景

首先來看一下哪些事實促使了 TECC 的提出。

1. 邁入密态時代

可信密态計算在螞蟻集團内部的實踐

我們認為單個機構用的資料,是事物的一個側面,要準确評估事物,就需要來自多個機構的資料。那麼,這個時候就需要全面的資料流通。從安全性上來講,明文流通肯定是沒有辦法控制安全性的,因為明文流通會導緻資料不斷擴散,最後導緻失控。是以,資料的流通方式未來發展趨勢一定是密态流通。

2. 密态計算的難度遠遠超過傳統密碼算法

可信密态計算在螞蟻集團内部的實踐

這個技術的難度怎麼樣?傳統加密算法裡,通過傳統加密,基于密文的傳輸,最終解密。而密态流通算法的難度是遠遠超過傳統加密算法的。如果要做密态流通,就要實作密态計算,包括加減乘除、比較、移位、選擇、機器學習、資料學習等。目前還沒有非常完美、性能非常好的方案。

3. 部分算法存在惡意敵手攻擊、合謀攻擊

可信密态計算在螞蟻集團内部的實踐

現有算法可能存在的問題:

  • 惡意敵手攻擊:“惡意敵手攻擊”是指攻擊者(例如惡意的參與方)在執行時不遵守協定。目前部分算法是有假設前提的,即假設不會出現“惡意敵手”。也就是說這些算法隻有在不出現惡意敵手時才是安全的。然而在現實當中,我們認為大機率是會出現惡意敵手的,因為攻擊者沒有道理去遵守密碼協定。
  • 合謀攻擊:多個攻擊者一起合作作惡。目前部分算法是有假設前提,即假設不會出現合謀攻擊。如果出現合謀攻擊,這些算法的安全性也是有問題的。我們認為,隻要資料利益足夠大時,攻擊者是有可能合作,導緻出現合謀攻擊的。

4. 部分算法存在資訊熵洩露

可信密态計算在螞蟻集團内部的實踐

除了以上兩種問題,有些算法還有可能存在資訊熵洩露的問題。資訊熵洩露是指原始資訊沒有洩露,但是原始資訊的運算結果被洩露,導緻原始資訊的不确定性減少,即熵減少了。

那麼,要怎麼看待資訊熵洩露這個問題呢?資訊熵洩露不等價于可以倒推出原始資訊。我們認為它的安全問題跟洩露的規模相關。如果洩露量小,風險是可控的。如果洩露量大,大機率存在有效攻擊形式。而且,因為洩露量是累加的,在判斷洩露量時,需要考慮它的長期性。

5. 性能是算法類隐私計算技術最大障礙

可信密态計算在螞蟻集團内部的實踐

綜上所述,算法存在各種安全問題,是因為我們設計不出沒有安全問題的算法嗎?其實不是,而是因為沒有安全問題的算法通常會受困于性能。

舉個例子,一個沒有安全問題簡單乘法運算的消耗量如下:

  • 非對稱加解密:1ms級
  • 網絡往返:10ms級
  • 傳輸耗時:100us級

而這個算法在明文計算其實隻要 0.3ns。這兩者的差距在 5-7 個量級,差距是非常大的。這種耗時膨脹隻适用于非常少的場景,不适合大規模的密态資料中心。

6. 系統實作漏洞

可信密态計算在螞蟻集團内部的實踐

另外,我們還觀察到了一些系統漏洞的問題:

  • 軟體層面,有側信道攻擊、記憶體安全、開發的動态反序列化等問題。
  • 硬體層面,有分支預測攻擊、微體系結構攻擊問題。
  • 供應鍊層面,有 Plundervolt 問題。

這些系統漏洞,會導緻我們依賴系統實作的方案可能存在問題。

--

02

TECC 技術路線

下面介紹 TECC 的主要性質。

1. 可信密态計算 TECC

可信密态計算在螞蟻集團内部的實踐

TECC 通過在多個高速互聯的可信執行環境中運作密碼協定,将兩者有機結合在一起,安全性可抵禦現實攻擊,成本低于一個量級,性能和穩定性接近明文。

它的主要原理是:

  • 多個參與方将資料密态拆分,将每個分量傳遞給不同分區的可信計算節點
  • 每個可信計算節點隻有分片資料,多個可信計算節點分區通過密碼協定完成目标計算
  • 可信計算節點受 TEE、TPM、全棧可信保護,營運這無法窺探
  • 密碼協定的同一個角色由一個可信計算節點分區叢集承擔,可以進行并行化加速

2. TECC 整體安全模型

可信密态計算在螞蟻集團内部的實踐

首先營運者是拿不到參與方的資料的,并且參與方是可以知道自己的資料被執行了什麼邏輯的。這是通過 TEE 遠端認證實作的。

從安全性層面,TECC 可以提供三層縱深防禦,形成互補,即可以防禦黑客,也可以防禦 TECC 的營運者。

  • 全棧可信,即硬體防竊取的機箱和系統軟體鍊的驗證。阻斷攻擊 TEE 的前提條件。
  • TEE,可防禦惡意敵手攻擊、合謀攻擊。
  • 密态分片,消除 TEE 的大部分安全隐患。

3. TECC 實作安全性(軟體層)

可信密态計算在螞蟻集團内部的實踐

TECC 的核心代碼是 Rust 語言。采用 Rust 程式設計語言需要一些額外的開發成本,包括注明變量的所屬關系及所屬關系的轉移等。可以避免變量被非預期的代碼通路、以及因為記憶體越界或多線程沖突導緻的安全問題。

對于生态中的非 Rust 代碼,使用形式化的方法進行驗證,確定特定的安全問題不會出現。目前 TECC 的實作已經驗證了記憶體安全問題。

4. TECC 實作安全性(硬體層、供應鍊)

可信密态計算在螞蟻集團内部的實踐

之是以 TECC 是密态的就能緩解一些硬體層面、供應鍊層面的安全漏洞,原因如下:

  • 抵消側信道攻擊。正常情況下,側信道攻擊是通過攻擊 TEE 與外界的互動實作的,例如攻擊記憶體總線、電源線,得到位址資訊或者能量曲線資訊,判斷具體的通路位址,例如數組裡的下标等等,進一步推導敏感資訊。但是在 TECC 裡面,最後一步是不成立的,因為 TECC 裡的資料都是分片資料,它是比較長的随機數,不會作為位址和判斷條件出現。那麼拿到位址資訊和判斷資訊,其實無法推導出分片資料,是以無法形成攻擊。
  • 抵消分支預測攻擊。正常情況下,分支預測是通過攻擊者操縱輸入,先讓 CPU 多次執行分支 1,然後突然轉向分支 2,這個時候,CPU 超前預測執行時會因為慣性的原因,繼續執行分支 1。這個時候就會造成短暫的攻擊視窗。那麼在 TECC 裡面,因為密态的原因,輸入的資料直接用于密态計算,輸入資料不會作為判斷條件,攻擊是以不成立。
  • 緩解微體系采樣結構攻擊。多個 TEE 洩露的分片資料不對應同一個明文,是以攻擊不成立。
  • 緩解供應鍊攻擊。将有隐患的 TEE 放到同一個分區,全部淪陷無安全問題。

5. TECC 性能可接近明文

可信密态計算在螞蟻集團内部的實踐

TECC 性能可接近明文的三個原因:

  • TECC 對密碼協定的需求僅為“密态資料”,并不需要全功能的密态協定,可采用輕量級的密碼協定。這時候整體的消耗會降低很多。
  • 目前常見的内網帶寬高達 25gbps 以上,網絡傳輸不會造成非常大的性能障礙。
  • 通過并行化再提升 1-2 數量級,這充分提升了性能。

6. 适用性

可信密态計算在螞蟻集團内部的實踐

适用性的兩個優點:

  • 多種安全和成本選擇
  • 任意參與方數量、不同資料分割形式,代碼相同。相同邏輯的多種情形,代碼相同,比如 PIR、密态資料庫

适用性的缺點:

  • 需要将邏輯密态化。通過提供通用接口相容現有生态,可緩解該缺點。

7. 成本和穩定性

可信密态計算在螞蟻集團内部的實踐

從成本方面看:

  • 裝置:膨脹 1 個量級,性能可接近明文。
  • 網絡:無額外公網成本。
  • 人力:接入、運維、部署成本低。

從穩定性看:無公網互動,穩定性高。

--

03

TECC 實作現狀

1. TECC 隐私機器學習

可信密态計算在螞蟻集團内部的實踐

案例 TECC XGBoost 隐私機器學習訓練,總耗時 16.2 分鐘,召回率和準确率也符合要求。

  • 全程密态運算、大運算全部分布式
  • 密态壓縮傳輸、傳輸均衡技術
  • 有效位精控、多版本比較

2. TECC 密态資料分析

可信密态計算在螞蟻集團内部的實踐

密态資料分析場景是如何的?提供 TECC pandas 接口層,給使用者自定義Python 代碼。

--

04

總結與展望

1. TECC 将與計算生态進行深度融合

可信密态計算在螞蟻集團内部的實踐

這是 TECC 的整體功能,目前基本實作。下一步将要與生态進行融合。将來我們還會做存儲的功能。

2. 總結

可信密态計算在螞蟻集團内部的實踐

TECC 為業界提供了一種新的成本和安全性的選擇,它提供了非常優異的綜合能力:

  • 安全:三層防禦,Rust,抵消硬體漏洞。
  • 性能:輕量級密碼、内網、并行化,性能是接近明文的程度的。
  • 适用性:多種成本選擇、通用算法,适用性稍低于明文,但也還是不錯的。
  • 成本:一個量級以内。
  • 穩定性:内網互動,是沒有問題的。

目前,TECC 能夠實作 1 小時處理億級樣本隐私機器學習、10 分鐘處理億級行數密态資料分析。

今天的分享就到這裡,謝謝大家。

|分享嘉賓|

可信密态計算在螞蟻集團内部的實踐

潘無窮 博士|螞蟻集團 進階專家

潘無窮,資訊安全博士,螞蟻科技集團進階專家,曾獲黨政密碼科學技術進步獎勵一等獎、密碼學會優秀青年獎,發表論文和專利50多項。

|往期文章推薦|

可信密态計算在螞蟻集團内部的實踐

|關于DataFun|

專注于大資料、人工智能技術應用的分享與交流。發起于2017年,在北京、上海、深圳、杭州等城市舉辦超過100+線下和100+線上沙龍、論壇及峰會,已邀請超過2000位專家和學者參與分享。其公衆号 DataFunTalk 累計生産原創文章800+,百萬+閱讀,15萬+精準粉絲。