Conceptos básicos

A continuación se muestran algunos conceptos básicos relacionados con Microsoft Azure Attestation.

JSON Web Token (JWT)

JSON Web Token (JWT) es un método de RFC7519 estándar abierto para transmitir información de forma segura entre entidades como un objeto de notación de objetos JavaScript (JSON). Esta información se puede comprobar y es de confianza porque está firmada digitalmente. Los JWT se pueden firmar mediante un secreto o un par de claves pública y privada.

Clave de web JSON (JWK)

La clave web de JSON (JWK) es una estructura de datos JSON que representa una clave criptográfica. Esta especificación también define una estructura de datos Set JSON de JWK que representa un conjunto de JWK.

Proveedor de atestación

El proveedor de atestación pertenece al proveedor de recursos de Azure denominado Microsoft.Attestation. El proveedor de recursos es un punto de conexión de servicio que proporciona el contrato REST de Azure Attestation y se implementa mediante Azure Resource Manager. Cada proveedor de atestación respeta una directiva específica y reconocible. Los proveedores de atestación se crean con una directiva predeterminada para cada tipo de atestación (tenga en cuenta que el enclave de VBS no tiene ninguna directiva predeterminada). Consulte los ejemplos de directivas de atestación para más información sobre la directiva predeterminada de SGX.

Proveedor compartido regional

Azure Attestation proporciona un proveedor compartido regional en cada región disponible. Los clientes pueden usar el proveedor predeterminado para la atestación, o bien crear proveedores propios mediante directivas personalizadas. Los proveedores compartidos están disponibles para cualquier usuario de Azure AD y la directiva asociada a él no se puede modificar.

Region URI de atestación
Este de EE. UU. https://sharedeus.eus.attest.azure.net
Oeste de EE. UU. https://sharedwus.wus.attest.azure.net
Sur de Reino Unido https://shareduks.uks.attest.azure.net
Oeste de Reino Unido https://sharedukw.ukw.attest.azure.net
Este de Canadá https://sharedcae.cae.attest.azure.net
Centro de Canadá https://sharedcac.cac.attest.azure.net
Norte de Europa https://sharedneu.neu.attest.azure.net
Oeste de Europa https://sharedweu.weu.attest.azure.net
Este de EE. UU. 2 https://sharedeus2.eus2.attest.azure.net
Centro de EE. UU. https://sharedcus.cus.attest.azure.net
Centro-Norte de EE. UU https://sharedncus.ncus.attest.azure.net
Centro-sur de EE. UU. https://sharedscus.scus.attest.azure.net
Este de Australia https://sharedeau.eau.attest.azure.net
Sudeste de Australia https://sharedsau.sau.attest.azure.net
Sudeste de Asia https://sharedsasia.sasia.attest.azure.net
Japón Oriental https://sharedjpe.jpe.attest.azure.net
Norte de Suiza https://sharedswn.swn.attest.azure.net
US Gov - Virginia https://sharedugv.ugv.attest.azure.us
US Gov: Arizona https://shareduga.uga.attest.azure.us
EUAP del centro de EE. UU. https://sharedcuse.cuse.attest.azure.net
EUAP de Este de EE. UU. 2 https://sharedeus2e.eus2e.attest.azure.net

Solicitud de atestación

La solicitud de atestación es un objeto JSON serializado que la aplicación cliente envía al proveedor de atestación. El objeto de solicitud para el enclave de SGX tiene dos propiedades:

  • "Quote": el valor de la propiedad "Quote" es una cadena que contiene una representación codificada en Base64URL de la oferta de atestación.
  • "EnclaveHeldData": el valor de la propiedad "EnclaveHeldData" es una cadena que contiene una representación codificada en Base64URL de los datos contenidos en el enclave.

Azure Attestation validará el valor de "Quote" proporcionado y, luego, garantizará que el hash SHA256 de los datos contenidos en el enclave proporcionado se expresa en los primeros 32 bytes del campo reportData de la oferta.

