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èreTrustZoneSGX (enclave)SEV/TDX (informatique confidentielle par VM)
Unité d’isolationLe 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 contreL’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 lueL’OS, l’hyperviseur, les autres applications et les attaquants qui lisent physiquement la mémoire principaleL’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 partieLe 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émoireNe 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ésLes pages de l’enclave restent chiffrées en mémoire principale hors du CPU ; certaines implémentations détectent aussi les altérationsToute 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
AttestationPas de schéma architectural commun ; construite en combinant le démarrage sécurisé et les mécanismes de clés du SoCLa 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ètesLe 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 typiqueComparaison 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ésProtéger seulement une partie d’une charge de travail serveur, comme la gestion de clés ou le traitement de données sensiblesVM confidentielles dans le cloud, pour exécuter des applications existantes tout en les protégeant même du fournisseur
Effort de portageLe code doit être écrit sous forme d’applications du monde sécurisé, avec une interface étroite vers le monde normalImportant : 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 externeFaible : avec un OS invité pris en charge, les systèmes d’exploitation et applications existants s’exécutent presque sans modification
Classes d’attaques connuesComme 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éesDes 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éculativeDes 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 VMDepuis le début des années 2020, Intel ne propose plus SGX sur ses CPU clients et le fournit surtout sur ses CPU serveursSEV 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.

Quand choisir l'un ou l'autre ?

TrustZone
Sur les smartphones et les systèmes embarqués, lorsqu’on veut une zone sécurisée dans un seul SoC sans ajouter de puce. La biométrie, les paiements et les vérifications du démarrage sécurisé s’exécutent séparément de l’OS normal.
SGX (enclave)
Sur un serveur, lorsque seule une petite partie particulièrement sensible du travail, comme la manipulation des clés, doit être isolée même de l’OS et de l’hyperviseur. Il offre la plus petite base informatique de confiance, mais oblige à restructurer l’application.
SEV/TDX (informatique confidentielle par VM)
Dans le cloud, lorsque des applications existantes doivent s’exécuter presque sans modification tout en étant protégées même de l’hyperviseur et des administrateurs du fournisseur. L’attestation à distance confirme qu’il s’agit de la bonne VM avant la libération des clés des données.

Questions fréquentes

Qu’est-ce qui est le plus sûr, une enclave ou une VM confidentielle ?

Elles protègent contre des parties similaires, mais font confiance à des quantités de code différentes. Une enclave retire même l’OS de la base informatique de confiance et ne fait confiance qu’au CPU et au code propre de l’enclave : sa TCB est la plus petite. Une VM confidentielle fait confiance à toute la VM, y compris l’OS invité : sa TCB est plus grande, mais les logiciels existants s’exécutent presque sans modification. Le choix dépend de la quantité de code à protéger et de l’effort de remaniement acceptable.

TrustZone chiffre-t-il la mémoire ?

Le mécanisme de base de TrustZone est un contrôle d’accès, pas un chiffrement. Chaque lecture ou écriture que le CPU place sur le bus porte un signal indiquant si elle est sécurisée, et des circuits placés devant la mémoire et les périphériques rejettent les accès du monde normal aux zones sécurisées. Certains SoC ajoutent le chiffrement de la DRAM externe comme fonction distincte.

Le chiffrement de la mémoire arrête-t-il aussi les attaques par canal auxiliaire ?

Non. Le chiffrement de la mémoire empêche de lire ou de modifier les données en mémoire principale, mais l’utilisation du cache, les temps d’exécution et les motifs de défauts de page peuvent rester observables de l’extérieur. On combine des contre-mesures : un code dont les branchements et les accès mémoire ne dépendent pas des secrets, des mises à jour du microcode et le non-partage d’un cœur avec des parties non fiables.

Peut-on encore utiliser SGX ?

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 : la protection des applications sur PC ne peut donc plus s’appuyer sur SGX. Sur les serveurs, des schémas au niveau des VM comme TDX sont disponibles en plus des enclaves.

Vérifier vos connaissances

Quelle est la définition d'un TEE (environnement d'exécution de confiance) ?

  1. AUn environnement d'exécution protégé par le matériel et isolé même du système d'exploitation ordinaire, où s'effectuent les traitements importants comme la gestion des clés ou l'authentification
  2. BUn environnement accélérant les communications Internet
  3. CUn éditeur de texte pour écrire des programmes
Afficher la réponse et l'explication

Réponse : A. Un environnement d'exécution protégé par le matériel et isolé même du système d'exploitation ordinaire, où s'effectuent les traitements importants comme la gestion des clés ou l'authentification

