共用方式為


Microsoft Azure 證明

Microsoft Azure 證明是一種整合的解決方案,可從遠端驗證平台的可信度,以及在其內執行的二進位其完整性。 此服務支援由受信任平台模組 (TPS) 支援的平台證明,以及證明受信任執行環境 (TEE) 狀態的能力,例如 Intel® Software Guard Extensions (SGX) 記憶體保護區、虛擬化安全性 (VBS) 記憶體保護區、受信任平台模組 (TPM)適用於 Azure VM 的可信啟動Azure 機密 VM

證明程序會證明軟體二進位檔已在信任的平台上正確地具現化。 然後,遠端信賴憑證者就可以放心地相信,只有這類預期的軟體會在受信任的硬體上執行。 Azure 證明是經過統整且面向客戶的證明服務與架構。

Azure 證明提供最新的安全性典範,例如 Azure 機密運算和智慧邊緣保護。 客戶一直希望能夠獨立驗證機器的位置、該機器上的虛擬機器 (VM) 狀態,以及該 VM 上所執行記憶體保護區內的環境。 Azure 證明支援這些要求,以及許多額外的客戶要求。

Azure 證明會從計算實體接收證據、將其轉換成一組宣告、針對可設定的原則進行驗證,然後為宣告式應用程式 (例如信賴憑證者和稽核授權單位) 產生密碼編譯證明。

Azure 證明支援 AMD SEV-SNP 型機密 VM (CVM) 的平台和客體證明。 Azure 證明型平台證明會在 CVM 的重要開機路徑期間自動發生,客戶無須採取任何動作。 如需客體證明的詳細資訊,請參閱宣佈機密 VM 的客體證明正式發行

使用案例

Azure 證明可為多個環境和特殊使用案例提供完整的證明服務。

SGX 記憶體保護區證明

Intel® Software Guard Extensions (SGX) 指的是硬體等級的隔離,可在某些 Intel CPU 模型上受到支援。 SGX 可讓程式碼在已清理過的區間 (稱為 SGX 記憶體保護區) 中執行。 接著,硬體會管理存取權和記憶體權限,以確保能透過適當隔離來將攻擊面最小化。

用戶端應用程式可以設計為使用 SGX 記憶體保護區,方法是委派要在這些記憶體保護區內進行的安全性敏感工作。 如此一來,這類應用程式就可以使用 Azure 證明,定期在記憶體保護區中建立信任及其存取敏感性資料的能力。

Intel® Xeon® 可調整處理器僅支援 ECDSA 型證明解決方案,以遠端證明 SGX 記憶體保護區。 Azure 證明可使用 ECDSA 型證明模型支援驗證 Intel® Xeon® E3 處理器和 Intel® Xeon® 可調整處理器型伺服器平台。

注意

若使用者要使用 Azure 證明執行 Intel® Xeon® 可調整處理器型伺服器平台的證明,則應安裝 Azure DCAP 1.10.0 版或更高版本。

開啟記憶體保護區證明

Open Enclave (OE) 是程式庫的集合,其目標是為開發人員建立一個已統整的記憶體保護區抽象概念,進而建立以 TEE 為基礎的應用程式。 其提供通用的安全應用程式模型,可將平台特定性降至最低。 Microsoft 將其視為將硬體型記憶體保護區技術 (例如 SGX) 大眾化,以及提升 Azure 功能的重要墊腳石。

OE 會將驗證記憶體保護區證據的特定需求標準化。 這讓 OE 成為極適合向 Azure 證明取用證明的工具。

TPM 證明

受信任平台模組 (TPM) 型證明對於提供平台狀態證明至關重要。 TPM 會做為信任的根目錄和安全性副處理器,為量值 (辨識項) 提供密碼編譯有效性。 具有 TPM 的裝置可以仰賴證明來證明開機完整性不會遭到入侵,並使用宣告來偵測開機期間的功能狀態啟用。

您可以將用戶端應用程式設計為委派安全性敏感性工作僅在平台驗證為安全之後才會進行,藉此利用 TPM 證明。 如此一來,這類應用程式就可以使用 Azure 證明,定期在平台中建立信任及其存取敏感性資料的能力。

AMD SEV-SNP 證明

Azure 機密 VM (CVM) 是以採用 SEV-SNP 技術的 AMD 處理器為基礎。 CVM 提供具有平台代控金鑰或客戶自控金鑰的 VM OS 磁碟加密選項,並將磁碟加密金鑰繫結至虛擬機器的 TPM。 當 CVM 開機時,系統會將包含客體 VM 韌體量值的 SNP 報告傳送至 Azure 證明。 服務會驗證量值,並發出證明權杖,用來從 Managed-HSMAzure Key Vault 發行金鑰。 這些金鑰可用來解密客體 VM 的 vTPM 狀態、解除鎖定 OS 磁碟並啟動 CVM。 在每部 CVM 開機時會自動執行證明和金鑰發行程序,且此程序可確保 CVM 僅在硬體成功證明時才會開機。

