可信安全TEE分析3 Intel SGX 原理

硬件要求:6代處理器並且BIOS支持。
針對可信計算,類似ARM的TrustZone,Intel也針對x86平臺提出了自己的安全架構SGX:
Intel® Software Guard Extensions (Intel® SGX)
https://software.intel.com/zh-cn/sgx-sdk
SGX全稱Intel Software Guard Extensions,顧名思義,其是對因特爾體系(IA)的一個擴展,用於增強軟件的安全性。這種方式並不是識別和隔離平臺上的所有惡意軟件,而是將合法軟件的安全操作封裝在一個enclave中,保護其不受惡意軟件的***,特權或者非特權的軟件都無法訪問enclave,也就是說,一旦軟件和數據位於enclave中,即便操作系統或者和VMM(Hypervisor)也無法影響enclave裏面的代碼和數據。Enclave的安全邊界只包含CPU和它自身。SGX創建的enclave也可以理解爲一個可信執行環境TEE(Trusted Execution Environment)。不過其與ARM TrustZone(TZ)還是有一點小區別的,TZ中通過CPU劃分爲兩個隔離環境(安全世界和正常世界),兩者之間通過SMC指令通信;而SGX中一個CPU可以運行多個安全enclaves,併發執行亦可。
SGX的保護是針對應用程序的地址空間的。SGX利用處理器提供的指令,在內存中劃分處一部分區域(EPC),並將應用程序地址空間中的Enclave映射到這部分內存區域。這部分內存區域是加密的,通過CPU中的內存控制單元進行加密和地址轉化。
當處理器訪問Enclave中數據時,CPU自動切換到一個新的CPU模式,叫做enclave模式。enclave模式會強制對每一個內存訪問進行額外的硬件檢查。由於數據是放在EPC中,爲了防止已知的內存***,EPC中的內存內容會被內存加密引擎(MEE)加密的。EPC中的內存內容只有當進入CPU package時,纔會解密;返回EPC內存中會被加密。
Enclave Page Cache (EPC)是指一個保留加密的內存區域。Enclave中的數據代碼必需在其中執行。爲了在EPC中執行一個二進制程序,SGX指令允許將普通的頁複製到EPC頁中。

關注:
可信安全TEE分析3 Intel SGX 原理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章