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

Microsoft Azure 证明

Microsoft Azure 证明是一个统一的解决方案,用于远程验证平台的可信度和在该平台中运行的二进制文件的完整性。 该服务支持对平台进行证明,这些平台由受信任的平台模块 (TPM) 提供支持,同时具备对受信任执行环境 (TEE) 状态进行证明的功能,例如 Intel® 软件保护扩展 (SGX) 安全隔离区、基于虚拟化的安全性 (VBS) 安全隔离区、受信任的平台模块 (TPM)Azure VM 的受信任启动Azure 机密 VM

认证是用于证明软件二进制程序被正确地实例化在受信任平台上的过程。 然后,远程信赖方可以确信只有此类软件在受信任的硬件上运行。 Azure 证明是一个统一的面向客户的认证服务和框架。

Azure Attestation 服务支持先进的安全范例,如 Azure 机密计算和智能边缘保护。 该服务从计算实体接收证据,将其转换为一组声明,针对可配置策略验证它们,并为基于声明的应用程序(例如信赖方和审核机构)生成加密证明。

Azure 认证支持对基于 AMD SEV-SNP 的机密虚拟机 (CVM) 进行平台认证和来宾认证。 基于 Azure 证明的平台证明在 CVM 的关键路径启动期间自动进行,无需客户操作。 有关来宾证明的更多信息,请参阅宣布机密 VM 的来宾证明正式发布

用例

Azure 证明为多种环境和各种不同的用例提供全面的证明服务。

机密 VM 上的 AMD SEV-SNP 证明

Azure 机密 VM (CVM) 基于采用 SEV-SNP 技术的 AMD 处理器。 CVM 提供了使用平台管理的密钥和客户管理的密钥的 VM OS 磁盘加密选项,并且将磁盘加密密钥绑定到虚拟机的 TPM。 当计算虚拟机(CVM)启动时,包含虚拟机来宾固件度量的 SNP 报告将被发送到 Azure 认证服务。 该服务会验证度量并颁发一个用于从托管 HSMAzure Key Vault 释放密钥的证明令牌。 这些密钥用于解密来宾 VM 的 vTPM 状态、解锁 OS 磁盘以及启动 CVM。 每次进行 CVM 启动时都会自动执行证明和密钥释放过程,该过程可确保 CVM 仅在成功证明硬件后启动。

机密容器上的 AMD SEV-SNP 证明

Azure 机密容器基于采用 SEV-SNP 技术的 AMD 处理器。 借助托管在 Azure 容器实例Azure Kubernetes 服务(预览版)上的机密容器,可以在受 SEV-SNP 保护的受信任执行环境中运行容器组,从而将该容器组与容器管理控制平面和其他正在运行的容器隔离开来。 机密容器中的证明涉及到直接从处理器提取 AMD 硬件证明报告。 这可以通过我们的 SKR 挎斗容器来实现,或者可以将相关代码直接编译到应用程序逻辑中。 然后,可以将硬件报告与 Azure 证明和托管 HSM 或高级 Azure 密钥保管库 (AKV) 进行交换,以检索机密。 你还可以根据需要向自己的密钥保管库系统提供硬件报告。

受信任启动证明

Azure 客户可以通过为虚拟机 (VM) 启用受信任启动阻止 Bootkit 和 Rootkit 感染。 如果 VM 启用了安全启动和 vTPM 且安装了来宾证明扩展,则会向 Azure 证明定期提交 vTPM 度量以监视启动完整性。 证明失败表示可能存在恶意软件,通过 Microsoft Defender for Cloud 的“警报和推荐”可向客户显示恶意软件。

TPM 证明

基于受信任的平台模块 (TPM) 的证明对于提供平台状态证明至关重要。 TPM 用作信任根和安全协处理器,为度量(证据)提供加密有效性。 具有 TPM 的设备可以依靠证明来证明启动完整性未受损害,并且可以使用声明来检测启动期间的功能状态启用。

客户端应用程序可设计为利用 TPM 认证,方法是将安全敏感的任务指定为仅在验证平台安全后才执行。 这样,此类应用程序就可以利用 Azure 证明定期在平台中建立信任并访问敏感数据。

SGX enclave 证明

Intel® Software Guard Extensions (SGX) 指硬件级隔离,这只在一些英特尔 CPU 型号上受支持。 SGX 使代码可以在清理过的隔离舱(称为 SGX enclave)中运行。 然后,通过硬件管理访问和内存权限,利用适当的隔离将攻击面降至最小。

通过委派在这些 enclave 内执行的安全敏感任务,可以将客户端应用程序设计为利用 SGX enclave。 这样,此类应用程序就可以利用 Azure 证明定期在 enclave 中建立信任并访问敏感数据。

英特尔® 至强® 可扩展处理器仅支持基于 ECDSA 的证明解决方案以远程方式证明 SGX enclave。 利用基于 ECDSA 的证明模型,Azure 证明支持对英特尔® 至强® E3 处理器和基于英特尔® 至强® 可扩展处理器的服务器平台的验证。

