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



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