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

Microsoft Azure 证明

Microsoft Azure 证明是一个统一的解决方案,用于远程验证平台的可信度和在该平台中运行的二进制文件的完整性。 该服务支持对受信任的平台模块 (TPM) 支持的平台的证明,以及对受信任执行环境 (TEE) 的状态进行证明的功能,例如 Intel® Software Guard Extensions (SGX) enclave、基于虚拟化的安全性 (VBS) enclave、受信任平台模块 (TPM)Azure VM 的受信任启动Azure 机密 VM

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

Azure 证明使用先进的安全范例,如 Azure 机密计算和智能边缘保护。 客户一直在请求独立验证计算机位置、计算机上的虚拟机 (VM) 状态以及在该 VM 上运行 enclave 的环境的功能。 Azure 证明将满足这些请求以及诸多其他客户请求。

Azure 证明从计算实体接收证据,将它们转换为一组声明,根据可配置的策略对其进行验证,并为基于声明的应用(例如信赖方和审核机构)生成加密证明。

用例

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 证明的证明使用者。

TPM 证明

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

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

AMD SEV-SNP 证明

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

受信任启动证明

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

Azure 证明在 TEE 中运行

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

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

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

为什么使用 Azure 证明

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

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

如何使用 Azure 证明建立信任

  1. 验证证明令牌是否由 Azure 证明生成 - Azure 证明生成的证明令牌是使用自签名证书签名的。 签名证书 URL 通过 OpenID 元数据终结点公开。 信赖方可以检索签名证书,并执行对证明令牌的签名验证。 有关详细信息,请参阅代码示例

  2. 验证 Azure 证明是否在 SGX enclave 内运行 - 令牌签名证书包括在其中运行 Azure 证明的 TEE 的 SGX 引用。 如果信赖方希望检查 Azure 证明是否在有效的 SGX enclave 内运行,则可以从签名证书中检索 SGX 引用并在本地进行验证。 有关详细信息,请参阅代码示例

  3. 验证 Azure 证明 SGX 引用与为证明令牌签名的密钥的绑定 - 信赖方可以验证为证明令牌签名的公钥的哈希值是否与 Azure 证明 SGX 引用的报告数据字段匹配。 有关详细信息,请参阅代码示例

  4. 验证 Azure 证明代码度量值是否与 Azure 发布的值匹配 - 证明令牌签名证书中嵌入的 SGX 引用包含 Azure 证明的代码度量值(例如 mrsigner)。 如果信赖方想验证 SGX 引用是否属于在 Azure 中运行的 Azure 证明,可以从证明令牌签名证书中的 SGX 引用中检索 mrsigner 值,并将其与 Azure 证明团队提供的值进行比较。 如果有兴趣执行此验证,请在 Azure 支持页上提交请求。 Azure 证明团队将在计划轮换 Mrsigner 时联系你。

当代码签名证书轮换时,Azure 证明的 Mrsigner 应该会发生更改。 Azure 证明团队将按照以下推出计划进行 mrsigner 轮换:

i. Azure 证明团队在通知即将更改的 MRSIGNER 值时会采用 2 个月的宽限期,以便完成相关的代码更改

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

iii. Azure 证明将在发布通知的 3 个月后停止使用旧的 MRSIGNER 值

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

Azure 证明的业务连续性和灾难恢复 (BCDR) 支持可减少因某个区域出现重大的可用性问题或灾难事件而导致的服务中断。

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

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

后续步骤