Microsoft Azure 驗證是一個統一的解決方案,可從遠端驗證平台的可信性及其內執行的二進位程式的完整性。 該服務支援由受信任平台模組(TPMs)所支援的平台認證,並能對可信執行環境(TEE)如Intel® Software Guard Extensions(SGX)enclaves、基於虛擬化的安全(VBS)enclaves、受信任平台模組(TPM)、Azure虛擬機的可信啟動(Trusted Launch)及Azure機密虛擬機等可信執行環境(TEE)的狀態進行認證。
證明程序會證明軟體二進位檔已在信任的平台上正確地具現化。 然後,遠端信賴方就可以確信,只有這類預定的軟體會在受信任的硬體上執行。 Azure 證明是經過統整且面向客戶的證明服務與架構。
Azure 證明提供最新的安全性典範,例如 Azure 機密運算和智慧邊緣保護。 服務會接收來自計算實體的辨識項、將其轉換成一組宣告、針對可設定的原則進行驗證,併產生宣告型應用程式的密碼編譯證明(例如信賴憑證者與稽核授權單位)。
Azure 證明支援 AMD SEV-SNP 型機密 VM (CVM) 的平台和客體證明。 Azure 證明型平台證明會在 CVM 的重要開機路徑期間自動發生,客戶無須採取任何動作。 如需客體證明的詳細資訊,請參閱宣佈機密 VM 的客體證明正式發行 (英文)。
使用案例
Azure 證明可為多個環境和特殊使用案例提供完整的證明服務。
機密 VM 上的 AMD SEV-SNP 證明
Azure 機密 VM (CVM) 是以採用 SEV-SNP 技術的 AMD 處理器為基礎。 CVM 提供具有平台代控金鑰或客戶自控金鑰的 VM OS 磁碟加密選項,並將磁碟加密金鑰繫結至虛擬機器的 TPM。 當 CVM 開機時,系統會將包含客體 VM 韌體量測的 SNP 報告傳送至 Azure 證明。 服務會驗證量值,並發出證明權杖,用來從 Managed-HSM 或 Azure Key Vault 發行金鑰。 這些金鑰用於解密訪客虛擬機的 vTPM 狀態、解鎖作業系統磁碟並啟動 CVM。 在每部 CVM 開機時會自動執行證明和金鑰發行程序,且此程序可確保 CVM 僅在硬體成功證明時才會開機。
機密容器上的 AMD SEV-SNP 證明
Azure 機密容器基於AMD 處理器與 SEV-SNP 技術。 機密容器託管於 Azure 容器執行個體 及 Azure Kubernetes Service(預覽版),提供在 SEV-SNP 受保護且可信的執行環境中執行容器群組的能力,將該容器群組與容器管理控制平面及其他運行容器隔離開來。 機密容器中的證明涉及直接從處理器擷取 AMD 硬體證明報告。 你可以用 SKR sidecar 容器 完成這個任務,或直接編譯到你的應用程式邏輯中。 接著可將硬體報告與 Azure 證明 及受控 HSM 或 Premium Azure Key Vault(AKV)進行交換,以擷取祕密。 您也可以視需要向自己的金鑰保存庫系統提供硬體報告。
可信啟動證明
Azure 客戶可以啟用其虛擬機器 (VM) 的可信啟動,以防止 bootkit 和 rootkit 感染。 在 VM 已啟用安全開機和 vTPM 並已安裝客體證明延伸模組時,系統會定期將 vTPM 量測提交至 Azure 證明,以監視開機完整性。 驗證失敗表示可能存在惡意軟體,適用於雲端的 Microsoft Defender 透過警示和建議向客戶揭示此情況。
Azure Key Vault 的發行原則可以驗證來自任何符合規範的 Microsoft Azure 證明機構的權杖,包括可信啟動 VM 所發出的 vTPM 測量開機宣告 (secureboot、x-ms-azurevm-attested-pcr-values.*),而不僅限於硬體 TEE 宣告。 請參閱使用由證明機制控管的安全金鑰釋放來保護 Azure 虛擬機上的智慧財產權。
TPM 證明
受信任平台模組 (TPM) 型證明對於提供平台狀態證明至關重要。 TPM 可作為信任根目錄和安全性副處理器,以便為量測 (辨識項) 提供密碼編譯有效性。 具有 TPM 的裝置可以依賴驗證來證明開機完整性未受損害,並使用此證明來偵測在開機時功能狀態的啟用。
您可以設計用戶端應用程式,使其在平台驗證安全後才執行安全性敏感的任務,藉此來善用 TPM 驗證的優勢。 如此一來,這類應用程式就可以使用 Azure 證明,定期在平台中建立信任及其存取敏感性資料的能力。
SGX 記憶體保護區證明
Intel® Software Guard Extensions (SGX) 指的是硬體等級的隔離,可在某些 Intel CPU 模型上受到支援。 SGX 可讓程式碼在已清理過的區間 (稱為 SGX 記憶體保護區) 中執行。 接著,硬體會管理存取權和記憶體權限,以確保能透過適當隔離來將攻擊面最小化。
用戶端應用程式可以設計為利用 SGX 記憶體保護區,方法是委派要在這些記憶體保護區內進行的安全性敏感工作。 如此一來,這類應用程式就可以使用 Azure 信任認證,例行性地建立對安全區域的信任,並確保其具備存取敏感資料的能力。
Intel® Xeon® 可調整處理器僅支援 ECDSA 型驗證解決方案,以遠端證明 SGX 邊界。 Azure 證明 可以使用基於 ECDSA 的證明模型來支援和驗證 Intel® Xeon® E3 處理器以及基於 Intel® Xeon® 擴展處理器的伺服器平台。
注意事項
若使用者要執行 Intel® Xeon® 可調整處理器型伺服器平台的證明,應使用 Azure 證明服務並安裝 Azure DCAP 1.10.0 版或更高版本。
Open Enclave 證明
Open Enclave (OE) 是程式庫的集合,其目標是為開發人員建立一個已統整的記憶體保護區抽象概念,進而建立以 TEE 為基礎的應用程式。 其提供通用的安全應用程式模型,可將平台特定性降至最低。 Microsoft 將其視為將硬體型記憶體保護區技術 (例如 SGX) 大眾化,以及提升 Azure 功能的重要墊腳石。
OE 會將具體的記憶體保護區辨識項驗證需求標準化。 這讓 OE 成為極適合向 Azure 證明取用證明的工具。
Azure 證明會在 TEE 中執行
Azure 證明對機密計算案例而言很重要,因為其會執行下列動作:
- 驗證隔離區證據是否有效。
- 針對客戶定義的原則評估記憶體保護區辨識項。
- 管理及儲存租用戶特有的原則。
- 產生並簽署信賴憑證者用來與記憶體保護區互動的權杖。
為了讓Microsoft在操作上不進入可信計算基礎(TCB),Azure 證明中的關鍵操作如報價驗證、令牌產生、政策評估與令牌簽署,皆移至基於 AMD SEV-SNP 的機密容器中。
為何要使用 Azure 證明
Azure 證明是證明 TEE 的慣用選擇,因為其提供下列優點:
- 整合架構,用於證明多個環境,例如 TPM、SGX 記憶體保護區及 VBS 記憶體保護區。
- 可讓您建立自訂證明提供者並設定政策以限制令牌的生成。
- 在 TEE 中實作時,可保護其資料在使用過程中的安全。
- 高可用服務
如何使用 Azure 證明建立信任
- 確認證明令牌是否由 Azure 證明產生 - 使用自我簽署憑證簽署 Azure 證明所產生的證明令牌。 簽署憑證 URL 是透過 OpenID 中繼資料端點公開。 信賴方可以擷取簽名憑證,並驗證證明令牌的簽名。 欲了解更多資訊,請參閱 程式碼範例。
- 確認Azure 證明是否運行於 SEV-SNP 容器中——憑證簽署憑證包含執行Azure 證明的 TEE 資訊。 這份 TEE 附屬資料為 SEV-SNP 報告。 依賴方可透過本地驗證報告,確認 Azure 證明 是否在有效 TEE 中運行。 程式碼範例請參見 SEV-SNP。
- 驗證 Azure 證明 TEE 報告與簽署證明令牌的金鑰綁定 - 依賴方可驗證簽署證明令牌的公鑰雜湊值是否與 Azure 證明 TEE 報告的報告資料欄位相符。 更多資訊請參閱 程式碼範例。
- 驗證 Azure 證明程式碼量測是否符合 Azure 已發佈的值 - 內嵌在證明權杖簽署憑證中的 TEE 附隨品包含 Azure 證明的 TEE 程式碼量測。 依賴方可透過比較從證明令牌簽署憑證中 TEE 擔保取得的特定值與 Azure 證明 團隊提供的值,來驗證報告是否屬於 Azure 證明。 若為 SEV-SNP,請驗證 HOST_DATA。 更多資訊請參閱 程式碼範例。 如果你有興趣進行此驗證,請在 Azure 支援 頁面提交請求。 當這些特定值排定輪替時,Azure 證明小組會與您聯繫。
- 確保建置來源可信 - Azure 證明 已整合 Microsoft 的簽署透明機制(MST)。 MST 將代碼簽名記錄在不可篡改、防篡改的帳本中。 MST 服務提供可加密驗證且符合 SCITT 標準的收據,清楚掌握 Azure 證明 的部署情況,強化信任度、可稽核性及法規合規性。 若要進一步了解 MST 以及如何驗證建置成品,請參閱 關於 Microsoft Signing Transparency 帳本。
識別有效 Azure 驗證實例的值預期會在程式碼簽署憑證輪替或安全性更新需要新的策略版本時變更。 Azure 證明 團隊會針對每次已規劃的輪替遵循以下推出時程:
- Azure 證明 團隊會通知消費者新值,並有兩個月的寬限期以實施相關程式碼變更。
- 在兩個月的寬限期之後,Azure 證明會開始使用新的值。
- 通知日期過後的三個月,Azure 證明將停止使用舊值。
針對非計劃性輪替 (包括安全性更新所需的輪替),Azure 證明小組則會在傳達新值時提供一個月的寬限期。
業務持續性與災難復原(BCDR)支援
適用於 Azure 證明的商務持續性和災害復原 (BCDR) 可減輕因重大可用性問題或區域中災難事件而造成的服務中斷問題。
在兩個區域中部署的叢集在正常情況下將會獨立運作。 當一個區域發生錯誤或中斷時,下列作業就會開始運作:
- Azure 證明 BCDR 可提供順暢的容錯移轉,客戶不需要採取任何額外的步驟來進行復原。
- 該區域的 Azure 流量管理員 會偵測健康探測器已降級,並將端點切換到配對區域。
- 現有連線無法正常運作,並收到內部伺服器錯誤或逾時問題。
- 所有控制平面操作都被阻擋了。 客戶無法在主要區域建立證明提供者。
- 所有資料平面操作,包括認證通話與政策設定,皆由次要區域負責。 客戶可繼續使用對應主要區域的原始 URI 進行資料平面作業。