你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
基本概念
本文定义了与 Microsoft Azure 证明相关的一些基本概念。
JSON Web 令牌 (JWT)
JSON Web 令牌 (JWT) 是一个开放的标准 RFC7519 方法,用于在各方之间作为 JavaScript 对象标记 (JSON) 对象安全地传输信息。 可以验证和信任此信息,因为该信息已进行数字签名。 可以使用机密或公钥/私钥对对 JWT 进行签名。
JSON Web 密钥 (JWK)
JSON Web 密钥 (JWK) 是一个表示加密密钥的 JSON 数据结构。 此规范还定义了一个 JWK Set JSON 数据结构,该结构表示一组 JWK。
证明提供程序
证明提供程序属于名为 Microsoft.Attestation 的 Azure 资源提供程序。 资源提供程序是提供 Azure 证明 REST 协定的服务终结点,并使用 Azure 资源管理器进行部署。 每个证明提供程序都遵循特定的可发现策略。 证明提供程序是使用每种证明类型的默认策略创建的(请注意,VBS enclave 没有默认策略)。 有关 SGX 的默认策略的更多详细信息,请参阅证明策略的示例。
证明请求
证明请求是由客户端应用程序发送到证明提供程序的序列化 JSON 对象。 SGX enclave 的请求对象有两个属性:
- “Quote” – “Quote”属性的值是一个字符串,包含经 Base64URL 编码的证明引用的表示形式。
- “EnclaveHeldData” – “EnclaveHeldData”属性的值是一个字符串,包含经 Base64URL 编码的 Enclave Held Data 的表示形式。
Azure 证明验证提供的“Quote”以确保所提供的 Enclave Held Data 的 SHA256 哈希以引用中 reportData 字段的前 32 个字节表示。
证明策略
证明策略用于处理证明证据,并可由客户进行配置。 Azure 证明的核心是一个策略引擎,可处理构成证据的声明。 策略用于确定 Azure 证明是否应基于证据(或不基于证据)颁发证明令牌,从而对该证明者予以认可(或不认可)。 因此,如果未通过所有策略,会不颁发 JWT 令牌。
如果证明提供程序中的默认策略不能满足需要,则客户能够在 Azure 证明支持的任何区域创建自定义策略。 策略管理是 Azure 证明向客户提供的一项重要功能。 策略特定于证明类型,可用于标识 enclave,或将声明添加到输出令牌或修改输出令牌中的声明。
请参阅证明策略的示例。
策略签名的优点
证明策略最终确定是否由 Azure 证明颁发证明令牌。 策略还确定要在证明令牌中生成的声明。 重要的是,由服务评估的策略是管理员编写的策略,且未经外部实体篡改或修改。
信任模型定义了用于定义和更新策略的证明提供程序的授权模型。 支持两种模型:一种模型基于 Microsoft Entra 授权,一种基于拥有客户管理的加密密钥(称为独立的模型)。 独立模型启用 Azure 证明,以确保客户提交的策略不会被篡改。
在独立的模型中,管理员创建一个证明提供程序,在文件中指定一组受信任签名 X.509 证书。 然后,管理员可以将签名的策略添加到证明提供程序。 处理证明请求时,Azure 证明使用标头中“jwk”或“x5c”参数表示的公钥来验证策略的签名。 Azure 证明验证请求头中的公钥是否位于与证明提供程序关联的受信任签名证书的列表中。 通过这种方式,信赖方(Azure 证明)就可以信任使用它知道的 X.509 证书签名的策略。
有关示例,请参阅策略签名者证书的示例。
证明令牌
Azure 证明响应是一个 JSON 字符串,其值包含 JWT。 Azure 证明打包声明并生成签名的 JWT。 使用主题名称与证明提供程序的 AttestUri 元素匹配的自签名证书执行签名操作。
Get OpenID Metadata API 返回 OpenID Connect 发现协议指定的 OpenID Configuration 响应。 此 API 检索有关 Azure 证明正在使用的签名证书的元数据。
请参阅证明令牌的示例。
静态数据加密
为了保护客户数据,Azure 证明在 Azure 存储中保留其数据。 Azure 存储在静态数据写入数据中心时对其进行加密,并对其进行解密以供客户访问。 使用 Microsoft 管理的加密密钥进行加密。
除了保护 Azure 存储中的数据外,Azure 证明还利用 Azure 磁盘加密 (ADE) 对服务 VM 进行加密。 对于在 Azure 机密计算环境的 enclave 中运行的 Azure 证明,当前不支持 ADE 扩展。 在这种情况下,为了防止数据存储在内存中,将禁用页面文件。
在 Azure 证明实例本地硬盘驱动器上不会保留任何客户数据。