1. 關于TrustZone
TrustZone技術是ARM公司開發(fā)的一種系統(tǒng)安全擴展技術。TrustZone技術的主要目標是保證嵌入式系統(tǒng)的安全,防止系統(tǒng)中的敏感數據發(fā)生安全泄漏或者系統(tǒng)中的關鍵功能遭到惡意程序的攻擊。TrustZone的技術架構如下圖所示:
TrustZone通過軟硬結合的方式對整個系統(tǒng)進行了資源劃分,并將其中一部分劃為安全域,另一部分劃為普通域。安全域為整個系統(tǒng)提供相應的安全服務,既可以僅運行一個安全服務,也可以運行一個完整的操作系統(tǒng);普通域則是一個傳統(tǒng)的通用操作系統(tǒng)。兩個執(zhí)行區(qū)域之間相互獨立,一般地,二者的系統(tǒng)運行時均不會受到對方的影響。
為確保系統(tǒng)內安全域和普通域之間的獨立性,安全域中的敏感數據由其內部設備進行管理。支持TrustZone技術的系統(tǒng)在其安全域和普通域中各自擁有獨立的地址映射表,使得兩個執(zhí)行區(qū)域內的地址轉換完全獨立,從而杜絕了安全域在地址轉換過程中受到攻擊的可能性。
1.1 TrustZone 的CPU架構
ARM處理器在實現TrustZone技術時通常會被劃分為兩個虛擬內核,稱之為普通態(tài)和安全態(tài),分別負責運行系統(tǒng)中普通域和安全域內的任務。
如上圖所示,以ARMv8為例,系統(tǒng)處于普通態(tài)時,EL0中一般執(zhí)行普通的用戶程序;EL1中一般運行通用操作系統(tǒng)內核等特權軟件;EL2用于實現虛擬化技術,一般運行支持虛擬化技術的相關代碼。出于系統(tǒng)安全考慮,普通域內不存在EL3模式。當系統(tǒng)處于安全態(tài)時,EL0中通常運行如加密、解密等安全相關的安全服務;EL1中的軟件負責為其上層應用提供支持;EL3模式具有整個系統(tǒng)的最高權限,一般運行系統(tǒng)的底層固件如用于切換執(zhí)行區(qū)域的安全監(jiān)控器。在安全域中,通常不存在EL2模式,但ARMv8.4發(fā)布后,開發(fā)者可以根據實際需要使用。
1.2 TrustZone 的軟件架構
安全域內的應用主要負責為系統(tǒng)提供具體的安全服務,如敏感數據的加解密、安全儲存等。可信內核主要用于支持上層應用的正常運行,負責處理安全域中的安全中斷、與普通域間的通信以及為上層應用提供統(tǒng)一的安全接口等。
普通域內用戶空間的應用通常不會感知到TrustZone的存在,系統(tǒng)會通過用戶空間為這些應用提供相應的接口。在執(zhí)行區(qū)域間相互通信時,通常使用消息隊列等方式進行,這些數據結構所處的內存被稱為共享內存。由于安全域和普通域內的軟件都需要對共享內存中的數據進行操作,且系統(tǒng)處于普通態(tài)時無法獲取安全域內 的任何資源,故共享內存必須為非安全內存。
安全域內的安全服務在接收到經由可信內核處理的信息后,將處理相應請求并把結果發(fā)送到對應的共享內存,最終返回普通域。
1.3 基于TrustZone的TEE
基于TrustZone的技術特性,可信執(zhí)行環(huán)境可作為一個獨立的執(zhí)行環(huán)境運行在ARM處理器的安全域中,并為整個系統(tǒng)提供靈活的安全服務。TEE標準的系統(tǒng)架構如下圖所示。
其中可信執(zhí)行環(huán)境由可信操作系統(tǒng)(Trusted OS,TOS)、可信應用(Trusted Application,TA)組成。TOS負責管理TEE內的軟硬件資源以及為TA提供其運行需要的資源和接口。TA則負責為REE內的程序提供具體的安全服務。在TEE內部,TA之間也是相互獨立的,除非通過特殊的API接口,否則它們無法直接訪問其它TA內的資源。
2. 關于雙操作系統(tǒng)
為同時保證系統(tǒng)的功能性及實時性的需求,將實時系統(tǒng)與非實時系統(tǒng)整合在同一硬件平臺上可以組成雙操作系統(tǒng)架構。在該架構中,實時系統(tǒng)負責處理實時任務及一些安全相關的任務,非實時系統(tǒng)負責處理功能相對復雜但實時性要求較低的非關鍵任務。雙操作系統(tǒng)架構的性能取決于多個指標如復雜度、獨立性和實時響應時間等。這些指標之間往往相互矛盾,很難達到完美。
雙操作系統(tǒng)的實現同樣有兩種形式,一種是雙內核操作系統(tǒng),另一種基于虛擬化技術。
2.1 雙內核系統(tǒng)
雙內核系統(tǒng)將一個小的實時操作系統(tǒng)(RTOS)內核置于通用操作系統(tǒng)(GPOS)的底層,并把GPOS 作為該系統(tǒng)內的一個實時任務運行。
雙內核系統(tǒng)具有較低的運行開銷且不需要任何硬件的額外支持,但是該架構需要大幅修改GPOS的內核代碼,顯著降低了系統(tǒng)的靈活性。而且,雙內核系統(tǒng)中RTOS和GPOS間的獨立性較差,當GPOS遭到惡意攻擊或其本身運行發(fā)生錯誤時,RTOS內的高關鍵度任務也會因此而無法正常運行。
2.2 虛擬化雙系統(tǒng)
虛擬化技術將RTOS和GPOS作為兩個虛擬機同時運行在同一硬件平臺上,兩個虛擬機由虛擬機管理器(Hypervisor)負責管理。
虛擬化使得操作系統(tǒng)之間具有較好的獨立性,操作系統(tǒng)的數量也不僅限于GPOS和RTOS兩個,同時,所有上層的操作系統(tǒng)均不需要做任何修改,具有良好的靈活性。但是該技術會為整個系統(tǒng)帶來較大的額外開銷,降低了RTOS和GPOS的性能,同時虛擬機管理器必須重新設計以滿足系統(tǒng)實時性的要求。
3. 雙操作系統(tǒng)支持TrustZone
利用TrustZone技術,可以在安全域內運行嵌入式實時操作系統(tǒng),負責處理關鍵度較高的實時任務,普通域內運行Linux內核,負責處理關鍵度較低的通用任務。若普通域內的相關任務不需要和安全域相互通信,則Linux內核僅需要做極少量的修改,且在運行過程中將無法感知到安全域的存在,其內部程序也無法訪問安全域內的任何資源,保證了安全域的獨立性。若普通域中有程序需要使用安全域內提供的系統(tǒng)服務,可在Linux內核中添 加TrustZone驅動,該驅動將負責通過安全監(jiān)控器與安全域間傳遞數據,普通域的用戶層通常還需添加TrustZone相關的庫,用于為用戶程序提供TrustZone相關的API接口。
其中,安全監(jiān)控器在系統(tǒng)中主要負責執(zhí)行區(qū)域間的切換,具體包括:
(1)響應兩個執(zhí)行區(qū)域的指令。
(2)在通用操作系統(tǒng)運行期間負責響應安全中斷,并將中斷交由安全域中實時操作系統(tǒng)的中斷處理程序處理。
(3)當發(fā)生執(zhí)行區(qū)域間的切換時,負責保存并恢復相關上下文等具體的切換工作。
3.1 中斷處理機制
系統(tǒng)將所有中斷劃分為安全中斷和非安全中斷,其中非安全中斷由普通域的Linux負責處理,安全中斷則由TrustZone 中的RTOS負責處理。
若安全域產生了非安全中斷,為保證當前安全域內運行的關鍵任務可以正確執(zhí)行,系統(tǒng)將暫時忽略該中斷,也就是說,RTOS運行時,IRQ中斷會一直處于屏蔽狀態(tài),待關鍵任務執(zhí)行完畢,系統(tǒng)切換至普通域后,該中斷才會由Linux負責處理。若普通域產生了安全中斷,為確保安全域內關鍵任務的實時響應能力,系統(tǒng)將立刻通過安全監(jiān)控器將系統(tǒng)切換至安全域處理中斷。
3.2 調度策略
雙操作系統(tǒng)中的調度算法需要建立合適的任務模型。為了判斷系統(tǒng)中相應任務集的可調度性,一般需要計算所有任務的最壞響應時間。在確定了任務響應時間的分析方法后,需要一個算法為系統(tǒng)內所有任務分配各自的優(yōu)先級。完成優(yōu)先級排序后,將根據該優(yōu)先級序列調度任務集中的任務運行。
一般地,可以采用兩級調度策略,第一級是兩個操作系統(tǒng)間的調度,由RTOS負責,采用固定優(yōu)先級與時間片輪轉相結合的調度策略。為使RTOS內的調度器可以調度Linux的運行,RTOS內部始終存在兩個區(qū)域切換任務。當RTOS調度到區(qū)域切換任務時,將通過相應接口切換至Linux中運行。其中,一個任務作為RTOS的空閑任務運行;另一個任務用于降低Linux內核的響應時間,提高用戶的使用體驗,減小對其性能的影響。
4.小結
如果通過TrustZone 技術來實現TEE以支持隱私計算,那么,雙操作系統(tǒng)可能是一個潛在的解決方案,同樣地要處理諸如中斷和調度等問題,或許,可以看作是分布式操作系統(tǒng)的一個特例。
審核編輯:劉清
-
轉換器
+關注
關注
27文章
8885瀏覽量
150209 -
ARM處理器
+關注
關注
6文章
361瀏覽量
42365 -
RTOS
+關注
關注
24文章
837瀏覽量
120589 -
虛擬機
+關注
關注
1文章
955瀏覽量
28893 -
LINUX內核
+關注
關注
1文章
317瀏覽量
22106
原文標題:隱私計算之TEE的雙操作系統(tǒng)支撐
文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
embOS如何支持Arm TrustZone

HPM6750evkmini如何實現可信的執(zhí)行環(huán)境?
介紹Cortex-A和Cortex-M的TrustZone之間的差異
如何在Arm計算平臺中實現機密計算
ARMv8-M trustzone IOT安全之基于Cortex-M33核的TFM測試
TSC峰會回顧04 | 異構計算場景下構建可信執(zhí)行環(huán)境
了解體系結構-適用于AArch64的TrustZone介紹
異構計算場景下構建可信執(zhí)行環(huán)境
網格服務中虛擬計算環(huán)境的可信保證機制
可信計算平臺管理中心的設計與實現
基于TrustZone的移動終端云服務安全接入方案

云環(huán)境下集合隱私計算
可信執(zhí)行環(huán)境(TEE)研討會_為數字服務和設備提供安全
用基于英特爾? SGX 的可信執(zhí)行環(huán)境有效應對大語言模型隱私和安全挑戰(zhàn)

喜報|易華錄自研隱私計算平臺通過信通院“可信隱私計算”測試

評論