ADVERTISEMENT
要介紹 Intel Software Guard Extentions(Intel SGX,以下皆以 Intel SGX 稱之),首先必須聊聊在安全軟體已行之有年的沙盒模式。沙盒模式將有安全疑慮的程式放在獨立記憶體空間中執行,所有操作皆經過額外程式嚴密控管,藉以判別未知程式是否具有安全威脅。
Intel SGX 可謂是 1 種反沙盒模式的概念,被關起來的並非有疑慮的程式,而是要被保護的程式,要存取這部分的虛擬記憶體空間,皆須經過驗證。Intel 目前已發出產品變更通知公告,處理器步進將維持現行 R0、CPUID 同樣是 0x506E3,晶粒大小和封裝也不會有任何變更。
改變的是處理器 S-Spec 和 MM 號碼,具備 Intel SGX 功能的 Intel Core i5、Core i7、Xeon E3 v5 系列處理器,其 S-Spec 將從現行編號全部轉換成 SR2L 開頭的 5 位編號,MM 號碼變為 947 開頭的 6 位數字。由於 CPUID 並未改變,主機板製造商不需更新現有 BIOS,可直接安裝新款處理器。
Intel SGX 功能於現有的虛擬記憶體管理位置之中,切出 1 塊專門供 Intel SGX 技術使用的空間,稱之為 enclave,被放進此空間的程式資料將封鎖非法存取。若想要使用此功能,除了支援的硬體之外,作業系統和應用程式也必須支援此功能。
▲Intel SGX 於原先程式的虛擬記憶體位址,切出 1 塊 enclave 放置受保護的程式碼或資料。
由於是從處理器硬體支援的關係,即使當作業系統、驅動程式、BIOS、虛擬記憶體等出現安全性瑕疵時,被保護的程式與資料也不會受到威脅,由硬體支援也可盡量減少運算效能衝擊。
程式執行時,可呼叫 Trusted Function,此時執行階段就會跳到 enclave 空間中執行。當執行完成後挑出,enclave 內部的資料將保留於原地,不會被其它的非法存取所窺見。且當 enclave 內部程式資料移出處理器封裝到達主記憶體時,程式資料將被加密,外部記憶體存取或是匯流排偵測器只會看到加密後的數據。
▲Intel SGX 記憶體存取流程。
▲程式數據資料移出處理器封裝時將加密。
第一批出貨的 Skylake 微架構處理器,Intel 為何沒有開啟此項功能,這點目前無從得知。很有可能第一批產品還在調校中(先前曾發生 Intel 發現指令集瑕疵,推出新微碼關閉 TSX 功能的前例),之後製造出貨的處理器在電路上做出些微調整。
請注意!留言要自負法律責任,相關案例層出不窮,請慎重發文!