隱私計算的硬件方案:「可信執行環境TEE」兼顧數據安全、隱私保護
隨著移動互聯網和云計算技術的迅猛發展,越來越多的數據在云環境下進行存儲、共享和計算,云環境下的數據安全與隱私保護也逐漸成為學術界以及工業界關注的熱點問題。目前階段,隱私保護技術主要基于密碼算法及協議(如安全多方計算、同態加密等)完成場景落地,其優點主要在于具有較高的安全性和可靠性,然而,由于這些算法或協議的實現依賴于大量復雜計算(如乘法循環群上的乘法、指數運算,Pairing 運算,格上的數學運算等),因此存在較大的性能瓶頸,難以在實際場景中大規模應用。作為基于密碼學的隱私保護技術的一種替代方案,可信執行環境(Trusted execution environment,TEE)基于硬件安全的 CPU 實現了基于內存隔離的安全計算,可在保證計算效率的前提下完成隱私保護的計算。本文將闡釋梳理 TEE 的概念定義及發展脈絡,剖析 TEE 與基于密碼學的隱私保護技術的對比及其在聯邦學習中的應用,最后介紹 TEE 的現有框架和相關應用。
一、TEE 定義與發展脈絡
概念及辨析:TEE 與 REETEE 是一種具有運算和儲存功能,能提供安全性和完整性保護的獨立處理環境。其基本思想是:在硬件中為敏感數據單獨分配一塊隔離的內存,所有敏感數據的計算均在這塊內存中進行,并且除了經過授權的接口外,硬件中的其他部分不能訪問這塊隔離的內存中的信息。以此來實現敏感數據的隱私計算。富執行環境 (Rich Execution Environment,REE) 指的是操作系統運行時的環境中,可以運行如 Android、IOS 等通用的 OS(Opreating System)。REE 是一個容易受到攻擊的開放環境,如敏感數據的竊取、移動支付盜用等等。而 TEE 是中央處理器上的一個安全區域,能夠保證敏感數據在隔離和可信的環境內被處理,從而免受來自 REE 中的軟件攻擊。此外,與其他的安全執行環境相比,TEE 可以端到端地保護 TA(Trusted Application)的完整性和機密性,能夠提供更強的處理能力和更大的內存空間。在下圖這一典型的可信執行環境架構中,TEE 內部為 REE 中的軟件提供了接口,使得 REE 中的軟件可以調用 TEE 對數據進行處理,但不會泄露敏感數據。
TEE 與 REE 關系圖示
TEE 強大的數據安全和隱私保護能力,使其成為隱私計算主要技術流派之一,比 REE 得到了更廣泛的應用。
TEE 的定義論述完 TEE 的概念后,接下來進一步解析 TEE 的深層定義。目前對于 TEE 的定義有很多種形式,針對于不同的安全性需求和平臺,TEE 的定義也不盡相同,但在所有 TEE 的定義中都會包含兩個最關鍵的點:獨立執行環境和安全存儲。在 GlobalPlatform, TEE System Architecture, 2011 中,GlobalPlatform 將 TEE 定義如下:TEE 是一個與設備操作系統并行,但相互隔離的執行環境。TEE 可以保護其中的數據免受一般的軟件攻擊,TEE 可以使用多種技術實現,在不同的技術實現下 TEE 的安全性等級也會有所不同。在 IEEE International Conference on Trust 2015 上,Mohamed Sabt 等人使用分離核(separation kernel)對 TEE 進行了嶄新的更一般化的定義。分離核最早用于模擬分布式系統,其需要滿足以下安全性準則:1. 數據獨立(data separation):儲存在某個分區中的數據不能被其他的分區讀取或篡改。2. 時間隔離(temporal separation):公共資源區域中的數據不會泄露任意分區中的數據信息。 3. 信息流控制(Control of information flow):除非有特殊的允許,否則各個分區之間不能進行通信。4. 故障隔離(Fault isolation):一個分區中的安全性漏洞不能傳播到其他分區。基于分離核的安全性特質,TEE 可被定義成「一個運行在分離核上的不可篡改的執行環境。」 也就是說,TEE 可以保證其內部代碼的安全性,認證性和完整性;可以向第三方證明它的安全性;可以抵抗幾乎所有的對主要系統的軟件攻擊和物理攻擊;可以有效杜絕利用后門安全漏洞所展開的攻擊。
TEE 發展脈絡及現狀TEE 技術最早可以追溯到 2006 年。開放移動終端平臺(Open Mobile Terminal Platform ,以下簡稱 OMTP))率先提出一個針對移動終端的雙系統安全解決方案,即在同一個終端系統下同時部署兩個操作系統,其中一個是常規的操作系統,另一個是隔離的安全操作系統。其中,安全操作系統運行在隔離的硬件環境中,專門處理敏感信息以保障其安全性。在 OMTP 方案的基礎上,ARM 公司提出了一種硬件虛擬化技術 TrustZone 及其相關的硬件實現方案,并于 2008 年第一次發布了 Trustzone 技術白皮書。目前 ARM 是移動端最具影響力的方案供應商,其 TEE 技術也在行業內處于主導地位:高通的驍龍 835/845 系列芯片,海思的麒麟 950/960 系列芯片,聯發科的 HelioX20、X25、X30,三星的 Exynos8890、7420、5433 等移動端主流處理器的芯片均基于 ARM 結構,并且它們采用的 TEE 技術也基于 ARM 結構。除此之外,還有一種比較主流的可信執行環境產品是 Intel 公司推出的 SGX(Software Guard Extensions)。2010 年 7 月,Global Platform(以下簡稱 GP)正式提出了 TEE 的概念,并從 2011 年開始起草制定相關的 TEE 規范標準,針對 TEE 系統設計了一系列規范,對應用接口,應用流程,安全存儲,身份認證等功能進行了規范化。GP 是跨行業的國際標準組織,致力于制定和發布基于硬件安全的技術標準。GP 組織制定和發布的國際標準被稱為 GP 標準。此外 GP 組織還設立了 TEE 檢測認證體系,對 TEE 產品進行功能檢測并頒發證書,國際上大多數基于 TEE 技術的 Trust OS 都遵循了 GP 的標準規范。國內,銀聯自 2012 年起與產業鏈合作開始制定包括 TEE 硬件、TEE 操作系統、TEE 基礎服務和應用等各個層面的規范標準,并且于 2015 年通過技術管理委員會的審核發布銀聯 TEEI 規范。2017 年初,人民銀行開始制定 TEE 各層面的需求類規范。2020 年 7 月,中國信通院發布聯合 20 家單位共同參與制定的標準《基于可信執行環境的數據計算平臺 技術要求與測試方法》。
二、TEE 與其他隱私計算技術
TEE 與安全多方計算、同態加密對比安全多方計算(MPC)、同態加密是和 TEE 一樣各有所長的隱私計算技術。MPC 與同態加密是密碼學領域最主流的兩種隱私計算技術,這兩種技術一般在數學上的困難性假設基礎均可證明安全,因此它們具有邏輯嚴謹、可解釋性強、可證明安全等特點,但是安全性的提升也導致了較高的計算或通信復雜度,讓兩種技術的可用性受到了一定限制。例如,同態加密的加解密過程中群上的大數運算帶來的計算開銷,同態加密的密文長度增長以及安全多方計算技術中多輪通信帶來的通信開銷等,雖然存在針對這些問題的大量優化方案,但是其性能瓶頸仍未從根本上解決。因此通用型 MPC 協議很難在大規模計算環境下廣泛應用,更多是針對特定問題的 MPC 協議,如隱私信息檢索(PIR)、隱私集合求交(PSI)等,而同態加密技術則大多僅應用于某些計算協議中關鍵步驟的計算。與 MPC 和同態加密相比,TEE 可被視為密碼學與系統安全的結合,既包含底層的密碼學基礎,又結合硬件及系統安全的上層實現,其安全性來源于隔離的硬件設備抵御攻擊的能力,同時避免了額外的通信過程以及公鑰密碼學中大量的計算開銷。其缺點也在于其安全性很大程度上依賴于硬件實現,因此很難給出安全邊界的具體定義,也更容易遭受來自不同攻擊面的側信道攻擊。此外,目前 TEE 的安全性標準主要由 GlobalPlatform 制定,通過 GlobalPlatform 安全性認證的產品也比較少,如何進一步制定明確的 TEE 安全性標準也是一個難題。TEE、MPC 和同態加密的對比如下表:
TEE 在聯邦學習中的應用TEE 作為基于硬件的隱私計算技術,可通過與聯邦學習相結合來保障計算效率和安全性。聯邦學習是近年來興起的一種嶄新的機器學習技術,類似于隱私保護下的分布式學習,多個參與方利用自己的數據聯合訓練一個模型,但每個參與方的數據都不會被暴露。其核心理念是:數據不動模型動,數據可用不可見。在橫向聯邦學習中,需要每個參與方(party)獨立地根據自己手中的數據訓練模型,然后將梯度等模型參數上傳到服務端(server)并由服務端進行聚合操作,接著生成新的模型分發給各個參與方。在這一過程中,雖然原始數據仍然只保存在每個參與方手中,但實際上攻擊者可從梯度信息恢復出原始數據。為解決上述問題,在實際應用中大多通過加噪或同態加密的方式對梯度信息進行保護。此外,也可由 TEE 來替代上述場景中的參數服務器,即在可信執行環境中進行聯邦學習的參數聚合,假設 TEE 是可信的,則可以通過簡單的數字信封的形式實現可信執行環境與計算節點之間的交互,由此省略了復雜的同態加密計算過程,使聯邦學習訓練的效率大幅提升。本文以 FLATEE 框架為例,簡要介紹 TEE 技術在聯邦學習中的應用。如下圖所示,在 FLATEE 中,TEE 可以生成用于傳輸數據和代碼的對稱加密密鑰和公鑰。參與方在 TEE 中根據自己的數據訓練模型,然后使用這些密鑰對模型參數進行加密,并上傳至服務端。接收到加密的模型參數后服務端在 TEE 中對加密的模型進行解密,接著通過聚合操作得到新的模型。如果新模型的損失函數在閾值之下,便可宣布算法完成,并把新模型通過 TEE 生成的密鑰加密后發送給各個參與方,否則就再進行新一輪的迭代訓練,直至到達迭代次數上限或模型訓練成功為止。在這個模型中,TEE 同時承擔了加解密和隔離計算的功能,可以在不損失計算效率的前提下有效地保障聯邦學習算法的安全性。
圖片來源文獻 5
三、TEE 框架和應用
隨著 TEE 技術和標準的日趨成熟,基于 TEE 的開發框架和應用也不斷涌現。如下表所示,目前很多公司都開發了其相應的 TEE 系統。其中諾基亞和三星已經公開了各自的 TEE 框架。諾基亞和微軟整合的 TEE 框架稱為 ObC,目前已經部署在諾基亞流光設備上。三星的 TEE 框架名為 TZ-RKP, 已經部署在三星的 Galaxy 系列設備上。此外,還有一些未公開的 TEE 框架,如 Trustonic 的 < t-base 框架,Solacia 的 SecuriTEE,Qualcomm 的 QSEE,Sierraware 的 SierraTEE 等等。
表格來源文獻 1
TEE 可以在一個復雜且相互聯系的系統中提供良好的安全性,目前多數 TEE 應用場景均指向智能手機端。在該場景下,TEE 能夠提供的安全性服務包括:隱私保護的票務服務、在線交易確認、移動支付、媒體內容保護、云存儲服務認證等等。此外,TEE 也可在僅基于軟件的情況下實現 TPM(Trusted Platform Module),目前的一個研究趨勢是使用 TEE 去保障各種嵌入式系統平臺的安全,如傳感器和物聯網等。基于硬件的 TEE 技術具有很高的實現效率,但這也導致它較為依賴底層的硬件架構,與一般的安全多方計算相比,TEE 具有如下優勢和劣勢:
優勢:
- 可信硬件部分可支持多層次、高復雜度的算法邏輯實現
- 運算效率高,相較于明文計算僅有 3-4 倍損耗,而 MPC 等技術具有上百倍的計算損耗
- 能夠抵御惡意敵手
劣勢:
- 方案實現依賴底層硬件架構
- 更新升級需要同步進行軟硬件升級
- 不同廠商的 TEE 技術各異,需要形成統一的行業標準
根據 TEE 技術的優勢和劣勢,可以總結出 TEE 技術適用于以下應用場景:
- 計算邏輯相對復雜的計算場景
- 數據量大,數據傳輸和加解密的成本較高
- 性能要求較高,要求在較短時間內完成運算并返回結果
- 需要可信第三方參與的隱私計算場景,且數據(部分或間接)可被可信第三方獲取或反推
- 數據的傳輸與使用環境與互聯網直接接觸,需要防范來自外部的攻擊
- 數據協作的各方不完全互信,存在參與各方惡意攻擊的可能
其中已落地的最常見應用場景包括:隱私身份信息的認證比對、大規模數據的跨機構聯合建模分析、數據資產所有權保護、鏈上數據機密計算、智能合約的隱私保護等。
四、總結
作為一種新興的系統安全與隱私保護技術,TEE 技術實現了安全性與可用性之間較好的平衡,是當前傳統公鑰密碼學性能受限情況下的一個較好的替代方案,在適當的應用場景中可以作為一些計算協議中的信任根來減少為了去信任引入的性能代價。然而目前 TEE 技術還無法作為通用的安全技術進行應用,主要原因在于其安全性一定程度上依賴于對硬件廠商的信任,同時攻擊面較多、安全邊界定義不清晰,這都成為了限制其大規模應用的重要因素。對于用戶而言,在 TEE 技術的應用過程中,需要清晰地了解其應用場景和局限性,以免造成不可預知的安全問題和財產損失。