安全多方計算在SQL場景下的限制
隨著MPC、隱私計算等概念的流行, 諸多政府機構、金融企業開始考慮參與到多方計算的場景中, 擴展數據的應用價值。
以下面這個場景為例,? 銀行可能希望獲取水電局和稅務局的數據,來綜合計算得到各公司的信貸評分等級。
通過TEE、MPC等策略,可防止中間數據在計算過程中發生泄漏。
但計算結果最終會返回給作業發起方, 例如發起方試圖查詢 [企業id, 用水量+ 用電量]時 ,? ?隱私計算平臺只能保證用電量、用水量單獨不泄露, 無法保證用水量和用電量的相加值不被泄露,畢竟這個相加值是作為計算結果呈現的。?
因此對于“計算結果是否會泄露敏感數據”這個問題,是TEE、MPC等策略所無法解決的。
常見解決策略
一、默認的隱私策略
隱私計算平臺通過設置復雜的隱私策略,指定少數sql場景, 來強行限制敏感數據的使用。
例如直接拒絕id字段、敏感數據字段被明文暴露等。
二、使用隱私算法對敏感數據的聚合結果進行保護
此類算法可以保護敏感數據的聚合結果無法被逆推, 但僅限于敏感數據的聚合結果,如果作業發起方有算法應用之外的需求,則需要依賴其他更為人工的方式來預防。
三、基于審批的作業共識
但由于業務場景復雜,如果規則限制過強,可能導致阻止了正常邏輯的作業,? 如果限制過弱,則可能導致敏感數據被惡意套取丟失。
因此在多方SQL計算時,各數據提供方和作業發起方應該能夠針對作業內容達成共識,確認該作業對數據的使用是正常的,合理的。
但是使用審批機制,需要解決以下難點:
1. 如何從一個多方聯合的sql語句中,解析出各個參與方需要的關鍵信息,使參與方確認自己的數據用途時,不暴露發起方的業務敏感信息。
2. 如何避免發起方構造特定的sql,來獲取到本不應該可見的字段。
TICS作業審批功能,達成計算共識
華為tics可信智能計算服務已支持聯邦sql作業中的審批功能,并解決了上述問題。
當試圖發起某SQL多方作業時,數據提供方可進行審批,確認是否允許這種數據的用法。
具體操作步驟如下:
- 聯盟管理員登錄TICS控制臺。
- 進入TICS控制臺后,單擊頁面左側“聯盟管理”。進入聯盟管理頁面后,單擊聯盟名稱進入聯盟詳情頁。
- 聯盟管理員在聯盟詳情頁右上角單擊“開啟作業審批”。開啟之后,所有作業就都需要通過審批后,才能執行。
- 作業發起方進入自己所屬的代理,編寫完作業之后,單擊“提交審批”。在頁面下方可查看審批方和審批進度。
圖1?提交審批
此時TICS執行分析作業的SQL語句時,將不再受隱私規則的語法限制,此時必須由提供方確認字段用途后才能繼續執行SQL語句。審批中或者審批通過后, 如果進行了修改SQL和保存操作,那么就需要重新提交審批。
提交完成后,在頁面下方可查看審批方和審批進度。
圖2?審批進度
- 數據提供方進入數據集所在代理,單擊頁面左側的“審批管理”,查找待處理的審批項。點擊“查看詳情”。
圖3?審批管理
詳情頁可以看到審批報告,報告內容包括作業發起方、會在該代理連接器上執行的SQL語句、各字段作用描述、是否在結果中可見(即明文顯示)等。
圖4?詳情
說明:- 處于保護作業發起方的業務機密性, 這里會屏蔽所有和該審批者無關的字段信息,例如ID字段的描述中, 會屏蔽該字段具體和哪個發起方字段做JOIN計算。
- 審批報告中的“字段是否在結果中可見”直接決定了該字段數值是否會明文顯示,請根據字段業務類型慎重判斷是否可見。
- 數據提供方確認風險后,在詳情頁填寫審批意見,單擊“同意”。
- 作業發起者執行作業,執行完成后,可在頁面下方查看執行結果。
圖5?執行作業
- 如果作業結果可能泄露審批中確認為“不可見”的敏感字段,則會被檢測出來,提示發起方修改sql補充更完善的審批信息。
tics中此類結果檢測算法會持續更新,以增強審批信息和內容的可靠性,提升作業的安全性。