跳至內容

SGX

架構參考資料Feex

Intel SGX(Software Guard Extensions)為 enclave 執行環境提供具備特定威脅模型與軟體介面的機制。單憑 CPU 支援並不足以確立 enclave 應用程式能在特定系統上執行。

您需要瞭解的資訊

Intel SGX(Software Guard Extensions)為 enclave 執行環境提供具備特定威脅模型與軟體介面的機制。單憑 CPU 支援並不足以確立 enclave 應用程式能在特定系統上執行。

運作方式

SGX 定義了 enclave 記憶體以及進入/退出機制,其 enclave 頁面快取由平台與作業系統支援共同管理。Enclave 應用程式會區分受信任與不受信任的元件,並可使用證明(attestation)來確立 enclave 的身分。可用 enclave 記憶體容量與支援的啟動政策皆依平台而異。

適用場景

應用程式可將範圍狹窄的運算與機密資料放入 enclave 內,同時將外圍的主機視為超出其信任邊界。I/O、不受信任的輸入、例外處理行為以及側信道(side-channel)考量仍需要明確的針對性設計。

如何檢查支援與啟用狀態

請檢查 CPUID.07H.00H:EBX 第 2 位元與 SGX 專屬的 CPUID leaf 12H 資訊,接著驗證韌體佈建、驅動程式/執行階段支援以及應用程式的證明需求。請遵循特定平台支援的確切設定。

能力、啟用狀態與強制執行狀態必須分別檢查。處理器可能支援某項保護,但 OS、應用程式或虛擬機器原則並未予以啟用。資料庫支援欄位並非執行中系統的證明。

該功能未涵蓋的範疇

SGX 標籤並不能確立 SGX1/SGX2 的詳細規格、彈性啟動控制(flexible launch control)、證明服務的可用性或特定的 enclave 記憶體容量。它不會讓未經修改的任意應用程式自動獲得機密性,也無法消除所有側信道漏洞。

實務中的相容性與效能

使 OS、韌體和受影響的執行階段保持最新。若保護機制引發相容性問題,請先使用廠商診斷工具和受支援的更新。廣泛的保護開關可能會影響無關的應用程式,應遵循明確的部署與復原原則。

實用驗證檢查清單

  1. 記錄所涉及的確切處理器或平台型號,以及應用程式、OS 和執行階段版本。保留實際錯誤或需求的確切措辭。
  2. 檢查該確切型號的原廠參考資料,然後在程式執行的環境中檢查有效功能和啟用狀態。
  3. 比對所選二進位檔或後端的所有需求。僅憑名稱相似的功能、別名或廣泛的技術標籤是不夠的。
  4. 確認應用程式已選擇預期的實作方式。當需求未獲滿足時,請使用其記載的診斷工具和受支援的後備機制。
  5. 一次進行一項受支援的變更,並重複執行相同的負載。隨時保留原始設定和復原途徑。

如果列出該功能但軟體無法使用

從確切發生失敗的元件著手。硬體資料庫描述的是記錄的硬體能力;作業系統或 Hypervisor 可能呈現不同的有效環境。非法指令錯誤同樣需要調查實際出錯的指令和二進位建置版本,因為損毀或無關的不受支援指令也可能產生類似的症狀。

安裝適用於該確切平台的受支援應用程式、驅動程式或執行階段版本,並在需要時使用廠商記載的基準建置版本或後備建置版本。軟體更新無法無中生有地創造處理器所缺乏的指令。韌體與安全性原則的變更應遵循系統製造商的程序和復原計劃,而非泛用的最佳化偏方。

本說明的來源與範圍

Intel 64 和 IA-32 架構軟體開發者手冊 · Intel SGX 開發者參考實作

這些參考資料確立了架構行為和軟體需求。它們不會獨立驗證連結硬體型號頁面上的每個功能數值。有關型號支援,請使用該頁面的製造商實證並檢查有效系統組態。本文不提供效能基準測試、認證或獨立審查日期。

來源與驗證

編輯權限:Feex。未記錄獨立審查日期。 我們的研究方式.

  • Intel 64 和 IA-32 架構軟體開發者手冊 · 第 1 卷和第 2 卷描述具名指令系列及 CPUID;第 3 卷描述狀態、分頁、VMX 和保護控制。架構說明文件並不構成對特定型號提供支援的依據。
  • Intel SGX 開發者參考實作 · 供 enclave 部署使用的官方 SDK/執行階段專案與參考資料。確切的平台與證明需求仍依個別應用程式而定。

這篇文章實用嗎?

只要回答「是」或「否」即可。您也可以依意願選擇原因,或附上簡短說明。

這篇文章實用嗎?