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