基本概念

以下是與 Microsoft Azure 證明 相關的一些基本概念。

JSON Web 權杖 (JWT)

JSON Web Token (JWT) 是開放式標準 RFC7519 方法,可將合作物件之間的資訊安全地傳輸為 JavaScript 物件標記法 (JSON) 物件。 此資訊經過數位簽署,因此可能經過驗證並受到信任。 JWT 可以使用祕密或公開/私密金鑰組進行簽署。

JSON Web 金鑰 (JWK)

JSON Web 金鑰 (JWK) 是代表密碼編譯金鑰的 JSON 資料結構。 此規格也會定義代表一組 JWK 的 JWK Set JSON 資料結構。

證明提供者

證明提供者屬於名為 Microsoft.Attestation 的 Azure 資源提供者。 資源提供者是一種服務端點,可提供Azure 證明 REST 合約,並使用 Azure Resource Manager 進行部署 。 每個證明提供者都會接受特定且可探索的原則。 證明提供者會針對每個證明類型建立預設原則(請注意,VBS 記憶體保護區沒有預設原則)。 如需 SGX 預設原則的詳細資訊,請參閱 證明 原則的範例。

證明要求

證明要求是由用戶端應用程式傳送給證明提供者的序列化 JSON 物件。 SGX 記憶體保護區的要求物件有兩個屬性:

  • 「Quote」 – 「Quote」 屬性的值是字串,其中包含證明引號的 Base64URL 編碼標記法
  • 「EnclaveHeldData」 – 「EnclaveHeldData」 屬性的值是包含 Enclave 保留資料的 Base64URL 編碼標記法的字串。

Azure 證明會驗證提供的「報價」,然後確保所提供記憶體保護區保留資料的 SHA256 雜湊會以引號中 reportData 欄位的前 32 個位元組表示。

證明原則

證明原則可用來處理證明辨識項,並由客戶設定。 Azure 證明的核心是一個原則引擎,它處理構成證據的宣告。 原則可用來判斷Azure 證明是否應根據證據發行證明權杖,從而認可證明者(或否)。 因此,無法傳遞所有原則會導致不會發出任何 JWT 權杖。

如果證明提供者中的預設原則不符合需求,客戶就能夠在Azure 證明支援的任何區域中建立自訂原則。 原則管理是Azure 證明提供給客戶的重要功能。 原則會是特定的證明類型,可用來識別記憶體保護區,或將宣告新增至輸出權杖或修改輸出權杖中的宣告。

請參閱 證明原則的範例

原則簽署的優點

證明原則最終會決定證明權杖是否會由Azure 證明發出。 原則也會決定要產生于證明權杖中的宣告。 因此,服務評估的原則實際上是系統管理員所撰寫的原則,而且外部實體並未遭到竄改或修改。

信任模型會定義證明提供者的授權模型,以定義和更新原則。 支援兩個模型 - 一個以 Microsoft Entra 授權為基礎,另一個是根據擁有客戶管理的密碼編譯金鑰(稱為隔離模型)。 隔離模型會啟用Azure 證明,以確保客戶提交的原則不會遭到竄改。

在隔離模型中,系統管理員會在檔案中建立證明提供者,以指定一組受信任的簽署 X.509 憑證。 系統管理員接著可以將已簽署的原則新增至證明提供者。 處理證明要求時,Azure 證明會使用標頭中的 「jwk」 或 「x5c」 參數表示的公開金鑰來驗證原則的簽章。 Azure 證明也會驗證要求標頭中的公開金鑰是否位於與證明提供者相關聯的受信任簽署憑證清單中。 如此一來,信賴憑證者(Azure 證明)就可以信任使用其知道的 X.509 憑證簽署的原則。

如需範例,請參閱 原則簽署者憑證 的範例。

證明權杖

Azure 證明回應會是 JSON 字串,其值包含 JWT。 Azure 證明會封裝宣告,並產生已簽署的 JWT。 簽署作業是使用自我簽署憑證來執行,且主體名稱符合證明提供者的 AttestUri 元素。

取得 OpenID 中繼資料 API 會傳回 OpenID 組態回應,如 OpenID 連線 Discovery 通訊協定 指定。 API 會擷取Azure 證明使用中簽署憑證的相關中繼資料。

請參閱 證明權杖 的範例。

待用資料加密

為了保護客戶資料,Azure 證明將其資料保存在Azure 儲存體中。 Azure 儲存體會在寫入資料中心時提供待用資料的加密,並將它解密以供客戶存取。 此加密會使用 Microsoft 受控加密金鑰進行。

除了保護 Azure 儲存體中的資料之外,Azure 證明也會利用 Azure 磁碟加密 (ADE) 來加密服務 VM。 對於在 Azure 機密運算環境中執行Azure 證明,目前不支援 ADE 擴充功能。 在這種情況下,為了防止資料儲存在記憶體中,頁面檔案會停用。

Azure 證明實例本機硬碟上不會保存任何客戶資料。

下一步