Aller au contenu

SEV-SNP : Secure Encrypted Virtualization, Secure Nested Paging (AMD)

Sécurité

SEV-SNP : Secure Encrypted Virtualization with Secure Nested Paging, technologie des processeurs AMD qui protège les machines virtuelles contre leur propre hyperviseur. « Une machine virtuelle qui se méfie de son hébergeur et le lui fait savoir par écrit », par analogie avec le locataire qui fait poser des scellés sur sa porte avec la bénédiction du fabricant de serrures plutôt que celle du propriétaire.

Généalogie : SEV chiffre la mémoire de chaque machine virtuelle avec une clé propre gérée par l'AMD Secure Processor, SEV-ES (Encrypted State) y ajoute le chiffrement de l'état des registres, et SEV-SNP, arrivé avec les processeurs EPYC de troisième génération en 2021, ajoute la protection de l'intégrité. Chaque étape a fermé ce que la précédente laissait faire à un hyperviseur malveillant.

Intégrité : Une table tenue par le processeur, la Reverse Map Table, empêche l'hyperviseur de réaffecter, de rejouer ou de réécrire en silence les pages mémoire d'un invité. Le chiffrement seul cachait le contenu ; il n'empêchait pas de le corrompre à l'aveugle.

Attestation : Le processeur produit un rapport signé décrivant l'état initial de la machine virtuelle et la version du micrologiciel. Ce rapport ne vaut que si le client le vérifie, contre la chaîne de certificats d'AMD et des valeurs attendues, avant de livrer le moindre secret.

Limites : SEV-SNP ne protège pas un invité contre ses propres failles, et des attaques comme CacheWarp (2023) ont rappelé que la confiance se déplace vers le processeur et son micrologiciel sans disparaître. L'hébergeur sort du périmètre de confiance ; AMD y entre.

Ce qui arrive si on s'en passe

Lancer une machine virtuelle dite confidentielle sans vérifier son rapport d'attestation revient à demander à l'hébergeur de certifier qu'on n'a plus besoin de lui faire confiance. Un hyperviseur malveillant ou compromis peut alors présenter une machine non protégée, ou un micrologiciel vulnérable, et recevoir quand même les clés de déchiffrement des données. Le bon enchaînement subordonne la libération des secrets, par exemple par un KMS, à une attestation vérifiée avec la mesure et la version attendues. Sans ce lien, SEV-SNP chiffre soigneusement la mémoire d'une machine dont on ignore l'identité.

Explication de la marmotte

Dans le cloud, les programmes d'une entreprise tournent dans des machines virtuelles installées sur les serveurs d'un hébergeur, qui pourrait en principe lire leur mémoire. SEV-SNP est une fonction des processeurs AMD qui chiffre cette mémoire et empêche l'hébergeur de la lire ou de la modifier en cachette. Le processeur peut aussi fournir une sorte de certificat prouvant que la machine est bien protégée. Ce certificat doit être vérifié avant d'envoyer des données secrètes à la machine.

Où ce terme est utilisé

← Tout le glossaire