隱私計算是使數據“可用不可見”的技術,它包括了密碼學、人工智能、安全硬件等眾多領域交叉的學科體系。對于隱私計算而言,業界通常分為三大路徑技術:以安全多方計算為代表的密碼學路徑、以可信任執行環境為代表的硬件路徑和以聯邦學習為代表的人工智能路徑。
可信執行環境
可信執行環境的核心思想是構建一個獨立于操作系統而存在的可信的、隔離的機密空間,數據計算僅在 該安全環境內進行,通過依賴可信硬件來保障其安全。可信執行環境的概念源于 Open Mobile TerminalPlatform( OMTP) 于 2006 年提出的一種保護移動設備上敏感信息安全的雙系統解決方案,在傳統系統運行環境( Rich Execution Environment,REE) 之外,提供一個隔離的安全系統用于處理敏感數據。2010 年 7 月,Global Platform( 致力于安全芯片的跨行業國際標準組織,簡稱 GP) 起草制定了一整套可信執行環境系統的體系標準,成為當前許多商業或開源產品定義其各種功能接口的規范參考。
根據全球平臺國際標準組織 (GlobalPlatform)的定義,一個可信執行環境體系主要包括 :
(1)普通執行環境(REE)。普通執行環境是指那些有著豐富功能的環境,如 Android、Windows、iOS 等。這些系統由于廣泛使用,功能不斷增加,結構也越來越復雜,相應地導致安全性普遍不高。
(2)可信執行環境(TEE)。可信執行環境主要指那些與普通執行環境相隔離,用于執行高安全性操作的環境。與普通執行環境相比,可信執行環境的功能相對較少,只保留一些與安全相關的機制,如密鑰管理等,同時提供一些必要的系統功能。
(3)客戶端應用(CA)。所有運行在普通執行環境中的應用都被稱作客戶端應用,其中一些可能需要與可信執行環境通信并要求服務。
(4)可信應用(TA)。可信應用是指那些運行在可信執行環境里的應用。這些應用一般用來為客戶端應用提供特定的安全服務,或處理一些安全任務,如密鑰生成和密鑰管理等。
可信執行環境體系結構的構建方法有多種,總體可以歸結為 3 種 :擴展協處理器、嵌入式協處理器和處理器安全環境。擴展協處理器和嵌入式協處理器都需要額外的處理器作為安全核來處理安全和完整性保護任 務,不同之處在于擴展協處理器將安全核放置在片外,不與主處理器共享任何資源,而嵌入式協處理器將安全核嵌入片內,一般與主處理器共享部分資源。
可信執行環境的最本質屬性是隔離,通過芯片等 硬件技術并與上層軟件協同對數據進行保護,且同時 保留與系統運行環境之間的算力共享。目前,可信執行環境的代表性硬件產品主要有 Intel 的 TXT、ARM 的 TrustZone 等,由此也誕生了很多基于以上產品的商 業化實現方案,如百度 MesaTEE、華為 iTrustee 等。下圖為基于可信執行環境的數據計算平臺技術架構。
嚴格來講,可信執行環境并不屬于“數據可用不可見”,但其通用性高、開發難度低,在通用計算、復雜算法的實現上更為靈活,使得其在數據保護要求不是特別嚴苛的場景下仍有很多發揮價值的空間。
Intel 的可信執行技術
可信執行技術(Trusted Execute Technology,TXT)是Intel公司的可信計算技術,主要通過改造芯片組和CPU,增加安全特性,通過結合一個基于硬件的安全設備—可信平臺模塊(Trusted Platform Module,TPM),提供完整性度量、密封存儲、受保護的I/O、以及受保護的顯示緩沖等功能,主要用于解決啟動進程完整性驗證和提供更好的數據保護。
英特爾稱,TXT技術具備以下保護功能:處理器執行內存、處理器事件處理、系統內存、內存和芯片組路徑、存儲子系統、人為輸入設備和顯卡輸出等。
可信執行技術給硬件平臺增加了許多關鍵功 能?這些功能包括:
(1) 程序執行保護:保護程序執行和存放敏感 數據的內存空間。這項特性允許某個應用程序在一個相對獨立的環境中運行,與平臺上的其他程序不 能互相干擾。沒有任何其他程序能夠監視或讀取在 保護環境中運行的程序數據。每個運行在保護環境 中的程序將從處理器和芯片組那里獲得獨立的系統 資源。
(2) 加密存儲:密封的存儲密鑰和其他在使用 和存儲中易受攻擊的數據。TPM 芯片將可以把密 鑰加密并存儲在硬件中。而集成了 TPM 芯片的系 統將具備解密密鑰的能力。任何企圖從 TPM 系統 中未經授權的拷貝操作都只能得到一堆毫無意義的 亂碼。
(3) 證明系統能夠正確調用可信執行技術?同 時也確保一個運行在保護空間的軟件的校驗值。
(4) 減少由于改進的服務而所需的技術支持費 用;支持分散或遠程計算;鑒別有更高級別保證的平 臺配置。
(5) 內存保護:能夠加強系統資源的保護?增強 了數據機密性和完整性?改進了數據傳輸的安全性 和敏感數據的保護性。
TXT 技術的這些特性使計算平臺在遇到越來越頻繁和越來越復雜的軟件攻擊時更安全。為了實現可信執行技術?計算平臺需要一些硬 件組成部分?主要的硬件元件有:處理器?芯片集?鍵 盤和鼠標?圖形設備?TPM 設備。IA-32架構處理器的擴展允許創建多操作環境? 比如標準區域和保護區域的并存?這樣應用軟件就 可以獨立的被允許在一個受隔離的保護區域。擴展的芯片組加強內存保護機制?加強了訪問內存的數據保護?保護圖形設備和 I/O 設備的通道?并提供了 TPM 的接口。
此外,Intel TXT 需要系統內建 Trusted Computing Group 定義的 TPM v1.2 和特定軟件滿足供部分用途,在部分國家的供貨可能受到當地法規限制。
ARM 的Trust Zone
TrustZone 技術的主要方法是將設備的硬件和軟件資源全部劃分成安全區域和非安全區域,兩個區域之間不能隨意進行數據交換,非安全區域的進程禁止訪問安全區域,以保證存儲在安全區域的資源不被竊取。下面從硬件和軟件兩個層面進行分析。
在硬件層面上,TrustZone 將物理處理器核虛擬成兩個核,一個稱為非安全核(Non-secure,NS),另一個稱為安全核(Secure,S),通過 CP15 的 SCR 寄存器中的 NS 位來表明當前所處的狀態。非安全核只能訪問自己的系統資源,安全核可以訪問所有資源 。在安全核和非安全核之間切換的機制稱為監視器模 式。非安全核的進程可以通過 SMC 指令或者硬件異常機制進入監視器模式,由此獲得安全核的服務。需要注意的是,非安全核的進程只能獲得安全核的服務,并不能訪問安全核的數據。此外,TrustZone 技術在虛擬內存管理、Cache、外圍總線等方面 都做了努力來保證安全核的數據信息不被泄露。
在軟件層面上,TrustZone 實現了安全可信啟動,即在引導加載過程中先啟動安全區域并對啟動狀態做完整性驗證,驗證無誤后再啟動非安全區域,這樣能夠保證系統啟動過程的安全。
目前市面上存在一些基于 TrustZone 的安全技術,如華為 Mate7 手機中使 用的 指 紋識 別 技 術、 蘋果 公司的Secure Enclave 技術、三星公司的 Knox 系統等。但到目前為止,這些技術并沒有挖掘出 TrustZone 的全部潛力,原因在于 :
(1)結構簡單,導致功能比較單一,難以擴展 ;
(2)平臺并不開源,很多開發者不能基于這些安全平臺設計新的可信應用。
因此,搭建一個基于 TrustZone 技術的完善的可信執行環境對于平臺和應用的開發和研究都是非常有利的 。
小結
信任機制是隱私計算廣泛應用的關鍵,隱私計算技術自誕生以來的重要使命便是保證隱私數據在被利用的過程中不被泄露,以 TEE 為代表 的可信硬件也主要應用于個人移動用戶的數據安全保護中。基于 ARM TrustZone 實現的可信執行環境是一種硬件隔離安全機制,以物理方式將系統劃分為安全和非安全組件,確保在正常操作下的軟件無法直接訪問安全區域的數據; 而基于 Intel TXT 實現 的可信執行環境是一種算力和內存隔離的安全機制。而從開源的視角來看,隱私計算的開源項目還是大多集中在聯邦學習領域。