你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
证明策略版本 1.0
实例所有者可以使用 Azure 证明策略来定义运行证明流期间必须验证的内容。 本文将介绍证明服务和策略引擎的工作原理。 每种证明类型有其自身的证明策略。 支持的语法和处理大致相同。
策略版本 1.0
服务支持的最低策略版本为 1.0。
证明服务流程如下:
- 平台将证明调用中的证明证据发送到证明服务。
- 证明服务分析证据并创建声明列表,该列表用于证明评估。 这些声明在逻辑上分类为传入的声明集。
- 上传的证明策略用于根据证明策略中创建的规则评估证据。
策略版本 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);
};