注意

若要使用 Azure 证明对基于英特尔® 至强® 可扩展处理器的服务器平台进行证明,用户需要安装 Azure DCAP 版本 1.10.0 或更高版本。

开放式 Enclave 证明

开放式 Enclave (OE) 是一系列库,旨在创建一个统一的 enclaving 抽象,供开发人员生成基于 TEE 的应用程序。 它提供了一个可最大程度降低平台特异性的通用安全应用模型。 Microsoft 将其视为普及基于硬件的 enclave 技术(例如 SGX)和增加它们在 Azure 上的使用的方法。

OE 使 enclave 证据的特定验证要求实现了标准化。 因此,OE 有资格作为非常适合 Azure 证明的证明使用者。

Azure 证明在 TEE 中运行

Azure 证明对于机密计算场景至关重要,因为它可执行以下操作:

  • 验证 enclave 证据是否有效。
  • 根据客户定义的策略评估 enclave 证据。
  • 管理和存储特定于租户的策略。
  • 生成并签署信赖方用来与 enclave 交互的令牌。

为了使 Microsoft 在运营上不会受到受信任的计算基础 (TCB) 的影响,Azure 证明的关键操作(例如,报价验证、令牌生成、策略评估和令牌签名)会移动到 SGX enclave 中。

为什么使用 Azure 证明

Azure 证明是用于证明 TEE 的首选服务,因为它具有以下优势:

  • 统一的框架,可证明多种环境,如 TPM、SGX enclave 和 VBS enclave。
  • 允许创建自定义证明提供程序和配置策略来限制令牌生成。
  • 在基于 AMD SEV-SNP 的 SGX enclave 或机密虚拟机中与实现配合使用时保护其数据。
  • 高度可用的服务

如何使用 Azure 证明建立信任

  1. 验证证明令牌是否由 Azure 证明生成 - 使用自签名证书对 Azure 证明生成的证明令牌进行签名。 签名证书 URL 通过 OpenID 元数据终结点公开。 信赖方可以检索签名证书并执行证明令牌的签名验证。 有关详细信息,请参阅 代码示例
  2. 验证 Azure 证明是否在 SGX 安全区 或 SEV-SNP 容器内运行 - 令牌签名证书包含有关运行 Azure 证明的受信执行环境 (TEE) 的信息。 此 TEE 附件可能是 SGX 报价或 SEV-SNP 报告。 信赖方可以通过本地验证报价或报表来检查 Azure 证明是否在有效的 TEE 中运行。 有关详细信息,请参阅代码示例 - SGXSEV-SNP
  3. 使用签名证明令牌的密钥验证 Azure 证明 TEE 报告的绑定 - 信赖方可以验证签名证明令牌的公钥哈希是否与 Azure 证明 TEE 报表的报告数据字段匹配。 有关详细信息,请参阅 此处
  4. 验证 Azure 证明代码度量是否与 Azure 发布的值匹配 - 在证明令牌签名证书中嵌入的 TEE 附件包括 Azure 证明的 TEE 代码度量。 信赖方可以通过将从证明令牌签名证书中的 TEE 附件检索到的特定值与 Azure 证明团队提供的值进行比较,来验证报价或报表是否属于 Azure 证明。 对于 SGX,应验证 MRSIGNER。 对于 SEV-SNP,应验证 HOST_DATA。 有关详细信息,请参阅 此处 。 如果有兴趣执行此验证,请在 Azure 支持页上提交请求。 在计划轮换这些特定值时,Azure 证明团队会与你联系。

标识有效 Azure 证明实例的值应会在轮换代码签名证书时或安全更新需要新策略版本时更改。 Azure 证明团队对每个计划轮换遵循以下推出计划:

i. Azure 证明团队通知用户有关新值的信息,并提供两个月的宽限期以进行相关代码更改。

ii. 在两个月的宽限期之后,Azure 证明开始使用新值。

iii. 通知日期后的三个月,Azure 证明会停止使用旧值。

对于计划外轮换(包括安全更新所需的轮换),Azure 证明团队会在一个月的宽限期内传达新值。

业务连续性和灾难恢复 (BCDR) 支持

Azure Attestation 的业务连续性和灾难恢复 (BCDR) 使您能够减轻因某个区域出现重大可用性问题或灾难事件而导致的服务中断。

在正常情况下,部署在两个区域的群集会独立运行。 如果某个区域出现故障或中断,则会发生以下情况:

  • Azure 证明 BCDR 将提供无缝故障转移,客户无需执行任何额外的步骤即可恢复。
  • 该区域的 Azure 流量管理器会检测运行状况探测是否已降级,并会将终结点切换到配对区域。
  • 现有连接将不起作用,并将收到内部服务器错误或遇到超时问题。
  • 所有控制平面操作都将被阻止。 客户将无法在主要地区创建证明提供者。
  • 所有数据平面操作(包括证明调用和策略配置)将由次要区域提供服务。 客户可以继续使用与主要区域对应的原始 URI 进行数据平面操作。

后续步骤