Directiva de atestación

La directiva de atestación se usa para procesar la evidencia de atestación. Los clientes pueden configurarla. En el núcleo de Azure Attestation se encuentra un motor de directivas que procesa las notificaciones que constituyen la evidencia. Las directivas se usan para determinar si Azure Attestation emitirá o no un token de atestación en función de la evidencia y, por tanto, aprobará o no el atestador. En consecuencia, si no se superan todas las directivas, no se emitirá ningún token JWT.

Si la directiva predeterminada del proveedor de atestación no satisface las necesidades, los clientes podrán crear directivas personalizadas en cualquiera de las regiones que Azure Attestation admita. La administración de directivas es una característica clave que se proporciona a los clientes mediante Azure Attestation. Las directivas serán específicas del tipo de atestación y se pueden usar para identificar enclaves, agregar notificaciones al token de salida o modificar notificaciones en un token de salida.

Consulte Ejemplos de una directiva de atestación.

Ventajas de la firma de directivas

En última instancia, una directiva de atestación es lo que determina si Azure Attestation emitirá el token de atestación. La directiva también determina las notificaciones que se van a generar en el token de atestación. Por lo tanto, es de la máxima importancia que la directiva que el servicio evalúe sea de hecho la que haya escrito el administrador y ninguna entidad externa la haya manipulado ni modificado.

El modelo de confianza define el modelo de autorización del proveedor de atestación para definir y actualizar la directiva. Se admiten dos modelos: uno basado en la autorización de Azure AD y otro basado en la posesión de claves criptográficas administradas por el cliente (conocidas como "modelo aislado"). El modelo aislado habilitará Azure Attestation para garantizar que la directiva que el cliente envíe no se manipule.

En el modelo aislado, el administrador crea un proveedor de atestación que especifica un conjunto de certificados X.509 de firma de confianza en un archivo. A continuación, el administrador puede agregar una directiva firmada al proveedor de atestación. Al procesar la solicitud de atestación, Azure Attestation validará la firma de la directiva mediante la clave pública representada por el parámetro "jwk" o "x5c" en el encabezado. Azure Attestation también comprobará si la clave pública del encabezado de la solicitud está en la lista de certificados de firma de confianza asociados al proveedor de atestación. De esta manera, el usuario de confianza (Azure Attestation) puede confiar en una directiva firmada con los certificados X.509 que conozca.

Consulte los ejemplos de certificado de firma de directivas.

Token de atestación

La respuesta de Azure Attestation será una cadena JSON cuyo valor contenga JWT. Azure Attestation empaquetará las notificaciones y generará un JWT firmado. La operación de firma se realiza mediante un certificado autofirmado con un nombre de sujeto que coincide con el elemento AttestUri del proveedor de atestación.

La API de obtención de metadatos de OpenID devuelve una respuesta de configuración de OpenID según lo especificado por el protocolo de detección de OpenID Connect. La API recupera los metadatos sobre los certificados de firma que Azure Attestation use.

Consulte Ejemplos de un token de atestación.

Cifrado de datos en reposo

Para proteger los datos de clientes, Azure Attestation conserva sus datos en Azure Storage. Azure Storage proporciona cifrado de los datos en reposo a medida que se escriben en los centros de datos, y los descifra para que los clientes puedan acceder a ellos. Este cifrado se produce mediante una clave de cifrado administrada de Microsoft.

Además de proteger los datos en Azure Storage, Azure Attestation también aprovecha Azure Disk Encryption (ADE) para cifrar las máquinas virtuales del servicio. Si Azure Attestation se ejecuta en un enclave en entornos informáticos confidenciales de Azure, la extensión ADE no se admite actualmente. En estos escenarios, para evitar que los datos se almacenen en memoria, el archivo de paginación está deshabilitado.

No se conservan datos de clientes en las unidades de disco duro locales de Azure Attestation.

Pasos siguientes