共用方式為


證明原則 1.0 版

執行個體擁有者可以使用 Azure 證明原則來定義證明流程期間必須驗證的內容。 本文介紹了證明服務和原則引擎的工作原理。 每個證明類型都有自己的證明原則。 支援的文法和處理大致相同。

原則版本 1.0

服務所支援的最低原則版本為 1.0 版。

顯示使用原則 1.0 版的 Azure 證明圖表。

證明服務流程如下所示:

  • 平台會將證明呼叫中的證明辨識項傳送至證明服務。
  • 證明服務會剖析辨識項,並建立證明評估中所使用的宣告清單。 這些宣告會以邏輯方式分類為傳入宣告集。
  • 上傳的證明原則用於評估證明原則中撰寫之規則的辨識項。

原則 1.0 版有三個區段:

  • version:版本是所遵循文法的版本號碼。
  • authorizationrules:會先檢查的宣告規則集,以判斷證明是否應該繼續處理 issuancerules。 使用本章節來篩選出不需要套用發行規則的呼叫。 無法從本章節發出任何宣告給回應權杖。 這些規則可用來失敗證明。
  • issuancerules:評估為會將其他資訊新增至原則中定義的證明結果的宣告規則集合。 宣告規則會依照其定義的順序套用。 它們也是選擇性的。 這些規則可用來新增至傳出宣告集和回應權杖。 這些規則無法用來失敗證明。

原則 1.0 版支援下列宣告,做為傳入宣告的一部分。

TPM 證明

使用這些宣告在信賴平台模組 (TPM) 證明原則中定義授權規則:

  • aikValidated:包含證明識別索引鍵 (AIK) 認證是否已經過驗證之資訊的布林值。
  • aikPubHash:包含 DER 格式的 AIK 公開金鑰 base64 (SHA256) 的字串。
  • tpmVersion:包含 TPM 主要版本的整數值。
  • secureBootEnabled:指出是否啟用安全開機的布林值。
  • iommuEnabled:指出是否已啟用輸入-輸出記憶體管理單位的布林值。
  • bootDebuggingDisabled:指出是否停用開機偵錯的布林值。
  • notSafeMode:指出 Windows 是否未在安全模式中執行的布林值。
  • notWinPE:指出 Windows 是否在 WinPE 模式中執行的布林值。
  • vbsEnabled:指出虛擬化型安全性 (VBS) 是否已啟用的布林值。
  • vbsReportPresent:指出 VBS 記憶體保護區報表是否可用的布林值。

VBS 證明

使用以下宣告在 VBS 證明原則中定義授權規則:

  • enclaveAuthorId:字串值,其中包含記憶體保護區作者識別碼的 Base64Url 編碼值。 記憶體保護區主要模組的作者識別碼。
  • enclaveImageId:字串值,其中包含記憶體保護區影像識別碼的 Base64Url 編碼值。 記憶體保護區主要模組的影像識別碼。
  • enclaveOwnerId:字串值,其中包含記憶體保護區擁有者識別碼的 Base64Url 編碼值。 它是記憶體保護區擁有者的識別碼。
  • enclaveFamilyId:字串值,其中包含記憶體保護區系列識別碼的 Base64Url 編碼值。 這是記憶體保護區主要模組的系列識別碼。
  • enclaveSvn:整數值,其中包含記憶體保護區主要模組的安全性版本號碼。
  • enclavePlatformSvn:整數值,其中包含記憶體保護區所在平台的安全性版本號碼。
  • enclaveFlags:enclaveFlags 宣告是一個整數值,其中包含描述記憶體保護區執行階段原則的旗標。

各種證明類型的範例原則

TPM 的範例原則:

version=1.0;

authorizationrules { 
    => permit();
};


issuancerules
{
[type=="aikValidated", value==true]&& 
[type=="secureBootEnabled", value==true] &&
[type=="bootDebuggingDisabled", value==true] && 
[type=="notSafeMode", value==true] => issue(type="PlatformAttested", value=true);
};