Le format de fichier image qcow2 pour KVM peut utiliser le cryptage AES . Le chiffrement est appliqué au niveau du cluster :
Chaque secteur de chaque cluster est chiffré indépendamment en utilisant le mode de chaînage de blocs de chiffrement AES, en utilisant le décalage du secteur (par rapport au début du périphérique) au format little-endian comme les 64 premiers bits du vecteur d'initialisation à 128 bits.
La taille du cluster peut être définie de 512 octets à 2 Mo (64 Ko semble être la valeur par défaut).
L'un des principaux problèmes liés à l'utilisation du chiffrement qcow2 est le niveau de performances du processeur - chaque écriture sur disque ou lecture non mise en cache doit être chiffrée ou non.
Ce que j'aimerais savoir, c'est que QEMU / KVM utilise-t-il les instructions Intel AES pour atténuer les performances atteintes si le processeur hôte les possède? Dans l'affirmative, l'utilisation ou les performances dépendent-elles de manière significative de la taille du cluster?
Les instructions Intel® AES sont un nouvel ensemble d'instructions disponibles à partir de la toute nouvelle famille de processeurs Intel® Core ™ 2010 basée sur le nom de code de la microarchitecture Intel® 32 nm Westmere. Ces instructions permettent un chiffrement et un déchiffrement des données rapides et sécurisés, en utilisant la norme AES (Advanced Encryption Standard) qui est définie par la publication FIPS numéro 197. Comme AES est actuellement le chiffrement par blocs dominant et qu'il est utilisé dans divers protocoles, les nouvelles instructions sont précieuses pour une large gamme d'applications.
Je voudrais partager ce fil concernant la prise en charge AES-NI dans le CPU Westmere dans la version 1.7.10.4 de QEMU:
http://lists.gnu.org/archive/html/qemu-devel/2013-03/msg05374.html
La fonctionnalité a été revue et acceptée dans le flux de code.
Ensuite, il y a un autre fil lié à la raison pour laquelle la fonctionnalité semble manquer dans 2.2:
https://www.redhat.com/archives/libvirt-users/2015-F February/msg00007.html
Le thread semble indiquer qu'il existe une méthode pour activer cette fonctionnalité, mais avec des conséquences négatives possibles en raison d'incompatibilités avec libvirt et la détection du processeur. Personnellement, j'aimerais voir cette fonctionnalité réintroduite.
la source