以ARM TrustZone為代表的TEE技術(shù)一直以來都是學(xué)術(shù)界的研究熱點,TEE系統(tǒng)近年來在終端設(shè)備、車載設(shè)備、物聯(lián)網(wǎng)設(shè)備、服務(wù)器等不同平臺也得到了越來越廣泛的應(yīng)用。上海交通大學(xué)IPADS實驗室一直以來致力于產(chǎn)學(xué)研一體化,以研究推動產(chǎn)業(yè),以產(chǎn)業(yè)促進(jìn)研究。實驗室利文浩博士在連續(xù)發(fā)表多篇TEE相關(guān)研究論文的同時,于2015年1月創(chuàng)建上海瓶缽信息科技有限公司,在四年內(nèi)將自主研發(fā)的TEE操作系統(tǒng)T6成功實現(xiàn)商用化,并部署在上億臺手機(jī)、車載等設(shè)備。近日,受ACM SIGMOBILE邀請,以利文浩同學(xué)為一作的研究論文“Research on ARM TrustZone”于2018年12月正式發(fā)表在《ACM GetMobile》雜志第22卷第3期,并成為該雜志封面推薦文章。
?
為了方便與國內(nèi)產(chǎn)業(yè)人員分享,瓶缽信息科技的同學(xué)們將論文翻譯成了中文。有興趣閱讀原文的同學(xué)也可直接訪問ACM鏈接:ACM GetMobile (https://dl.acm.org/citation.cfm?id=3308755)或者瓶缽網(wǎng)站:瓶缽論文與研究報告(https://trustkernel.com/downloads/)。
#ARM TrustZone的研究
ARM TrustZone是一種基于硬件的安全隔離功能,它為軟件提供高權(quán)限和獨立的執(zhí)行環(huán)境。
硬件隔離通常被認(rèn)為比純軟件隔離更值得信賴,因此基于芯片隔離的執(zhí)行環(huán)境也被稱為可信執(zhí)行環(huán)境(TEE,Trusted Execution Environment)。 TrustZone技術(shù)是在2002年被提出,但直到2013年蘋果發(fā)布iPhone 5s才得到廣泛應(yīng)用。其中,蘋果公司利用TrustZone來保護(hù)其Touch ID的數(shù)據(jù):就算iOS系統(tǒng)受到損害,用戶的指紋數(shù)據(jù)仍然處于安全狀態(tài)。2017年,谷歌使TEE成為Android設(shè)備的強(qiáng)制性要求。如今幾乎所有的手機(jī)和平板電腦都部署了TEE。同時ARM將TrustZone集成到ARM64和ARMv8-M中,以支持更廣泛的平臺包括服務(wù)器和物聯(lián)網(wǎng)設(shè)備。
TrustZone 提供的架構(gòu)特征對研究人員非常具有吸引力。 許多研究人員試圖回答一個問題:“使用TrustZone的正確方式是什么?”,并提出了許多探索不同用法的系統(tǒng)。不同的系統(tǒng)用法要解決許多挑戰(zhàn):第一,系統(tǒng)應(yīng)該易于使用。為了解決這問題, 一些研究人員建議將TrustZone整合到現(xiàn)有的系統(tǒng)中,并盡可能減少對用戶的干擾。 第二,添加到安全區(qū)的代碼應(yīng)盡可能少。TEE提供的功能應(yīng)該是通用的,以保持盡可能小的可信計算基(TCB,Trusted Computing Base)。 第三,該系統(tǒng)應(yīng)該是可部署的,新設(shè)計的安全方案不應(yīng)該對現(xiàn)有系統(tǒng)軟件或應(yīng)用進(jìn)行重大修改。除了以上三點,還有其他一些挑戰(zhàn),如可擴(kuò)展性、攻擊面、性能等等,這部分內(nèi)容本文將在稍后討論。
硬件和軟件:自從ARMv6架構(gòu)提出ARM TrustZone [1]后,該架構(gòu)覆蓋了處理器、內(nèi)存和外設(shè)的ARM片上系統(tǒng)(SoC)的安全擴(kuò)展。對于處理器部分,TrustZone將其分成兩個執(zhí)行環(huán)境,一個正常的執(zhí)行環(huán)境和一個安全的執(zhí)行環(huán)境(如下圖所示)。 兩個執(zhí)行環(huán)境都有彼此的用戶空間和內(nèi)核空間,以及緩存、內(nèi)存和其他資源。
?
正常的執(zhí)行環(huán)境不能訪問安全的執(zhí)行環(huán)境,而后者可以訪問所有的資源。基于這種有限制的權(quán)限,正常的執(zhí)行環(huán)境可以運行操作系統(tǒng)(如Android、、Ubuntu、RTOS等),提供一個豐富的執(zhí)行環(huán)境(REE,Rich Execution Environment)。 同時,安全的執(zhí)行環(huán)境使用安全的內(nèi)核(TEE-kernel)。在監(jiān)控模式下運行的安全監(jiān)控器主要用于 兩個執(zhí)行環(huán)境之間的相互切換,通常使用被稱為“安全監(jiān)控呼叫”(smc)的特殊指令用于執(zhí)行環(huán)境的切換。
內(nèi)存分區(qū):TrustZone將內(nèi)存分為兩部分:正常內(nèi)存和安全內(nèi)存,它們分布在正常的執(zhí)行環(huán)境和相應(yīng)的安全執(zhí)行環(huán)境中。同樣,TrustZone確保正常的執(zhí)行環(huán)境不能訪問內(nèi)存被標(biāo)記為安全的部分,而安全的執(zhí)行環(huán)境可以訪問整個物理內(nèi)存。有了這個功能,兩個世界可以通過使用一段共享內(nèi)存來相互通信。此外,內(nèi)存分區(qū)可以由安全的執(zhí)行環(huán)境動態(tài)控制,這使安全執(zhí)行環(huán)境的安全服務(wù)能夠動態(tài)保護(hù)內(nèi)存的某些部分內(nèi)容。
外設(shè)分區(qū):對于I / O設(shè)備和中斷,TrustZone也將它們分成兩個執(zhí)行環(huán)境。 一個I / O設(shè)備可以分配給一個特定的執(zhí)行環(huán)境。 TrustZone確保正常的執(zhí)行環(huán)境不能訪問安全環(huán)境的I / O設(shè)備,而安全的環(huán)境可以控制整個系統(tǒng)的設(shè)備。對于每個中斷,TrustZone都可以指定由哪一個執(zhí)行環(huán)境來處理它。 當(dāng)安全中斷到達(dá)時,TrustZone會將處理器切換到安全的環(huán)境來處理它。 與內(nèi)存類似,I / O設(shè)備和中斷的分區(qū)可以由安全領(lǐng)域動態(tài)配置。
安全啟動:TEE內(nèi)核利用安全啟動來強(qiáng)制自己的完整性。 一旦設(shè)備啟動,處理器將首先進(jìn)入安全環(huán)境并將TEE圖像加載到內(nèi)存。然后檢查加載的圖像的簽名,以確保TEE圖像已經(jīng)由合法機(jī)構(gòu)(通常是設(shè)備提供商)正確簽名。如果檢查失敗,硬件將停止并掛起。 該檢查在啟動過程的最初階段完成,無法繞過。 初始化啟動后,后續(xù)安全性由TEE軟件執(zhí)行。
TrustZone提供了非常有趣的體系結(jié)構(gòu)功能,使其成為系統(tǒng)安全的理想選擇。
首先,TEE與REE是隔離的。用戶不需要信賴Android等這樣的復(fù)雜REE操作系統(tǒng),機(jī)密數(shù)據(jù)可以在TEE中存儲和訪問,即使惡意軟件完全控制了REE,也可以保護(hù)機(jī)密數(shù)據(jù)。典型的REE攻擊有iOS上的越獄軟件或Android上的ROOT。
其次,TEE比REE具有更高的執(zhí)行權(quán)限,使其能夠監(jiān)視和檢查REE的運行狀態(tài),如掃描所有REE內(nèi)存以進(jìn)行入侵檢測、完整性保護(hù)等。一個挑戰(zhàn)是TEE和REE之間的語義鴻溝,因為TEE只能訪問原始內(nèi)存數(shù)據(jù),而沒有任何數(shù)據(jù)語義,這個問題與經(jīng)典的VMI(VM Introspection)類似,解決辦法可以通過TEE和REE之間的軟件協(xié)作。
第三,TEE可以控制所有的外圍設(shè)備。與其他硬件平臺(如Intel SGX)上的TEE不同,TrustZone是一個全系統(tǒng)功能,可以承載用戶和系統(tǒng)邏輯,并且可以動態(tài)控制外圍分區(qū)。通過將輸入和輸出設(shè)備劃分到安全執(zhí)行環(huán)境,它成為保護(hù)從設(shè)備到用戶的I / O路徑(可信路徑,Trusted Path)的一種非常好的方式。
TrustZone的功能為增強(qiáng)基于ARM平臺系統(tǒng)的安全性提供了新的機(jī)遇,包括手機(jī)、云服務(wù)器、物聯(lián)網(wǎng)設(shè)備等。目前大部分相關(guān)研究都在手機(jī)平臺上,而針對服務(wù)器和物聯(lián)網(wǎng)平臺的研究尚不多。
TrustZone的典型用法是在安全環(huán)境中承載一些固定功能,如生物識別認(rèn)證、一次性密碼,加密功能、安全存儲等,這些功能作為系統(tǒng)的通用安全服務(wù)提供。 普通執(zhí)行環(huán)境中的應(yīng)用程序可以通過API調(diào)用這些功能,但不能將自定義邏輯安裝到安全的世界中。
TLR(可信語言運行時)[2] 使開發(fā)人員能夠?qū)?yīng)用程序的安全敏感邏輯與其他安全敏感邏輯分開,以便在安全執(zhí)行環(huán)境中將其隔離開來。 它將.NET運行時的邏輯分為兩部分,一部分在正常的執(zhí)行環(huán)境中,另一部分在安全的環(huán)境,并為開發(fā)人員提供四個用于存儲和訪問機(jī)密數(shù)據(jù)的新原語。 TLR的TCB比開源的.NET運行時Mono小78倍。 該框架也可以應(yīng)用于Java運行時。
Rubinov和其他研究人員 [3] 進(jìn)一步提出了一種自動分區(qū)關(guān)鍵Android應(yīng)用程序的方法。 具體而言,應(yīng)用程序分為正常運行的客戶端代碼和TEE命令部分,其中包含處理在安全領(lǐng)域運行的機(jī)密數(shù)據(jù)的部分。 它要求開發(fā)人員識別機(jī)密數(shù)據(jù),并利用靜態(tài)分析來提取其訪問數(shù)據(jù)的所有代碼路徑,通過這些路徑進(jìn)一步轉(zhuǎn)換為TEE本地代碼。
劃分應(yīng)用程序的挑戰(zhàn)是如何在TEE和REE之間定義清晰和安全的邊界。 首先,運行在安全領(lǐng)域的代碼不應(yīng)該依賴于正常世界中代碼的正確性。 但是,這種依賴關(guān)系的分析方法目前可能是只特定于某些應(yīng)用程序的,并且目前沒有用于分析這種依賴關(guān)系的系統(tǒng)方法。 其次,不適當(dāng)?shù)倪吔缈赡軙黾优缘拦舻臋C(jī)會。 例如考慮維護(hù)一個計數(shù)器的函數(shù)A: 每次調(diào)用它都會增加計數(shù)器。 假設(shè)計數(shù)器是保密的,功能A應(yīng)該在安全的執(zhí)行環(huán)境中進(jìn)行分區(qū)和運行。 然而,攻擊者只需通過從正常的世界中計算函數(shù)A的調(diào)用時間就可以輕松獲得計數(shù)器。 應(yīng)該指出的是,數(shù)據(jù)驅(qū)動的代碼分區(qū)機(jī)制可能將更多的內(nèi)部狀態(tài)暴露給正常的世界,從而增加了攻擊面。
TrustShadow[4] 允許未經(jīng)修改的用戶應(yīng)用程序在安全領(lǐng)域運行,以將應(yīng)用程序與不受信任的REE內(nèi)核隔離。 TEE內(nèi)核不處理來自受保護(hù)應(yīng)用程序的系統(tǒng)調(diào)用。 相反,它會將所有系統(tǒng)調(diào)用重定向到REE內(nèi)核來處理。 TrustShadow不需要考慮應(yīng)用程序邏輯的分區(qū)和現(xiàn)在攻擊將在屬于系統(tǒng)調(diào)用層面上。
由于輸入和顯示設(shè)備都可以劃分到安全的執(zhí)行環(huán)境,因此可以使用TrustZone來保護(hù)用戶輸入和UI顯示的過程,以保護(hù)隱私和完整性,這也被稱為TrustUI[5]。 TrustUI具有獨立的UI框架,并允許TA在沒有REE參與的情況下直接與用戶聯(lián)接。
VeriUI [6] 提出了一種基于TrustZone的登錄機(jī)制來保護(hù)密碼輸入和傳輸?shù)倪^程。在登錄過程中,用戶只能與在安全環(huán)境運行的瀏覽器進(jìn)行交互,瀏覽器安全地獲得用戶的輸入并將密碼發(fā)送到服務(wù)器。登錄后,CA可以從安全環(huán)境檢索OAuth令牌并使用該令牌進(jìn)行進(jìn)一步處理。該系統(tǒng)專注于保護(hù)密碼,以抵御網(wǎng)絡(luò)釣魚、惡意軟件甚至惡意REE OS等攻擊。與TrustUI、VeriUI相同地,TruZ-Droidz [7]技術(shù)拆分了HTTP和SSL協(xié)議,并在安全領(lǐng)域只部署了這兩種協(xié)議的一半,以便進(jìn)一步減少TCB的大小。
相反地,SchrodinText [8] 被設(shè)計用于保護(hù)文本的輸出過程,并且將保護(hù)范圍擴(kuò)展到更多類型的文本字段,包括消息、驗證碼等。通過將文本的呈現(xiàn)和顯示分離的技術(shù),該系統(tǒng)利用REE OS來顯示一些文本而不能訪問文本數(shù)據(jù)(只訪問渲染的字符數(shù)量),并使用TEE重新排序預(yù)渲染的文本字形進(jìn)行顯示。 因此,不受信任的操作系統(tǒng)將永遠(yuǎn)不會有機(jī)會訪問到文本數(shù)據(jù)。
除了保護(hù)文本小部件外,研究人員還使用TrustZone保護(hù)其他UI小部件,特別是互聯(lián)網(wǎng)行業(yè)通用的業(yè)務(wù)場景,如廣告和按鈕。AdAttester[9] 的目標(biāo)是通過TrustZone提供兩種基本功能:不可偽造的點擊和可驗證的顯示,以此來抵御目前非常嚴(yán)重的廣告欺詐問題。它使設(shè)備能夠生成安全的廣告展示證明以及廣告點擊信息,并由廣告服務(wù)器進(jìn)一步檢查以確保廣告顯示和用戶操作行為的真實性和完整性。更進(jìn)一步地, VButton[10]通過將預(yù)覽與按鈕小工具組合在一起,擴(kuò)展了AdAttester的想法,以進(jìn)一步支持任何用戶按下操作的證明。通過安全預(yù)覽的方式讓用戶意識到用戶所操作的內(nèi)容的語義,TEE負(fù)責(zé)安全地顯示和點擊預(yù)覽并生成證明,并將證明交由服務(wù)器最終檢查驗證。通過證明“用戶真正地看到了服務(wù)商所展現(xiàn)的內(nèi)容”和“用戶真的進(jìn)行做某一項操作(不可抵賴)”,AdAttester和VButton能夠為應(yīng)用業(yè)務(wù)帶來更可靠的身份與業(yè)務(wù)認(rèn)證。
對于安全UI的一個重要問題是“用戶如何判斷是否正在與安全UI或偽造UI進(jìn)行交互”。一種簡單而有效的方法是引入由TEE操作系統(tǒng)獨占控制的LED指示燈,該LED指示燈僅在安全UI正在工作時才開啟。另一種僅使用軟件的方法是使用用戶選擇的私密圖片作為指示器,這更容易部署,但圖片的初始化需要特別注意。同時,系統(tǒng)還需要考慮REE OS覆蓋顯示器的情況,這可以通過讓TEE專門控制幀緩沖器來避免。
SPROBES [11] 使用TrustZone來檢查REE內(nèi)核的代碼完整性。通過修改REE內(nèi)核,該系統(tǒng)可以通知在安全環(huán)境運行的監(jiān)視器在關(guān)鍵路徑上執(zhí)行安全檢查。 TZ-RKP [12] 通過移除REE內(nèi)核中所有特權(quán)指令、剝奪REE內(nèi)核特權(quán)系統(tǒng)功能(例如操作MMU)的能力,并將這些功能放在安全環(huán)境中,迫使REE內(nèi)核主動調(diào)用安全環(huán)境提供的服務(wù),由安全環(huán)境驗證并最終完成特權(quán)操作。
類似地,PrivateZone [13] 利用TrustZone專門控制MMU的方法創(chuàng)建一個運行在普通世界但與REE和TEE均隔離的內(nèi)存地址空間PrEE,PrEE同時支持在用戶態(tài)或內(nèi)核態(tài)下運行應(yīng)用邏輯。開發(fā)人員可以創(chuàng)建自己的獨立執(zhí)行環(huán)境而無需在安全環(huán)境中運行特定于應(yīng)用程序的邏輯,從而使TCB保持較小。
由于TrustZone可以對外設(shè)進(jìn)行獨占控制,因此一些研究人員利用它來以較小的TCB控制這些硬件設(shè)備或應(yīng)用強(qiáng)制訪問控制[14]。例如,在私人會議或戰(zhàn)場等場景中,確保禁用智能設(shè)備的某些外圍麥克風(fēng)或收音機(jī)至關(guān)重要,但又不需要關(guān)閉整個移動設(shè)備。使用TrustZone來打開/關(guān)閉外圍設(shè)備這一思路提供了更加靈活和安全的方法。有兩種方法可以對此進(jìn)行控制,一種是通過受保護(hù)的UI設(shè)置本地用戶的策略;另一種方式是通過遠(yuǎn)程服務(wù)器分發(fā)策略,由遠(yuǎn)程服務(wù)器通過安全通道直接與安全環(huán)境的應(yīng)用程序連接。
使用TrustZone的另一種方法是將其與GPS等移動平臺上的傳感器結(jié)合使用,以保護(hù)從硬件傳感器讀取的值?;赥rustZone,Liu等人 [15] 提出了兩種軟件抽象,稱為傳感器證明和傳感器封裝,用于將可信傳感器的數(shù)據(jù)安全地暴露給移動應(yīng)用程序和云服務(wù)。這種可信傳感器數(shù)據(jù)認(rèn)證在眾包等場景下非常有用,在這些場景中,應(yīng)用程序?qū)鞲衅髯x數(shù)上傳到云由云進(jìn)行進(jìn)一步地分析。在這里,讀數(shù)的完整性非常重要,否則攻擊者可能會向云上傳錯誤甚至惡意數(shù)據(jù)。
TrustZone也可以用來實現(xiàn)一些硬件功能。例如,fTPM [16] 使用TrustZone實現(xiàn)TPM 2.0接口。 TPM(可信平臺模塊)是PC和筆記本電腦中廣泛部署的芯片,可作為數(shù)字版權(quán)管理等應(yīng)用的關(guān)鍵推動力。 fTPM使設(shè)備能夠通過純軟件來支持TPM,這是向后兼容的,并且比硬件TPM芯片具有更好的性能。
除了手機(jī)之外,還有許多智能設(shè)備類型,例如智能家居助理、IP攝像頭、可穿戴設(shè)備等。這些設(shè)備通常具有大量傳感器,特別是攝像頭和麥克風(fēng),收集著敏感信息,因此需要得到很好的保護(hù)。
Ditio [17] 試圖通過使用TrustZone和虛擬化技術(shù)來記錄傳感器活動日志來提高物聯(lián)網(wǎng)設(shè)備的安全性。所有對傳感器寄存器的訪問都可以在不修改REE OS的情況下進(jìn)行記錄,這些活動日志可以由審核員隨后進(jìn)行檢查其是否符合給定策略。 Ditio還提供了一個工具來簡化日志分析過程。
PROTC [18]利用Drone平臺上的TrustZone來保護(hù)外圍設(shè)備。它在安全環(huán)境部署監(jiān)控器,對無人機(jī)的某些外設(shè)實施安全訪問控制策略,以確保只有經(jīng)過授權(quán)的應(yīng)用才能訪問某些外圍設(shè)備。
ARM服務(wù)器在云計算中越來越受歡迎,它也支持虛擬化。目前,TrustZone只能提供一個安全的世界,這意味著一臺服務(wù)器上的多個虛擬機(jī)必須共享唯一的安全世界。 vTZ [19] 試圖通過虛擬化TrustZone來為每個虛擬機(jī)提供一個獨立的安全世界來解決這個問題。 VM可以使用SMC指令在REE和虛擬TEE之間切換,就像非虛擬化環(huán)境一樣,并且TrustZone的所有功能都是在虛擬化之后保留的。該實施需要REE管理程序,但不需要信任它。
基于TrustZone的安全系統(tǒng)依賴于一個重要假設(shè):TEE本身是可信的系統(tǒng)。 這個假設(shè)來自一個事實,即更少的代碼具有更少的錯誤。 不幸的是,像大多數(shù)軟件一樣,TEE操作系統(tǒng)和應(yīng)用程序也可能存在漏洞。 早在2013年,就發(fā)現(xiàn)某些摩托羅拉手機(jī)的引導(dǎo)程序可以解鎖以加載任何系統(tǒng)(CVE-2013-3051)。 CVE-2016-0825揭示了Widevine TA(可信應(yīng)用程序)的漏洞,該漏洞可能利用TEE內(nèi)核來獲取和泄漏存儲在TEE安全存儲中的數(shù)據(jù)。 攻擊者甚至可能使用TEE攻擊REE。 例如Boomerang攻擊 [20] 利用特權(quán)TEE應(yīng)用程序的缺陷破壞REE內(nèi)核。
如何提高TEE的安全性?業(yè)界正在尋找各種方法,包括用更強(qiáng)的隔離、缺陷發(fā)現(xiàn)、形式驗證等等方式來隔離、發(fā)現(xiàn)甚至消除TEE的缺陷。對于更強(qiáng)的隔離,要解決的一個重要問題是通過驗證REE的請求來最小化TEE的攻擊面。例如,通過強(qiáng)制執(zhí)行只有CA-X可以與TA-X通信的策略,即使TA-X有一些錯誤,也很難觸發(fā),因為它只接受來自一個合法CA的請求。
TEE安全的另一個考慮因素是更新過程。攻擊者可能會插入惡意邏輯來更新TEE鏡像,因此在應(yīng)用之前必須檢查鏡像的完整性。降級攻擊是為了將TEE回滾到某個早期版本,該早期版本可能包含某些已知的漏洞以供進(jìn)一步利用。因此,更新過程也應(yīng)該確保版本是遞增的。
除了TEE漏洞之外,旁道攻擊和物理攻擊也可能是安全環(huán)境的秘密數(shù)據(jù)的嚴(yán)重威脅,如ARMageddon [21] 和冷啟動攻擊(例如Frozen)[22]。目前大多數(shù)研究都沒有考慮到這種攻擊。 Sentry [23] 和CaSE [24] 建議使用SoC存儲,例如內(nèi)部SRAM或L2高速緩存,而不是DRAM來存儲秘密數(shù)據(jù)(如私人密鑰)以抵御物理攻擊。為了托管比SoC存儲容量更大的數(shù)據(jù),這些系統(tǒng)需使用內(nèi)存加密換出機(jī)制將加密數(shù)據(jù)交換到不可信DRAM的內(nèi)存中。
目前,TEE的生態(tài)系統(tǒng)還沒有開放,這意味著所有的TA(Trusted Application,可信應(yīng)用)都由供應(yīng)商控制,并且在出售前預(yù)先安裝在設(shè)備上。為了使REE應(yīng)用程序更好地利用TrustZone,應(yīng)該允許動態(tài)安裝TA。一些TEE產(chǎn)品已經(jīng)提供TA遠(yuǎn)程動態(tài)管理云服務(wù),例如瓶缽TrustKernel TEE產(chǎn)品,它使應(yīng)用程序能夠請求空中遠(yuǎn)程下載定制的TA并將其部署在TEE中。TA安裝前,設(shè)備將驗證下載的TA的簽名。但是由此一來TEE的攻擊面就變得更大,因此它也為TEE帶來了新的安全挑戰(zhàn)。
遠(yuǎn)程認(rèn)證也是TEE的一個重要特征。遠(yuǎn)程認(rèn)證可以遠(yuǎn)程證明設(shè)備是否部署了有效的TEE。設(shè)備制造商將在銷售設(shè)備之前在每個TEE設(shè)備中嵌入一個私鑰,公鑰通常由供應(yīng)商管理,基于這種輕量級的PKI體系進(jìn)行TEE遠(yuǎn)程認(rèn)證。最近,ARM建立了開放信任協(xié)議(OTrP)聯(lián)盟 [26],該聯(lián)盟正在建立一個基于認(rèn)證機(jī)構(gòu)的信任體系結(jié)構(gòu),以進(jìn)一步簡化可信應(yīng)用程序的認(rèn)證過程。
此外,對于每個配備TEE的設(shè)備,設(shè)備將生成每臺設(shè)備唯一的密鑰對和設(shè)備ID,并將其安全地保存在設(shè)備的安全存儲中。在投放市場之前,設(shè)備密鑰對和設(shè)備ID在受控環(huán)境中(例如在設(shè)備工廠的生產(chǎn)線上)存儲在具有RPMB(重放保護(hù)存儲器塊)的eMMC分區(qū)中。設(shè)備的公鑰和設(shè)備ID將被上傳到生產(chǎn)線的后端服務(wù)器以供將來的設(shè)備認(rèn)證。通常eMMC中的RPMB分區(qū)包含數(shù)兆字節(jié),提供了具有身份驗證和重放保護(hù)的數(shù)據(jù)安全存儲方式。
目前,幾乎所有的ARM應(yīng)用處理器都支持ARMTrustZone,市場上超過10億部手機(jī)部署了TEE。 但是,由于缺乏文檔和固件支持,或者由于安全啟動,其中大多數(shù)無法用于開放性的研究。研究者如果需要在TrustZone環(huán)境中進(jìn)行相關(guān)研究,目前有三種方案。第一種方案是與現(xiàn)有的TEE廠商合作,獲得由TEE廠商所提供的相關(guān)訪問接口和文檔,例如通過瓶缽信息科技(TrustKernel)的TEE開發(fā)平臺進(jìn)行申請:TEE開放平臺[25]。第二種方案是與某家設(shè)備廠商合作,通過設(shè)備廠商獲取相關(guān)資源。第三種方案是采用現(xiàn)有開放平臺與硬件進(jìn)行研究。目前市面上仍然有幾種硬件和軟件平臺可用于研究。 研究人員可以使用的硬件平臺包括三星Exynos 4412、飛思卡爾i.MX6 / i.MX53、HiKey 960、ARM Juno開發(fā)板、ARM Versatile Express開發(fā)板和Raspberry Pi 2。仍在積極維護(hù)的開源TEE包括 Linaro OP-TEE和Google Trusty。雖然TrustZone架構(gòu)是由ARM提出的,但許多SoC在內(nèi)存和外設(shè)上都提供了定制的保護(hù)機(jī)制,一般的開源系統(tǒng)都不支持平臺的安全驅(qū)動,因為不是為了商用,對于大部分研究而言已經(jīng)足夠了。三星Exynos 4412、飛思卡爾i.MX6 / i.MX53和Raspberry Pi 2適用于物聯(lián)網(wǎng)和低端移動設(shè)備, ARM推薦ARM Juno Versatile Express開發(fā)板(針對ARMv8軟件原型設(shè)計,并采用靈活的硬件擴(kuò)展)。 HiKey 960和ARM Juno Versatile Express開發(fā)板都是TrustZone和硬件虛擬化研究的理想選擇。
?
隨著ARM的生態(tài)系統(tǒng)從移動設(shè)備向物聯(lián)網(wǎng)、車輛和服務(wù)器不斷擴(kuò)展,安全性在越來越多的場景中變得不可或缺。 TrustZone和TEE為保護(hù)、監(jiān)控和隔離不同上層應(yīng)用程序提供了一項關(guān)鍵技術(shù)。安全環(huán)境運行的代碼不斷增加是一種趨勢。 TEE內(nèi)的細(xì)粒度隔離是非常關(guān)鍵。強(qiáng)化TEE設(shè)計的正確性以及通過形式化驗證等技術(shù)實施也是至關(guān)重要的。同時,安全應(yīng)用的管理和部署也應(yīng)該更加嚴(yán)格。
利文浩 上海交通大學(xué)博士生、瓶缽信息科技創(chuàng)始人。主要研究領(lǐng)域是系統(tǒng)安全和移動安全。曾獲第七屆“上海市科技創(chuàng)新市長獎”、“微軟學(xué)者”(PhD Fellowship)、入選上海市青年科技英才揚(yáng)帆計劃、上海交通大學(xué)學(xué)術(shù)之星等。
夏虞斌 上海交通大學(xué)副教授、瓶缽信息科技創(chuàng)始人兼首席科學(xué)家。CCF高級會員、IEEE會員、ACM會員。主要研究對象是操作系統(tǒng)、系統(tǒng)虛擬化與系統(tǒng)結(jié)構(gòu),研究方向是移動安全和云計算安全,研究成果發(fā)表在ISCA、HPCA、EuroSys、USENIX ATC、MobiSys、FAST、CCS、USENIX Security、NDSS等高水平學(xué)術(shù)會議。目前主要研究基于硬件擴(kuò)展的可信執(zhí)行環(huán)境(TEE:Trusted Execution Environment),研究成果已應(yīng)用到數(shù)十家企業(yè),包括設(shè)備廠商和應(yīng)用廠商等。
陳海波 上海交通大學(xué)教授,CCF杰出會員、ACM/IEEE高級會員,主要研究方向為系統(tǒng)軟件與系統(tǒng)結(jié)構(gòu)。多次擔(dān)任SOSP、ISCA、Oakland、EuroSys、Usenix ATC等國際著名學(xué)術(shù)會議PC members,APSys 2014、2014年全國體系結(jié)構(gòu)學(xué)術(shù)年會等PC Co-Chairs,以及ACM APSys的Steering Committee Co-Chair,在SOSP、OSDI、EuroSys、Usenix ATC、ISCA、MICRO、HPCA等發(fā)表多篇學(xué)術(shù)論文,獲得EuroSys 2015、APSys 2013與ICPP 2007的最佳論文獎、HPCA 2014的最佳論文提名獎,以及2009年CCF優(yōu)秀博士學(xué)位論文獎、2011年全國優(yōu)秀博士學(xué)位論文獎與CCF青年科學(xué)家獎,入選教育部新世紀(jì)人才計劃與國家萬人計劃“青年拔尖人才計劃”。
[1] Tiago Alves and Don Felton. 2004. TrustZone: Integrated hardware andsoftware security. ARM white paper 3, 4 (2004), 18–24.
[2] Nuno Santos, Himanshu Raj, Stefan Saroiu, and Alec Wolman. 2014. UsingARM TrustZone to build a trusted language runtime for mobile applications. InASPLOS. ACM, 67–80.
[3] Konstantin Rubinov, Lucia Rosculete, Tulika Mitra, and AbhikRoychoudhury. Automated Partitioning of Android Applications for TrustedExecution Environments. In ICSE. 2016.
[4] Guan, Le, et al. TrustShadow: Secure execution of unmodified applicationswith ARM trustzone. Proceedings of the 15th Annual International Conference onMobile Systems, Applications, and Services. ACM, 2017.
[5] Li, Wenhao, et al. Building trusted path on untrusted device driversfor mobile devices. Proceedings of 5th Asia-Pacific Workshop on Systems. ACM,2014.
[6] D. Liu and L. P. Cox, “Veriui: Attested login for mobile devices,” inProceedings of the 15th Workshop on Mobile Computing Systems and Applications.ACM, 2014.
[7] Kailiang Ying, et at. TruZ-Droid: Integrating TrustZone with MobileOperating System. MobiSys, 2018.
[8] A. Amiri Sani, “Schrodintext: Strong protection of sensitive textualcontent of mobile applications,” in Proceedings of the 15th AnnualInternational Conference on Mobile Systems, Applications, and Services. ACM,2017, pp. 197–210.
[9] W. Li, H. Li, H. Chen, and Y. Xia, “Adattester: Secure onlinemobileadvertisement attestation using trustzone,” in MobiSys, 2015.
[10] Wenhao Li, Shiyu Luo, Zhichuang Sun, Yubin Xia, Long Lu, Haibo Chen,Binyu Zang, Haibing Guan. VButton: Practical Attestation of User-drivenOperations in Mobile Apps. MobiSys, 2018.
[11] Xinyang Ge, Hayawardh Vijayakumar, and Trent Jaeger. Sprobes: Enforcingkernel code integrity on the trustzone architecture. MOST, 2014.
[12] Ahmed M Azab, Peng Ning, Jitesh Shah, Quan Chen, Rohan Bhutkar,Guruprasad Ganesh, Jia Ma, and Wenbo Shen. Hypervision Across Worlds: Real-timeKernel Protection from the ARM TrustZone Secure World. CCS, 2012.
[13] Jang, Jinsoo, et al. PrivateZone: Providing a Private ExecutionEnvironment using ARM TrustZone. IEEE Transactions on Dependable and SecureComputing, 2016.
[14] Brasser, Ferdinand, et al. Regulating arm trustzone devices inrestricted spaces. Proceedings of the 14th Annual International Conference onMobile Systems, Applications, and Services. ACM, 2016.
[15] Liu, He, et al. Software abstractions for trustedsensors. Proceedings of the 10th international conference on Mobilesystems, applications, and services. ACM, 2012.
[16] Raj, Himanshu, et al. fTPM: A Software-Only Implementation of a TPMChip. USENIX Security Symposium. 2016.
[17] S. Mirzamohammadi, J. A. Chen, A. A. Sani, S. Mehrotra, and G. Tsudik,Ditio: Trustworthy auditing of sensor activities in mobile & iot devices.in Proceedings of the 15th ACM Conference on Embedded Network Sensor Systems.ACM, 2017.
[18] Liu, Renju, and Mani Srivastava. PROTC: PROTeCting Drone’s Peripheralsthrough ARM TrustZone. Proceedings of the 3rd Workshop on Micro Aerial VehicleNetworks, Systems, and Applications. ACM, 2017.
[19] Zhichao Hua, Jinyu Gu, Yubin Xia, Haibo Chen, Binyu Zang and HaibingGuan. vTZ: Virtualizing ARM TrustZone. Usenix Security Symposium, 2017.
[20] Aravind Machiry, Eric Gustafson, Chad Spensky, Chris Salls, NickStephens, Ruoyu Wang, Antonio Bianchi, Yung Ryn Choe, Christopher Kruegel, andGiovanni Vigna. BOOMERANG: Exploiting the Semantic Gap in Trusted ExecutionEnvironments. NDSS, 2017.
[21] Lipp, Moritz, et al. ARMageddon: Cache Attacks on Mobile Devices.USENIX Security Symposium, 2016.
[22] Halderman, J. Alex, et al. Lest we remember: cold-boot attacks onencryption keys. Communications of the ACM, 2009.
[23] Colp, Patrick, et al. Protecting data on smartphones and tablets frommemory attacks. ASPLOS, 2015.
[24] Zhang, Ning, et al. Case: Cache-assisted secure execution on armprocessors. Security and Privacy (SP), 2016.
[25] TrustKernel TEE Ready, https://dev.trustkernel.com/ready.
[26] ARM Inc. OTrP, https://www.electronicsweekly.com/news/arm-aims-to-build-trust-in-iot-security-2016-07.
Copyright © 2013-2021 TrustKernel Team, 上海瓶缽信息科技有限公司, 版權(quán)所有 |
滬ICP備16026776號-1
滬公網(wǎng)安備31011202008280號