AMD Secure Encrypted Virtualization (SEV) y su extensión Secure Nested Paging (SNP) permiten a las máquinas virtuales generar informes de seguridad firmados por el procesador seguro de AMD. Estos informes proporcionan evidencia de la configuración inicial de la VM, incluyendo la medición de arranque y la política de seguridad, protegiendo al invitado contra un hipervisor malicioso. El proceso implica que el firmware de AMD calcula un hash SHA-384 de las páginas de memoria iniciales, creando una huella digital única que permanece fija durante la ejecución de la VM.
Para verificar la integridad de la VM, un verificador externo compara la huella del informe con una medida esperada, como la publicada por Google para sus firmwares UEFI. Si el firmware cambia o si se marcan páginas como no medidas, la huella difiere y el verificador rechaza la atestación. El artículo detalla cómo interactuar con esta interfaz en Linux mediante el dispositivo /dev/sev-guest, utilizando el ioctl SNP_GET_REPORT. Se explica la importancia del nivel de privilegio de la VM (VMPL) para aislar servicios críticos, como los TPM virtuales en Coconut SVSM o OpenHCL, de la carga de trabajo principal del kernel.
El texto incluye un ejemplo práctico en Zig (versión 0.17.0) que muestra cómo enviar una solicitud de informe, manejar la respuesta y validar la firma ECDSA P-384 utilizando OpenSSL. Esta librería, denominada zig-sev-guest, simplifica la gestión de buffers y la verificación de la cadena de certificados, permitiendo a los desarrolladores integrar la verificación de atestación remota en sus aplicaciones de forma segura y eficiente.
