隨著網絡與計算業務的快速發展,數據成為數字經濟的關鍵生產要素,如何高質量挖掘數據價值,構建安全、合規、可信的數據流通,成為推動數字經濟健康發展的關鍵。此外,根據我國個人信息保護法、歐盟通用數據保護條例 GDPR 等的要求可以看出,數據隱私監管保護的范圍在擴大,保護力度日益增強。因此,對關鍵數據和業務進行安全保護,不僅是技術挑戰,也是滿足安全合規的必要條件。
當前保護數據的通行方案通常作用于靜態存儲或網絡傳輸狀態的數據,難以有效保護正在被使用的數據,因此,隱私計算技術應運而生。
作為隱私計算的重要分支,機密計算是一種利用硬件可信執行環境 (Trusted Execution Environment, TEE) 保護使用中數據的技術 [1]。如下圖所示,在非安全世界(Rich Execution Environment, REE)中,基于硬件隔離出的 TEE 環境就像是一個黑盒子,可防止外部(包括操作系統、特權用戶、惡意程序等)對 TEE 內使用中的應用程序和數據進行未經授權的訪問或篡改,從而實現數據在第三方平臺的 “可用而不可見”,消除數據上云的安全顧慮,推動數據安全流通。
機密計算痛點
當前業界主流處理器/芯片均實現了各自的機密計算技術,例如 ARM TrustZone、CCA,Intel SGX、TDX, AMD SEV 等;此外,基于 PCIe TDISP 特性,GPU、DPU 等芯片也在積極構建機密計算環境,如 Nvidia H100 GPU,Nvidia Bluefield、AMD smartNIC 系列 DPU 等。綜合來看,各種 TEE 技術的核心要素是提供硬件隔離運行環境,并依托信任根提供度量、內存加密等安全能力。
由于各處理器架構的 TEE 設計思路、實現方式不同,導致各家 SDK 接口迥異、開發流程復雜,造成開發機密計算應用開發難度高、可移植性差、生態隔離。對于應用開發者來說,其開發的安全應用與體系結構強綁定,例如基于 SGX SDK 開發的應用就很難移植到 ARM TrustZone 上,因為安全 OS SDK 提供的接口和 SGX SDK 存在很大差異。
secGear 機密計算統一開發框架
綜上可知,業界機密計算技術種類繁多,SDK 也各不相同,接口復雜,開發困難,不同 TEE 間應用生態隔離,給機密計算應用開發者帶來了較高的開發、維護成本,影響機密計算生態的發展。openEuler secGear 機密計算統一開發框架,致力于兼容業界主流 TEE,屏蔽 TEE 差異,對開發者提供統一、簡易的開發接口,實現不同架構共源碼,使開發者聚焦業務,降低機密計算應用開發維護成本,打通各 TEE 應用生態,助力機密計算生態建設。
secGear 從邏輯上分為三層,如下圖所示。
Base Layer:機密計算 SDK 統一層,屏蔽 TEE 及 SDK 差異,實現不同架構共源碼。
Middleware Layer:通用組件層,機密計算軟件貨架,無需從頭造輪子,幫助用戶快速構建機密計算解決方案。
Server Layer:機密計算服務層,提供典型場景機密計算解決方案。
secGear 遵循木蘭寬松許可證(MulanPSL-2.0 License)[2], 開發者可基于 secGear 貢獻開源中間件或解決方案,也可以基于 secGear 構建商用解決方案。目前除了社區開源的 MindSpore 縱向聯邦機密計算解決方案,也不乏基于 secGear 的客戶解決方案,如 GaussDB 全密態數據庫,BJCA 密碼模塊、openLookeng 聯邦 SQL 等。
典型應用場景
本章節介紹幾個基于 secGear 的實際業務場景解決方案,便于大家學習理解、借鑒,進而結合自身業務構建對應的機密計算解決方案。
BJCA 基于 TEE 的密碼模塊
在政策和業務的雙驅動下,密碼應用保障基礎設施一直在向虛擬化演進,隨著業務上云,密碼服務支撐也需要構建全新的密碼交付模式,實現密碼、云服務與業務應用的融合,因此數字認證(BJCA)推出基于 TEE 的密碼模塊,數字認證既可以利用鯤鵬 TEE 環境構建合規的密碼計算模塊,支撐密碼云服務平臺,同時也可以基于鯤鵬主機構建 “機密計算平臺”,為云計算、隱私計算、邊緣計算等各類場景提供 “高速泛在、彈性部署、靈活調度” 的密碼服務支撐。基于鯤鵬處理器的內生式密碼模塊已經成為密碼行業變革型的創新方案,并作為內生可信密碼計算新起點[3]。
傳統密碼模塊中算法協議以及處理的數據是隱私數據,可基于 TEE 保護。如圖所示,基于 secGear 機密計算開發框架將密碼模塊拆分成兩部分:管理服務、算法協議。
管理服務:運行在 REE 側,負責對外提供密碼服務,轉發請求到 TEE 中處理。
算法協議:運行在 TEE 側,負責用戶數據加解密等處理。
由于密碼服務可能存在高并發、大數據請求,此時 REE 與 TEE 存在頻繁交互以及大數據拷貝,會導致性能直線下降,針對類似場景可使用 secGear 零切換特性優化,減少調用切換及數據拷貝次數,實現性能倍增。
GaussDB 基于 TEE 的全密態數據庫
云數據庫儼然已成為數據庫業務未來重要的增長點,絕大多數的傳統數據庫服務廠商正在加速提供更優質的云數據庫服務。然而云數據庫所面臨的風險相較于傳統數據庫更復雜多樣,無論是應用程序漏洞、系統配置錯誤,還是惡意管理員都可能對數據安全與隱私保護造成巨大風險。
云數據庫的部署網絡由 “私有環境”向“ 開放環境”轉變,系統運維管理角色被拆分為業務管理員和運維管理員。業務管理員擁有業務管理的權限,屬于企業業務方,而運維管理員屬于云服務提供商。數據庫運維管理員雖然被定義成系統運維管理,其實際依舊享有對數據的完全使用權限,通過運維管理權限或提權來訪問數據甚至篡改數據;再者,由于開放式的環境和網絡邊界的模糊化,用戶數據在整個業務流程中被更充分的暴露給攻擊者,無論是傳輸、存儲、運維還是運行態,都有可能遭受來自攻擊者的攻擊。因此對于云數據庫場景,如何解決第三方可信問題,如何更加可靠的保護數據安全相比傳統數據庫面臨著更大挑戰,其中數據安全、隱私不泄露是整個云數據庫面臨的首要安全挑戰。
面對上述挑戰,基于 TEE 的 GaussDB 全密態數據庫的設計思路是:用戶自己持有數據加解密密鑰,數據以密文形態存在于數據庫服務側的整個生命周期過程中,并在數據庫服務端 TEE 內完成查詢運算。
如圖所示,全密態數據庫的特點如下:
數據文件以密文形式存儲,不存儲密鑰明文信息。
DB 數據密鑰保存在客戶端。
客戶端發起查詢請求時,在服務端 REE 側執行密態 SQL 語法得到相關密文記錄,送入 TEE 中。
客戶端通過 secGear 安全通道將 DB 數據密鑰加密傳輸到服務端 TEE 中,在 TEE 中解密得到 DB 數據密鑰,用 DB 數據密鑰將密文記錄解密得到明文記錄,執行 SQL 語句,得到查詢結果,再將 DB 數據密鑰加密后的查詢結果發送給客戶端。
其中步驟 3 在數據庫高并發請求場景下,會頻繁觸發 REE-TEE 之間調用以及大量的數據傳輸,導致性能直線下降,通過 secGear 零切換特性優化,減少調用切換及數據拷貝次數,實現性能倍增。
openLooKeng 基于 TEE 的聯邦 SQL
openLooKeng 聯邦 SQL 是跨數據中心查詢的一種,典型場景如下,有三個數據中心:中心數據中心 A,邊緣數據中心 B 和邊緣數據中心 C。openLooKeng 集群部署在三個數據中心中,當數據中心 A 收到一次跨域查詢請求時,會下發執行計劃到各數據中心,在邊緣數據中心 B 和 C 的 openLookeng 集群完成計算后,通過網絡將結果傳遞給數據中心 A 中的 openLookeng 集群完成聚合計算。在以上方案中,計算結果在不同數據中心的 openLookeng 集群之間傳遞,避免了網絡帶寬不足,一定程度上解決了跨域查詢問題。但是計算結果是從原始數據計算得到的,可能帶有敏感信息,導致數據出域存在一定安全和合規風險。怎么保護聚合計算過程中邊緣數據中心的計算結果,在中心數據中心實現 “可用而不可見” 呢?這里我們一起看看與機密計算結合的解決方案。其基本思想是:數據中心 A 中,openLookeng 集群將聚合計算邏輯及算子拆分出獨立的模塊,部署到鯤鵬 TEE 環境上中;其他邊緣數據中心的計算結果通過安全通道傳輸到數據中心 A 的 TEE 中;所有數據最終在 TEE 中完成聚合計算,從而保護聚合計算過程中邊緣數據中心的計算結果不會被數據中心 A 上 REE 側特權程序或惡意程序獲取、篡改。
如圖所示,具體查詢流程如下:
用戶在數據中心 A 下發跨域查詢請求,openLooKeng 的 Coordinator 根據查詢 SQL 及數據源分布,拆解下發執行計劃到本地工作節點以及邊緣數據中心的 coordinator,邊緣數據中心的 coordinator 再下發到本地工作節點。
各工作節點執行計劃,得到本地計算結果。
邊緣數據中心通過 secGear 安全通道將本地計算結果加密后經網絡傳到數據中心 A 的 REE 側,并中轉到 TEE 中,在 TEE 中解密計算結果。
數據中心 A 在 TEE 中對數據中心 A、B、C 的計算結果執行聚合計算,得到最終執行結果,并返回給用戶。
其中步驟 4,在存在大量查詢請求時,會頻繁觸發 REE-TEE 調用,并且有大量數據的拷貝,導致性能直線下降。通過 secGear 零切換特性優化,減少調用切換及數據拷貝次數,實現性能倍增。
MindSpore 基于 TEE 的縱向聯邦特征保護
縱向聯邦學習是聯邦學習的一個重要分支,當不同的參與方擁有來自相同一批用戶但屬性不同的數據時,可以利用縱向聯邦學習進行協同訓練,方案流程如圖所示。
擁有屬性的參與方(Follower 方)都會持有一個底層網絡,參與方屬性輸入底層網絡得到中間結果,再將中間結果發送給擁有標簽的參與方(Leader 方)。
Leader 方使用各參與方的中間結果和標簽來訓練頂層網絡,再將計算得到的梯度回傳給各參與方來訓練底層網絡。
此方案避免了 Follower 方直接上傳自己的原始數據,保護原始數據不出域,一定程度上保護了隱私安全。然而,攻擊者還是有可能從上傳的中間結果反推出用戶信息,導致存在隱私泄露風險。因此我們需要對訓練時出域的中間結果和梯度提供更強的隱私保護方案,來滿足安全合規要求。
借鑒之前三個場景的安全風險及解決方案可以發現,想要達到中間結果出域后的 “可用不可見”,正是機密計算的 “拿手好戲”。基于 TEE 的縱向聯邦特征保護方案如圖所示[4]。
Follower 方的中間結果通過 secGear 的安全通道加密后傳輸到 Leader 方,Leader 方非安全世界接收到加密的中間結果后中轉到安全世界,在安全世界通過安全通道接口解密。
在安全世界中將中間結果輸入到聯邦拆分層計算模塊,完成結果計算。
以上過程中 Follower 方的中間結果明文只存在于安全世界內存中,對 Leader 方來說就是黑盒子,無法訪問。
展望
2023 年 openEuler secGear 將持續演進,并發布支持零切換、安全通道、遠程證明等功能的穩定版本,可用于構建商用的端到端機密計算解決方案。同時,openEuler 也會持續構建通用的中間件或服務,也期待您的參與貢獻,共同推動機密計算應用生態的發展。secGear 將一如既往地持續關注 AMD SEV、Intel TDX、ARM CCA 等技術,為打造安全易用的機密計算統一開發框架而不懈努力。
審核編輯 :李倩
-
數據
+關注
關注
8文章
7134瀏覽量
89513 -
網絡傳輸
+關注
關注
0文章
139瀏覽量
17449 -
數字經濟
+關注
關注
2文章
1060瀏覽量
18346
原文標題:玩轉機密計算從 secGear 開始
文章出處:【微信號:openEulercommunity,微信公眾號:openEuler】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論