隱私計算中可信執行環境的一知半解

danny_2018發表於2022-11-14

隱私計算是使資料“可用不可見”的技術,它包括了密碼學、人工智慧、安全硬體等眾多領域交叉的學科體系。對於隱私計算而言,業界通常分為三大路徑技術:以安全多方計算為代表的密碼學路徑、以可信任執行環境為代表的硬體路徑和以聯邦學習為代表的人工智慧路徑。

老碼農在瞭解了《從隱私到隱私計算》之後,對《隱私計算之全同態加密》和《隱私計算中的聯邦學習》學習之後,如果不再瞭解一下可信執行環境,總覺得有點悵然若失。儘管“紙上得來終覺淺”,但與“一無所知”相比, 聊勝於無,略覺心安。

可信執行環境

可信執行環境的核心思想是構建一個獨立於作業系統而存在的可信的、隔離的機密空間,資料計算僅在 該安全環境內進行,透過依賴可信硬體來保障其安全。可信執行環境的概念源於 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 實現 的可信執行環境是一種算力和記憶體隔離的安全機制。而從開源的視角來看,隱私計算的開源專案還是大多集中在聯邦學習領域。

來自 “ 半吊子全棧工匠 喔家ArchiSelf ”, 原文作者:喔家ArchiSelf;原文連結:https://mp.weixin.qq.com/s/unDwbJgq938-j6I7n2CwEw,如有侵權,請聯絡管理員刪除。

相關文章