- 隱私計算:推進(jìn)數(shù)據(jù)“可用不可見”的關(guān)鍵技術(shù)
- 閆樹等
- 1477字
- 2022-05-06 17:14:43
? 可信執(zhí)行環(huán)境的實現(xiàn)方案
前面的內(nèi)容中,我們討論的是TEE的概念和理念。應(yīng)用上,TEE通常依賴于具體的技術(shù)廠商提供的不同實現(xiàn)方案,每個方案通過硬件或軟硬件協(xié)同實現(xiàn)隔離的機制各不相同,支持的功能特性也有所差異。目前最具代表的、應(yīng)用最多的技術(shù)方案是ARM的TrustZone和Intel的SGX。
● ARM:TrustZone
TrustZone是最早將TEE落地實現(xiàn)的技術(shù)方案。
2005年,基于OMTP提出的TEE標(biāo)準(zhǔn),ARM公司提出了一種基于硬件虛擬化的TEE實現(xiàn)方案,即TrustZone。TrustZone將系統(tǒng)的硬件和軟件資源一分為二,劃分為兩個執(zhí)行環(huán)境——安全環(huán)境(Secure World)和普通環(huán)境(Normal World),具體架構(gòu)如圖2-14所示。安全環(huán)境擁有更高的執(zhí)行權(quán)限,所有需要保密的操作在安全環(huán)境執(zhí)行,如指紋識別、密碼處理、數(shù)據(jù)加解密、安全認(rèn)證等;而一般的系統(tǒng)操作均在普通環(huán)境中執(zhí)行,且無法訪問安全環(huán)境,以此實現(xiàn)隔離。
開發(fā)者通過使用安全操作系統(tǒng)(secure OS)提供的API開發(fā)更多的可信應(yīng)用來實現(xiàn)特定的安全功能。可信應(yīng)用的執(zhí)行需要通過驗證建立環(huán)環(huán)相扣的信任鏈條,當(dāng)一個程序想要進(jìn)入安全環(huán)境中時,驗證操作系統(tǒng)需要檢查其安全性,只有通過檢驗的程序才能進(jìn)入安全環(huán)境。安全環(huán)境和普通環(huán)境之間通過一個叫作Monitor Mode的模式進(jìn)行轉(zhuǎn)換。

圖2-14 TrustZone架構(gòu)示意圖
TrustZone是標(biāo)準(zhǔn)TEE實現(xiàn)的一種方案,GP的TEE架構(gòu)和規(guī)范標(biāo)準(zhǔn)都是由TrustZone貢獻(xiàn)的。TrustZone的設(shè)計思想是利用CPU時間片切換來模擬一個安全環(huán)境,再配合外部的安全框架和安全OS來執(zhí)行應(yīng)用。只不過在實際落地時,除部署安全OS,TrustZone還需要單獨開發(fā)部署TA。
● Intel:SGX
SGX全稱Software Guard Extension,是Intel在2013年推出的指令集擴(kuò)展,旨在以硬件安全為強制性保障,不依賴于固件和軟件的安全狀態(tài),提供用戶空間的可信執(zhí)行環(huán)境。2015年8月,Intel第六代酷睿處理器Skylake發(fā)布,SGX作為其重要的安全屬性第一次正式發(fā)布。
SGX是與ARM TrustZone截然不同的另一種機制。簡單來說,SGX是一套面向CPU的指令,支持應(yīng)用創(chuàng)建一個安全區(qū),安全區(qū)內(nèi)的代碼通過專門的指令啟動。SGX將這個安全區(qū)域稱為enclave。結(jié)合enclave對應(yīng)的中文含義——飛地,這個概念就有了很直觀的理解。
SGX支持應(yīng)用程序在其地址空間單獨劃分出一個區(qū)域,創(chuàng)建一個enclave,把需要的安全操作全部加載到enclave中,只有enclave內(nèi)部的代碼才能訪問enclave所在的內(nèi)存區(qū)域。一旦軟件和數(shù)據(jù)位于enclave中,即便是操作系統(tǒng)也無法影響enclave里面的代碼和數(shù)據(jù)。
enclave的安全邊界只包含CPU和它自身。一個CPU可以運行多個enclave, enclave之間相互獨立,可以防止單個enclave被破壞后影響整個系統(tǒng)的安全性。也就是說,SGX的整個可信機制都集中在CPU上,因此SGX的部署方式相對靈活簡單,只需要在enclave通過代碼定義即可部署應(yīng)用,如圖2-15所示。

圖2-15 SGX部署示意圖
盡管如此,SGX也存在一些不足。首先是SGX無法抵御側(cè)信道攻擊。enclave只能保護(hù)其內(nèi)運行的代碼,這意味著不受信任的操作系統(tǒng)將保留服務(wù)資源管理任務(wù),這為側(cè)信道攻擊打開了一個很大的缺口。事實上,最近的研究已經(jīng)證明了一些針對SGX的側(cè)信道攻擊是有效的。其次是enclave與外部環(huán)境的交互會增大系統(tǒng)開銷。由于enclave自身無法執(zhí)行系統(tǒng)調(diào)用,需要與不可信區(qū)域進(jìn)行交互。在執(zhí)行系統(tǒng)調(diào)用前需要退出enclave,執(zhí)行完成后再將結(jié)果返回到enclave中,而SGX提供給enclave的可使用內(nèi)存太小,當(dāng)程序數(shù)量和規(guī)模增大時,需要頻繁換進(jìn)換出頁面,導(dǎo)致系統(tǒng)開銷大,也會增加過程中的安全風(fēng)險。
此外,AMD的安全加密虛擬化方案SEV也是比較著名的TEE實現(xiàn)方案之一,且原理與SGX相似,旨在加密運行在AMD CPU服務(wù)器上虛擬機的數(shù)據(jù)。但是2018年有德國研究團(tuán)隊提出了一個攻破方案,可以繞過SEV,恢復(fù)加密虛擬機中的數(shù)據(jù)。另外,國內(nèi)的兆芯和海光分別提出了名為TCT和CSV的可信執(zhí)行環(huán)境方案,兆芯的TCT基于可信平臺控制模塊(TPCM)實現(xiàn),而海光的CSV則是對硬件虛擬機技術(shù)的擴(kuò)展。具體的技術(shù)方案,此處不再贅述,讀者可以通過表2-1對上述5種方案進(jìn)行簡要的對比。
表2-1 5種代表性的TEE方案對比

續(xù)表

- 白話網(wǎng)絡(luò)安全2:網(wǎng)安戰(zhàn)略篇
- 信息安全導(dǎo)論(在線實驗+在線自測)
- 計算機網(wǎng)絡(luò)安全技術(shù)(第6版·慕課版)
- Metasploit Penetration Testing Cookbook(Second Edition)
- API安全實戰(zhàn)
- 白帽子講Web安全(紀(jì)念版)
- 可信計算3.0工程初步
- Mastering Kali Linux for Advanced Penetration Testing
- 同態(tài)密碼學(xué)原理及算法
- 網(wǎng)絡(luò)空間安全實驗
- 互聯(lián)網(wǎng)企業(yè)安全高級指南
- 實用黑客攻防技術(shù)
- Mastering Malware Analysis
- Android Application Security Essentials
- Securing Network Infrastructure