可信啟動證明

Azure 客戶可以啟用其虛擬機器 (VM) 的可信啟動,以防止 bootkit 和 rootkit 感染。 在已安裝客體證明延伸模組的情況下啟用 VM 安全開機和 vTPM 時,vTPM 量值會定期提交至 Azure 證明,以監視開機完整性。 證明失敗表示透過適用於雲端的 Microsoft Defender 利用警示和建議向客戶呈現的潛在惡意代碼。

Azure 證明會在 TEE 中執行

Azure 證明對機密計算案例而言很重要,因為其會執行下列動作:

  • 確認記憶體保護區證據是否有效。
  • 針對客戶定義的原則評估記憶體保護區證據。
  • 管理及儲存租用戶特有的原則。
  • 產生並簽署信賴憑證者用來與記憶體保護區互動的權杖。

若要讓 Microsoft 在操作上遠離受信任的運算基礎 (TCB),Azure 證明的重要作業 (例如報價驗證、權杖產生、原則評估和權杖簽署) 會移至 SGX 記憶體保護區。

為何要使用 Azure 證明

Azure 證明是證明 TEE 的慣用選擇,因為其提供下列優點:

  • 可證明多個環境 (例如 TMP、SGX 記憶體保護區和 VBS 記憶體保護區) 的統一架構。
  • 可讓您建立自訂證明提供者及設定原則來限制權杖產生。
  • 根據 AMD SEV-SNP,在 SGX 記憶體保護區或機密虛擬機器中實作過程中使用時保護其資料。
  • 高可用性服務

如何使用 Azure 證明建立信任

  1. 確認證明權杖是否由 Azure 證明產生 - Azure 證明產生的證明權杖會使用自我簽署憑證進行簽署。 簽署憑證 URL 是透過 OpenID 中繼資料端點公開。 信賴憑證者可以擷取簽署憑證,並執行證明權杖的簽章驗證。 如需詳細資訊,請參閱程式碼範例
  2. 確認 Azure 證明是否在 SGX 記憶體保護區內執行 - 權杖簽署憑證包含 Azure 證明執行所在 TEE 的 SGX 引用。 如果信賴憑證者偏好檢查 Azure 證明是否正在有效的 SGX 記憶體保護區內執行,則可以從簽署憑證擷取 SGX 引用,並在本機進行驗證。 如需詳細資訊,請參閱程式碼範例
  3. 使用簽署證明權杖的金鑰驗證 Azure 證明 SGX 引號的繫結 – 信賴憑證者可以驗證簽署證明權杖的公開金鑰雜湊是否符合 Azure 證明 SGX 引用的報告資料欄位。 如需詳細資訊,請參閱程式碼範例
  4. 驗證 Azure 證明程式碼量值是否符合 Azure 已發佈的值 - 內嵌在證明權杖簽署憑證中的 SGX 引用包含 Azure 證明的程式碼量值,例如 MRSIGNER。 如果信賴憑證者有興趣驗證 SGX 引用是否屬於在 Azure 內執行的 Azure 證明,則可以從證明權杖簽署憑證中的 SGX 引用擷取 MRSIGNER 值,並與 Azure 證明小組所提供的值進行比較。 如果您有興趣執行此驗證,請在 Azure 支援頁面上提交要求。 當我們打算輪替 MRSIGNER 時,Azure 證明小組會與您連絡。

當程式碼簽署憑證輪替時,應該會變更 Azure 證明的 Mrsigner。 Azure 證明小組會遵循下列每個 mrsigner 輪替的推出排程:

i. Azure 證明小組會以兩個月的寬限期通知即將推出的 MRSIGNER 值,以進行相關的程式碼變更

ii. 在兩個月的寬限期之後,Azure 證明隨即開始使用新的 MRSIGNER 值

iii. 通知日期後的三個月,Azure 證明便會停止使用舊的 MRSIGNER 值

商務持續性和災害復原 (BCDR) 支援

適用於 Azure 證明的商務持續性和災害復原 (BCDR) 可減輕因重大可用性問題或區域中災難事件而造成的服務中斷問題。

在兩個區域中部署的叢集在正常情況下將會獨立運作。 當一個區域發生錯誤或中斷時,下列作業就會開始運作:

  • Azure 證明 BCDR 會提供順暢的容錯移轉,客戶不需要採取任何額外的步驟來進行復原。
  • 該區域的 Azure 流量管理員會偵測到健康情況探查已降級,並將端點切換至配對的區域。
  • 現有的連線將無法使用,且會收到內部伺服器錯誤或逾時問題。
  • 所有控制平面作業將會遭到封鎖。 客戶將無法在主要區域中建立證明提供者。
  • 所有資料平面作業 (包括證明呼叫和原則設定) 都將由次要地區提供服務。 客戶可以使用對應至主要區域的原始 URI,繼續處理資料平面作業。

下一步