Detalles de diseño de atestación de invitado de máquina virtual confidencial
En este documento se proporciona información general detallada sobre el diseño de Atestación de invitado de máquina virtual confidencial de Azure.
Diseño basado en vTPM
Las máquinas virtuales confidenciales de Azure usan un diseño basado en vTPM para la atestación de invitado. El enfoque garantiza una interfaz coherente entre sistemas operativos invitados (Linux y Windows) y plataformas de hardware (AMD SEV-SNP e Intel TDX).
Flujo de atestación
El proceso de atestación de invitado implica dos pasos principales: generación de evidencias y comprobación de evidencia. Un usuario solicita a la máquina virtual confidencial de Azure que genere evidencia de vTPM y, a continuación, envíe la evidencia a una entidad de confianza (por ejemplo, Microsoft Azure Attestation (MAA)) para su comprobación.
Un usuario de confianza, como Azure Key Vault Premium o HSM administrado de Azure Key Vault, puede evaluar la confiabilidad de la máquina virtual confidencial de Azure en función de los resultados de la comprobación. Si la máquina virtual se considera de confianza, el usuario de confianza puede aprovisionar secretos de forma segura en la máquina virtual mediante mecanismos como Versión de clave segura.
Evidencia de vTPM
Una evidencia de vTPM consta de una cita de TPM y aprobaciones usadas para comprobar la cita, como se describe en el resto de la sección.
Cita de TPM
- Una cita estándar de TPM que es la salida de
TPM2_Quote
comando definido por la especificación TPM 2.0. - Incluye una lista de registros de configuración de plataforma (PCR) que captura las medidas del sistema operativo invitado (por ejemplo, proceso de arranque).
- El uso de PCR se ajusta a los estándares de Linux y Windows (cada uno tiene su definición de uso).
- Firmado por clave privada de atestación de vTPM (AK); es decir, AK se especifica como clave de firma en el comando
TPM2_Quote
.
- Una cita estándar de TPM que es la salida de
Registro de eventos de TPM
- Registro de eventos almacenado en el sistema que se puede usar para reproducir valores de PCR en la cita de TPM.
- Consulte Especificación de TPMpara obtener más detalles.
Certificado de AK de vTPM
- Emitido por Azure (firmado por la ENTIDAD de certificación de Azure).
- Respaldado por hardware (la clave pública de atestación de vTPM, AK public, se captura en el informe de hardware).
Informe de hardware
- Generado y firmado por el hardware.
- Captura de la siguiente información
- AK public
- Medición del paravisor invitado compilado por Microsoft donde se ejecuta vTPM
- Obtenga más información en Máquinas virtuales confidenciales en Azure.
- Información de hardware
- Consulte las especificaciones DE AMD SEV-SNP e Intel TDX para obtener más detalles.
Cadena de certificados del proveedor de hardware
- Emitido por el proveedor de hardware (AMD e Intel) para certificar la firma del informe de hardware.
- AMD SEV-SNP: certificados de clave de aprobación de chip con versión (VCEK)
- Intel TDX: certificados de clave de certificado de aprovisionamiento (PCK)
- Emitido por el proveedor de hardware (AMD e Intel) para certificar la firma del informe de hardware.
¿Qué está siendo cubierto por una evidencia de vTPM?
Componente | Cubierto por |
---|---|
SO invitado | Citas de TPM (PCR) |
UEFI | Informe de hardware |
Paravisor invitado (incluido vTPM) | Informe de hardware |
¿Cómo se comprueba la evidencia de vTPM?
El comprobador (Microsoft Azure Attestation (MAA)) comprobó la evidencia de vTPM basada en la cadena de confianza, como se muestra en la ilustración siguiente. La comprobación correcta implica que la máquina virtual confidencial de Azure atestada es de confianza y está protegida por el hardware.
Referencia del desarrollador
En esta sección se proporciona una referencia al diseño de atestación de invitado basado en vTPM que usa la máquina virtual confidencial de Azure.
Índices de NV de TPM reservados de Azure
Nombre | Índice NV | Tamaño (bytes) | Descripción |
---|---|---|---|
Informe de atestación | 0x01400001 | 2600 | Formato definido por Azure con el informe de hardware incrustado. |
Datos de informe | 0x01400002 | 64 | Los datos del informe que se van a incluir en los datos en tiempo de ejecución. |
Certificado de AK de vTPM | 0x01C101D0 | 4096 | Certificado usado para comprobar la cita de TPM firmada por el AK de vTPM. |
AK de vTPM | 0x81000003 | Dependiendo del tipo de clave | Clave que se usa para firmar la cita de TPM. |
Consulte Guía de atestación de máquinas virtuales confidenciales de Azure y preguntas más frecuentes para ver los comandos de TPM de ejemplo.
Formato de informe de atestación
Informe de atestación
Nombre | Desplazamiento (bytes) | Tamaño (bytes) | Descripción |
---|---|---|---|
Cabecera | 0 | 32 | Encabezado de informe (no aprobado por el informe de hardware). |
Carga útil del informe | 32 | 1,184 | Informe de hardware. |
Datos en tiempo de ejecución | 1216 | longitud variable | Los datos en tiempo de ejecución incluyen notificaciones aprobadas por el informe de hardware. |
Encabezado
Nombre | Desplazamiento (bytes) | Tamaño (bytes) | Descripción |
---|---|---|---|
Firma | 0 | 4 | Firma incrustada. Se esperaba: 0x414c4348 (HCLA ). |
Versión | 4 | 4 | Formato de la versión. Se esperaba: 2. |
Tamaño del informe | 8 | 4 | Tamaño de la carga del informe. Se esperaba: 1184 (AMD SEV-SNP), 1024 (Intel TDX). |
Tipo de solicitud | 12 | 4 | Uso específico de Azure del informe de atestación. Se esperaba: 2. |
Estado | 16 | 4 | Reservado. |
Reserved | 20 | 12 | Reservado. |
Carga útil del informe
Informe generado por el hardware (AMD SEV-SNP o Intel TDX). El campo report_data del informe captura el hash de las notificaciones en tiempo de ejecución en los datos en tiempo de ejecución. Consulte las especificaciones de los proveedores de hardware para obtener más detalles.
Datos en tiempo de ejecución
Nombre | Desplazamiento (bytes) | Tamaño (bytes) | Descripción | Medido |
---|---|---|---|---|
Tamaño de datos | 0 | 4 | Tamaño de las notificaciones en tiempo de ejecución. | No |
Versión | 4 | 4 | Formato de la versión. Se esperaba: 1. | No |
Tipo de informe | 8 | 4 | Tipo de informe de hardware. Se esperaba: 2 (AMD SEV-SNP), 4 (Intel TDX) | No |
Tipo hash | 12 | 4 | Algoritmo utilizado para aplicar hash a los datos en tiempo de ejecución. El valor hash se captura en el campo report_data del informe de hardware. Se esperaba: 1 (SHA-256), 2 (SHA-384), 3 (SHA-512) | No |
Notificaciones en tiempo de ejecución | 16 | longitud variable | Las notificaciones en tiempo de ejecución en formato JSON. | Sí |
Notificaciones en tiempo de ejecución
Campo JSON | Descripción |
---|---|
claves | Matriz de claves en formato JWK. Se esperaba kid : HCLAkPub (vTPM AK public), HCLEkPub (vTPM EK public). |
vm_configuration | Configuración selectiva de máquinas virtuales confidenciales de Azure. |
user_data | Datos de 64 bytes (cadena HEX) leídos de 0x01400002 índice NV (datos de informe). |
Ejemplo
{
"keys": [
{
"kid": "HCLAkPub",
"key_ops": [
"sign"
],
"kty": "RSA",
"e": "AQAB",
"n": "rAipdAAArL6V1FNnSQ-39i3VH-a8PuOeVRo2VpecspDWbJNmgHJ4-VGGFEx4sdVbvDC6fyo_VM2ebE-_AKxTmrNVEr-KIZveJMD_vlOqvMvjtllsWwA-vsRfpqiduvQdFcdCvyHzfxBRHYqdmxgKq-3QI-XBbZv9cCMMMPHkNp4mWkyahjQxXVJVwB1egCrJGKSk1bRXlP1dXNG_Pe4-W5O-YEGRKdLIA31G0Yh8VBnrEUCAMjDAuh6fncMkwdMVskI5Ta-kJgGw4GepIj6_smIyYhxg3o8Ik4qPntxj1TrV0bVW2IiNMLHoM67y1ErOir7bv00xqgqouFodI-vM3Q"
},
{
"kid": "HCLEkPub",
"key_ops": [
"encrypt"
],
"kty": "RSA",
"e": "AQAB",
"n": "m3AfPAAA-_HY3M_-x4bQbr0p2nkvAgig1mENl-BColvqq0aKKAqIHr-DFQ9-iB2z7EzhYVon5R7Nc1jzqBsmxahE8uaQfD-sp8bWOtbvy4V9nAqLY4HOwfxlJ99cEOOpxNXfCNesYOk8T0ntG05w7oBRjFw0LMVKS-1S3j5-oMnNnpJoo7rX5hNM8JVpxEuVa1IOf1NmvRey6wjwSHbjUay_IMUTAq1wzpx8wo_hjeY4JMd0Ka1ewLjJDaTQSpSxZI36ujyR6EGho0FBXSKN-9W9DAXkO8-RKuLUrmTXA6ETJRYApMuYGiUDCk1Y5zQTQsyWS6pLjnf2mg2tEntZZw"
}
],
"vm-configuration": {
"root-cert-thumbprint": "",
"console-enabled": true,
"secure-boot": true,
"tpm-enabled": true,
"tpm-persisted": true,
"vmUniqueId": "68dc0ac0-2ed9-4b2a-a03e-4953e416d939"
},
"user-data": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
}
Pasos siguientes
- Más información acerca de las API de atestación de invitado
- Obtenga información sobre cómo usar una aplicación de ejemplo con las API de atestación de invitados
- Obtenga información sobre cómo usar Microsoft Defender para la integración en la nube con VM confidenciales con atestación de invitados instalada
- Obtenga más información sobre las VM confidenciales de Azure