TrustZone vs SGX vs SEV/TDX : unité d’isolation, base de confiance, chiffrement mémoire
Tous trois sont des mécanismes matériels du CPU, des environnements d’exécution de confiance (TEE), qui protègent les traitements sensibles même si le système d’exploitation normal ou l’hyperviseur est compromis. Ils diffèrent par l’unité qu’ils isolent. TrustZone divise le processeur en un monde sécurisé et un monde normal et sert surtout dans les smartphones et les systèmes embarqués. SGX isole seulement une partie d’une application sous forme d’enclave, en réduisant au maximum la base informatique de confiance. SEV et TDX chiffrent la mémoire d’une machine virtuelle (VM) entière pour que même le fournisseur cloud ne puisse pas la lire, une approche appelée informatique confidentielle (confidential computing).
| Critère | TrustZone | SGX (enclave) | SEV/TDX (informatique confidentielle par VM) |
|---|---|---|---|
| Unité d’isolation | Le processeur entier est divisé en un monde sécurisé et un monde normal ; un petit OS de confiance et des applications de confiance s’exécutent dans le monde sécurisé | Une partie d’une application qui manipule des secrets (l’enclave) | Une machine virtuelle entière |
| Protège contre | L’OS et les applications du monde normal ; même si ce noyau est compromis, la mémoire du monde sécurisé ne peut pas être lue | L’OS, l’hyperviseur, les autres applications et les attaquants qui lisent physiquement la mémoire principale | L’hyperviseur, les administrateurs du fournisseur cloud, les autres VM et les attaquants qui lisent physiquement la mémoire principale |
| Base informatique de confiance (TCB) | Le matériel du CPU, le moniteur sécurisé qui bascule entre les mondes, ainsi que l’OS et les applications de confiance du monde sécurisé | Le matériel et le micrologiciel du CPU plus le code propre de l’enclave ; l’OS n’en fait pas partie | Le matériel et le micrologiciel du CPU (comme le processeur sécurisé d’AMD ou le module TDX d’Intel) plus tout ce qui se trouve dans la VM, y compris l’OS invité ; l’hyperviseur n’en fait pas partie |
| Chiffrement de la mémoire | Ne fait pas partie du mécanisme de base ; un signal de bus indique si un accès est sécurisé ou non, et les accès eux-mêmes sont bloqués | Les pages de l’enclave restent chiffrées en mémoire principale hors du CPU ; certaines implémentations détectent aussi les altérations | Toute la mémoire de la VM est chiffrée avec une clé propre à chaque VM gérée uniquement dans le CPU ; SEV-SNP et TDX ajoutent une protection d’intégrité qui empêche l’hyperviseur de réécrire ou de remapper la mémoire |
| Attestation | Pas de schéma architectural commun ; construite en combinant le démarrage sécurisé et les mécanismes de clés du SoC | La mesure de lancement de l’enclave est signée avec une clé interne au CPU ; les utilisateurs vérifient le rapport avant de transmettre des données secrètes | Le CPU mesure l’état initial de la VM et émet un rapport signé avec une clé interne au CPU ; les utilisateurs le vérifient avant de libérer la clé qui déchiffre leurs données |
| Usage typique | Comparaison biométrique, identifiants de paiement, stockage de clés DRM et vérification lors du démarrage sécurisé sur smartphones et systèmes embarqués | Protéger seulement une partie d’une charge de travail serveur, comme la gestion de clés ou le traitement de données sensibles | VM confidentielles dans le cloud, pour exécuter des applications existantes tout en les protégeant même du fournisseur |
| Effort de portage | Le code doit être écrit sous forme d’applications du monde sécurisé, avec une interface étroite vers le monde normal | Important : l’application est découpée en parties internes et externes à l’enclave, et les appels système ainsi que les E/S fichiers et réseau sont confiés au code externe | Faible : avec un OS invité pris en charge, les systèmes d’exploitation et applications existants s’exécutent presque sans modification |
| Classes d’attaques connues | Comme les cœurs, les caches et l’alimentation sont partagés, des travaux de recherche ont démontré des attaques par canal auxiliaire sur le cache et l’injection de fautes par perturbation de la tension ou de l’horloge ; les failles de l’OS et des applications de confiance sont aussi visées | Des travaux de recherche ont signalé des fuites de secrets par des attaques par canal auxiliaire exploitant la temporisation du cache, les motifs de défauts de page et l’exécution spéculative | Des travaux de recherche ont signalé des attaques dans lesquelles un hyperviseur malveillant manipule l’interface de la VM, comme les correspondances mémoire et les interruptions, ainsi que des attaques par canal auxiliaire ; la protection d’intégrité a été ajoutée pour les contrer |
| Disponibilité | Largement utilisé dans les processeurs d’application Arm, avec une version allégée dans les microcontrôleurs Armv8-M ; Armv9-A définit aussi Arm CCA (Realms) pour l’isolation au niveau des VM | Depuis le début des années 2020, Intel ne propose plus SGX sur ses CPU clients et le fournit surtout sur ses CPU serveurs | SEV est une fonction des CPU serveurs d’AMD et TDX des CPU serveurs d’Intel ; depuis le milieu des années 2020, les grands clouds les proposent sous forme de VM confidentielles |
Les valeurs indiquées sont des ordres de grandeur typiques et varient selon la génération de procédé et le produit.