Le système d'exploitation ordinaire étant vaste et complexe, il est difficile d'en éliminer toutes les vulnérabilités. Le TEE crée, par des mécanismes matériels, un petit environnement d'exécution séparé du système ordinaire, où s'effectuent les traitements à protéger tout particulièrement, comme la vérification d'empreintes digitales, les paiements ou la gestion des clés DRM. L'objectif est que, même si le système ordinaire est compromis, la mémoire et les clés du TEE restent inaccessibles. TrustZone d'Arm en est l'exemple type.

Quel est le mécanisme de base de TrustZone d'Arm ?

  1. ATous les traitements sécurisés sont effectués sur un autre ordinateur
  2. BLes programmes du monde normal peuvent lire librement la mémoire du monde sécurisé
  3. CLe CPU dispose d'états monde sécurisé et monde normal, et des signaux de bus ou analogues permettent de distinguer de quel monde proviennent les accès à la mémoire et aux périphériques pour les restreindre
Afficher la réponse et l'explication

Réponse : C. Le CPU dispose d'états monde sécurisé et monde normal, et des signaux de bus ou analogues permettent de distinguer de quel monde proviennent les accès à la mémoire et aux périphériques pour les restreindre

Avec TrustZone, les cœurs du CPU basculent entre deux états, sécurisé et normal, et un signal indiquant l'état courant accompagne chaque accès sur le bus. Les circuits côté mémoire et périphériques examinent ce signal et refusent les accès du monde normal aux zones attribuées au monde sécurisé. Cela permet de créer une zone sûre au sein d'un même SoC sans puce dédiée supplémentaire, d'où sa large adoption dans les smartphones.

Quelle est la caractéristique des TEE de type « enclave », comme SGX d'Intel ?

  1. AL'ensemble du noyau du système d'exploitation s'exécute sur un disque dur externe
  2. BUne partie de l'application s'exécute dans une zone que le CPU protège en chiffrant la mémoire, rendant son contenu illisible même pour le système d'exploitation ou l'hyperviseur
  3. CLes données de l'enclave peuvent être modifiées librement par n'importe qui
Afficher la réponse et l'explication

Réponse : B. Une partie de l'application s'exécute dans une zone que le CPU protège en chiffrant la mémoire, rendant son contenu illisible même pour le système d'exploitation ou l'hyperviseur

Dans une enclave, seule la partie de l'application traitant des secrets s'exécute dans une zone mémoire spéciale, chiffrée dans le CPU avant d'être placée en mémoire principale (selon l'implémentation, les falsifications sont aussi détectées). Son contenu est invisible pour le système d'exploitation, l'hyperviseur et un attaquant lisant physiquement la mémoire. Seuls le CPU et ce code doivent être dignes de confiance. Des faiblesses face aux attaques par canal auxiliaire ont toutefois été signalées, ce qui impose de la prudence dans son usage.

  1. Dans l'« informatique confidentielle » utilisée dans le cloud, quel est l'objectif des fonctions par lesquelles le CPU chiffre la mémoire des machines virtuelles (AMD SEV, Intel TDX, etc.) ?
  2. Pourquoi désactive-t-on parfois le multithreading simultané (SMT) du CPU dans les systèmes effectuant des traitements confidentiels ?
  3. Quelle est la définition de l'attestation à distance (remote attestation) ?

Questions d'entraînement sur Sécurité matérielle

Termes clés expliqués

TrustZone
Mécanisme de sécurité des processeurs Arm. Il bascule entre monde sécurisé et monde normal et distingue et restreint les accès à la mémoire et aux périphériques grâce à des signaux de bus.
Enclave
Méthode de TEE qui exécute une partie d'une application dans une zone dont le CPU chiffre et protège la mémoire, de sorte que même l'OS ou l'hyperviseur ne peut en lire le contenu.
TEE (environnement d'exécution de confiance)
Environnement d'exécution protégé par le matériel, isolé même du système d'exploitation ordinaire. Il exécute les traitements sensibles comme la gestion des clés ou l'authentification. Par exemple TrustZone d'Arm.
Hyperviseur
Logiciel permettant d'exécuter plusieurs machines virtuelles sur un même ordinateur. Il répartit CPU, mémoire et périphériques entre les OS des machines virtuelles et les isole les uns des autres. Aussi appelé moniteur de machines virtuelles.
Attestation à distance
Mécanisme par lequel un équipement signe, avec une clé interne à la puce, l'état du logiciel qu'il exécute et le présente à un serveur distant pour faire vérifier qu'il est digne de confiance.
Attaque par canal auxiliaire
Attaque qui déduit des secrets comme des clés à partir d'informations physiques autres que la sortie normale : temps de traitement, consommation, rayonnement électromagnétique, etc.
Exécution spéculative
Mécanisme du CPU qui exécute par avance les instructions suivantes sur la base d'une prédiction, avant de connaître par exemple le résultat d'un branchement. En cas d'erreur, les résultats sont annulés, mais des traces peuvent subsister dans le cache, etc.

Comparatifs associés