你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

证明策略版本 1.0

实例所有者可以使用 Azure 证明策略来定义运行证明流期间必须验证的内容。 本文将介绍证明服务和策略引擎的工作原理。 每种证明类型有其自身的证明策略。 支持的语法和处理大致相同。

策略版本 1.0

服务支持的最低策略版本为 1.0。

显示使用策略版本 1.0 的 Azure 证明的关系图。

证明服务流程如下:

  • 平台将证明调用中的证明证据发送到证明服务。
  • 证明服务分析证据并创建声明列表,该列表用于证明评估。 这些声明在逻辑上分类为传入的声明集。
  • 上传的证明策略用于根据证明策略中创建的规则评估证据。

策略版本 1.0 包含三段:

  • 版本:版本是所遵循语法的版本号。
  • authorizationrules:首先要检查的声明规则集合,用于确定证明是否应继续执行 issuancerules。 使用此部分来筛选掉不需要应用颁发规则的调用。 不能将此节中的任何声明发出到响应令牌。 这些规则可用于使证明失败。
  • issuancerules:要评估的声明规则集合,用于将信息添加到策略中定义的证明结果。 声明规则按其定义的顺序应用。 它们也是可选的。 这些规则可用于添加到传出的声明集和响应令牌。 这些规则不能用于使证明失败。

策略版本 1.0 支持以下声明作为传入声明的一部分。

TPM 证明

使用这些声明在受信任的平台模块 (TPM) 证明策略中定义授权规则:

  • aikValidated:布尔值,包含证明标识密钥 (AIK) 证书是否经过验证的信息。
  • aikPubHash:包含 DER 格式的 base64 (SHA256) AIK 公钥的字符串。
  • tpmVersion:包含 TPM 主版本的整数值。
  • secureBootEnabled:布尔值,指示是否启用安全启动。
  • iommuEnabled:布尔值,指示是否启用输入输出内存管理单元。
  • bootDebuggingDisabled:布尔值,指示是否禁用启动调试。
  • notSafeMode:布尔值,指示 Windows 是否未在安全模式下运行。
  • notWinPE:布尔值,指示 Windows 是否未在 WinPE 模式下运行。
  • vbsEnabled:布尔值,指示是否启用基于虚拟化的安全性 (VBS)。
  • vbsReportPresent:布尔值,指示 VBS enclave 报表是否可用。

VBS 证明

使用以下声明在 VBS 证明策略中定义授权规则:

  • enclaveAuthorId:包含 enclave 作者 ID 的 Base64Url 编码值的字符串值。 它是 enclave 主模块的作者标识符。
  • enclaveImageId:包含 enclave 映像 ID 的 Base64Url 编码值的字符串值。 它是 enclave 主模块的映像标识符。
  • enclaveOwnerId:包含 enclave 所有者 ID 的 Base64Url 编码值的字符串值。 它是 enclave 的所有者标识符。
  • enclaveFamilyId:包含 enclave 系列 ID 的 Base64Url 编码值的字符串值。 它是 enclave 主模块的系列标识符。
  • enclaveSvn:包含 enclave 主模块的安全版本号的整数值。
  • enclavePlatformSvn:包含托管 enclave 的平台的安全版本号的整数值。
  • enclaveFlags:enclaveFlags 声明是一个整数值,其中包含用于描述 enclave 运行时策略的标志。

各种证明类型的示例策略

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);
};