Compartir a través de


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.
  • 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
      • 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)

¿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.

Figura de la cadena de confianza de evidencia basada en vTPM

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.
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.

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