夏錦濤 董攀 張利軍 楊增 楊攀



摘要:隨著處理器技術(shù)發(fā)展,終端設(shè)備、服務(wù)器承載越來越多的敏感任務(wù)和隱私數(shù)據(jù),具有很強的安全需求。傳統(tǒng)安全軟件保護以內(nèi)核安全為基礎(chǔ),內(nèi)核被攻破意味著保護徹底失效;硬件上通過掛載安全芯片提高設(shè)備安全性,但仍未解決處理器與安全芯片之間通信安全以及運行效率問題。為了解決安全問題,研究人員引入以處理器硬件為基礎(chǔ)的可信執(zhí)行環(huán)境(Trusted Execution Environment,TEE)概念,目前投入商用的主流TEE技術(shù)包括ARM TrustZone和Intel SGX技術(shù)。雖然兩者都是為解決安全保護問題,但是兩者采用不同設(shè)計理念,造成這兩種技術(shù)對不同應(yīng)用場景保護具有顯著差別。該文通過介紹當前兩種技術(shù)研究進展,深入分析兩者設(shè)計理念、隔離保護原理、運行架構(gòu),研究這兩種技術(shù)實現(xiàn)和應(yīng)用上的差異,總結(jié)兩種技術(shù)的優(yōu)缺點,探索TEE技術(shù)的改進和推廣應(yīng)用方向。
關(guān)鍵詞:TEE;ARM TrustZone;Intel SGX
1 背景
隨著處理器性能提升,處理器可以支撐更加復(fù)雜的硬件和軟件運行,導(dǎo)致計算機結(jié)構(gòu)變得更加龐大,引入大量的漏洞威脅。如今計算機需要處理大量用戶數(shù)據(jù)、執(zhí)行敏感任務(wù),一旦遭受漏洞攻擊,會造成大量損失,因此提出很強的安全需求。傳統(tǒng)安全策略分別從軟件和硬件出發(fā),提供安全保護。軟件上引入虛擬化機制,增加操作系統(tǒng)保護模式,利用虛擬地址限制不同應(yīng)用訪問地址范圍,保護敏感任務(wù)和隱私數(shù)據(jù)安全,這種保護方法前提是操作系統(tǒng)可信,然而主流操作系統(tǒng)采用宏內(nèi)核設(shè)計引入大量安全威脅,以Linux[1]為例,Linux代碼超過1700萬行,CVE[2]記錄Linux漏洞多達333個,涉及拒絕服務(wù)、溢出、注入等攻擊,攻擊者利用系統(tǒng)漏洞獲取系統(tǒng)最高訪問權(quán)限,一旦內(nèi)核被攻破,以虛擬化機制為基礎(chǔ)的保護就會失效。硬件上通過擴展安全器件加強設(shè)備安全性,Intel最早提出外掛TPM(Trusted Platform Module)安全芯片實現(xiàn)對數(shù)據(jù)的加解密和數(shù)據(jù)完整性驗證,但是TPM與處理器之間通信存在數(shù)據(jù)泄露的風(fēng)險。為了解決TPM存在的問題,Intel與微軟合作在TPM基礎(chǔ)上提出Trusted Execution Technology(TXT)技術(shù),以TPM為信任原點,構(gòu)建安全啟動度量機制,但是TXT技術(shù)沒有解決運行效率低下的問題。
針對軟件和硬件安全保護策略不足,研究人員提出以處理器硬件為基礎(chǔ)的可信執(zhí)行環(huán)境(Trusted Execution Environment,TEE)[3]概念,可信執(zhí)行環(huán)境通過軟硬件資源劃分,為敏感任務(wù)和隱私數(shù)據(jù)提供獨立隔離的執(zhí)行環(huán)境,防止攻擊者從中獲取數(shù)據(jù)。當前主流商用TEE技術(shù)包括ARM TrustZone Technology[4]和Intel Software Guard eXtensions (SGX) [5-6]兩種,分別針對ARM和x86兩種架構(gòu)處理器設(shè)計。ARM處理器應(yīng)用于嵌入式平臺,處理數(shù)字版權(quán)管理(Digital Rights Management,DRM)[7]、在線支付、身份認證等任務(wù),這些任務(wù)面向不同用戶提供相同運行邏輯。x86處理器用于桌面級PC和服務(wù)器平臺,處理分布式任務(wù),這些任務(wù)面向不同用戶提供不同運行邏輯。由于兩種處理器適用不同平臺處理不同任務(wù),造成TrustZone與SGX構(gòu)建可信執(zhí)行環(huán)境機制不同,TrustZone為可信應(yīng)用程序創(chuàng)建一個安全世界,這些可信應(yīng)用程序在安全世界內(nèi)運行,SGX為應(yīng)用程序創(chuàng)建一個受信任的環(huán)境enclave,這樣可信程序可以在不受信任的系統(tǒng)軟件上運行。兩者不同的設(shè)計理念,造成這兩種技術(shù)對不同應(yīng)用場景保護具有顯著差異。本文深入分析兩者設(shè)計理念、運行架構(gòu)、隔離保護原理,研究這兩種技術(shù)實現(xiàn)和應(yīng)用上的差異,總結(jié)兩種技術(shù)的優(yōu)缺點,探索TEE技術(shù)的改進和推廣應(yīng)用方向。
2 TEE安全與應(yīng)用領(lǐng)域研究進展
ARM TrustZone和Intel SGX作為當前商業(yè)應(yīng)用最廣泛的兩項TEE技術(shù),研究人員就其安全性和應(yīng)用場景進行了大量研究。
2.1 安全性研究
TrustZone和SGX為用戶提供硬件級安全保護,抵御攻擊能力是評估TrustZone和SGX安全的重要指標,文獻[8]中對TrustZone和SGX常見攻擊進行分析,包括三類:
1) 特權(quán)軟件攻擊。
2) 硬件中間信息攻擊。
3) 直接探測硬件攻擊。
第一類包括針對頁表映射、DMA、固件以及拒絕服務(wù)等攻擊。TrustZone和SGX能夠有效抵御針對頁表映射、DMA以及固件的攻擊,但是對拒絕服務(wù)攻擊防范能力不足,導(dǎo)致系統(tǒng)運行受限。但是此類攻擊無法危害可信執(zhí)行環(huán)境內(nèi)部數(shù)據(jù)安全。同時,此類攻擊嚴重影響系統(tǒng)運行,導(dǎo)致系統(tǒng)性能下降,系統(tǒng)的使用者可以及時發(fā)現(xiàn)并采取補救措施。
第二類攻擊包括基于緩存的側(cè)信道攻擊[9]和針對DRAM的Row-hammer[10]攻擊。TrustZone在一定程度上可以抵御Row-hammer攻擊,前提是開發(fā)者設(shè)置了完整性檢查機制,SGX可以有效抵御Row-hammer攻擊。然而, TrustZone與SGX都無法抵御基于緩存的側(cè)信道攻擊。TrustZone雖然通過創(chuàng)建一個安全世界為可信應(yīng)用程序提供可信執(zhí)行環(huán)境,但是安全世界緩存是由運行時安全世界需求決定,ARMageddon[11]利用Prime+Probe attack成功獲取緩存信息,證明基于緩存的側(cè)信道攻擊對TrustZone有效。SGX并未更改原有Intel平臺緩存設(shè)計,所有應(yīng)用共用同一緩存,造成對緩存的保護能力不足,王鵑[12]提出使用隨機化方法和檢測時間方法抵御攻擊,隨機化緩存增加攻擊者分析難度,同時,SGX遭受緩存攻擊會造成應(yīng)用運行性能下降,通過檢測運行時間可以發(fā)現(xiàn)系統(tǒng)異常,兩種方法具有可行性。在云計算平臺上,Intel提出 CAT技術(shù)[13]防御側(cè)信道攻擊。