Qu'est-ce que Informatique confidentielle (confidential computing) ?

Mode de calcul dans lequel les données en cours de traitement sont manipulées à l'intérieur d'un TEE protégé par le matériel, afin que même l'OS, l'hyperviseur et les administrateurs du fournisseur de cloud ne puissent pas les lire. Il protège les données en cours d'utilisation, en plus du chiffrement des données au repos et en transit. On distingue les TEE de type VM, qui protègent une machine virtuelle entière (comme AMD SEV-SNP, Intel TDX et Arm CCA), et ceux de type enclave, qui protègent une partie d'une application (comme Intel SGX). Les données et les clés secrètes ne sont remises qu'après vérification de l'état interne par attestation à distance.

Nom japonais: 機密コンピューティング

« Informatique confidentielle (confidential computing) » apparaît dans 4 questions d'entraînement réparties sur 2 thèmes, dont Sécurité matérielle : évolutions récentes, Sécurité matérielle.

Domaine: Sécurité matérielle : évolutions récentes

Protéger les données en cours d'utilisation

Les données peuvent être protégées par le chiffrement du stockage lorsqu'elles résident sur un disque, et par TLS ou un protocole analogue lorsqu'elles traversent un réseau. Pour être traitées, elles sont toutefois déchiffrées en mémoire ; jusqu'ici, il fallait donc forcément faire confiance à l'OS, à l'hyperviseur et au fournisseur de cloud qui les gère. En informatique confidentielle, le CPU chiffre la mémoire du TEE avec des clés qui n'existent qu'à l'intérieur du CPU et refuse les accès des logiciels extérieurs au TEE. Les utilisateurs peuvent ainsi traiter des données confidentielles sans faire entièrement confiance à l'infrastructure du cloud.

Type VM et type enclave

Un TEE de type VM protège la mémoire de toute une machine virtuelle ; les OS et applications existants s'exécutent donc presque sans modification, mais un vaste ensemble de logiciels, dont l'OS invité, entre dans la base de confiance (TCB). Une enclave n'exécute dans une zone protégée que la partie qui traite des secrets ; la TCB est donc petite, mais l'application doit être découpée et réécrite. Avec le type VM, la protection de l'intégrité, qui empêche l'hyperviseur de modifier la correspondance des pages ou de réécrire d'anciens contenus, est aussi importante que le chiffrement. Au milieu des années 2020, des solutions combinant le TEE d'un CPU et un GPU pour exécuter des traitements d'IA en informatique confidentielle sont également proposées.

Limites et précautions

Ce que l'informatique confidentielle protège surtout, ce sont les lectures et écritures en mémoire par des logiciels et des administrateurs. Une attaque par canal auxiliaire exploitant les caches ou l'exécution spéculative, le déni de service par un hyperviseur qui refuse des ressources (disponibilité) et les attaques physiques avancées sur le bus mémoire en fonctionnement sortent, selon les schémas, du périmètre protégé. Et si le logiciel à l'intérieur du TEE présente une vulnérabilité, des secrets peuvent fuir par celle-ci. Il est donc important de vérifier l'état interne et la version du firmware par attestation, de garder la TCB petite et de continuer à appliquer les mises à jour, notamment du microcode.

S'entraîner : questions sur Informatique confidentielle (confidential computing)

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.) ?

  1. ADoubler systématiquement la vitesse des machines virtuelles
  2. BAugmenter la capacité mémoire des machines virtuelles
  3. CRendre les données de la machine virtuelle illisibles même pour l'hyperviseur ou les administrateurs du fournisseur de cloud
Afficher la réponse et l'explication

Réponse : C. Rendre les données de la machine virtuelle illisibles même pour l'hyperviseur ou les administrateurs du fournisseur de cloud

Normalement, la mémoire d'une machine virtuelle est librement accessible en lecture et en écriture par l'hyperviseur qui l'exécute, et l'utilisateur doit faire confiance au fournisseur de cloud. Avec le chiffrement de la mémoire, une clé par machine virtuelle est gérée uniquement dans le CPU et le contenu de la mémoire reste chiffré hors du CPU ; il est donc invisible pour l'hyperviseur et pour un attaquant lisant directement la mémoire. Ces fonctions s'utilisent en combinaison avec l'attestation à distance.

Parmi les TEE utilisés en informatique confidentielle, quelle affirmation décrit correctement la différence entre les TEE de type VM, qui protègent une machine virtuelle entière (comme AMD SEV-SNP et Intel TDX), et ceux de type enclave, qui protègent une partie d'une application (comme Intel SGX) ?

  1. ALe type VM ne chiffre pas la mémoire de la machine virtuelle et la protège seulement en vérifiant les droits d'accès ; seul le type enclave protège la mémoire en la chiffrant
  2. BLe type VM permet d'exécuter les OS et applications existants presque sans modification, mais tout l'OS invité entre alors dans ce qu'il faut faire confiance (la TCB)
  3. CAvec le type enclave, l'OS et l'hyperviseur font aussi partie de ce à quoi il faut faire confiance, alors qu'avec le type VM il suffit de faire confiance au CPU
Afficher la réponse et l'explication

Réponse : B. Le type VM permet d'exécuter les OS et applications existants presque sans modification, mais tout l'OS invité entre alors dans ce qu'il faut faire confiance (la TCB)

Une enclave n'exécute dans une zone protégée que la partie de l'application qui traite des secrets ; ce à quoi il faut faire confiance (la TCB : trusted computing base) se réduit donc au CPU et au code de l'enclave, mais l'application doit être découpée et réécrite. Le type VM chiffre la mémoire de toute la machine virtuelle et la protège de l'hyperviseur et des administrateurs du cloud, si bien que les logiciels existants peuvent être migrés presque sans modification. En contrepartie, l'OS invité et tous les logiciels qui s'exécutent au-dessus entrent dans la TCB, et une vulnérabilité à cet endroit peut faire fuir des secrets. Plus la TCB est petite, plus elle est facile à vérifier et plus la surface d'attaque est réduite ; le choix est donc un compromis entre facilité d'utilisation et étendue de ce à quoi il faut faire confiance.

Questions fréquentes

Si la mémoire est chiffrée, pourquoi l'attestation est-elle nécessaire ?

Le chiffrement empêche seulement les tiers de lire ; il ne dit rien de ce qui s'exécute à l'intérieur. Le traitement pourrait tourner dans un faux TEE, sur un OS invité falsifié ou sur un firmware antérieur à la correction d'une vulnérabilité ; la clé qui déchiffre les données n'est donc remise qu'après vérification des mesures et des numéros de version signés par la clé du CPU.

N'a-t-on alors plus du tout besoin de faire confiance au fournisseur de cloud ?

Le risque que le contenu de la mémoire soit lu diminue fortement, mais il faut toujours faire confiance au fabricant du CPU et à son firmware, et le fournisseur peut encore perturber le service en retenant des ressources. Il faut vérifier, pour chaque schéma, à quoi l'on fait confiance et contre quoi il protège.

Questions mentionnant « Informatique confidentielle (confidential computing) » (4)

  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. Parmi les TEE utilisés en informatique confidentielle, quelle affirmation décrit correctement la différence entre les TEE de type VM, qui protègent une machine virtuelle entière (comme AMD SEV-SNP et Intel TDX), et ceux de type enclave, qui protègent une partie d'une application (comme Intel SGX) ?
  3. En informatique confidentielle, le serveur de vérification de l'utilisateur (le vérificateur) contrôle le rapport d'attestation reçu d'un TEE de type VM avant de remettre la clé qui déchiffre les données. Quel est l'ensemble de points à vérifier le plus approprié ?
  4. Au milieu des années 2020, certains GPU pour centres de données disposent de fonctions permettant de les utiliser en informatique confidentielle avec le TEE d'un CPU. Quelle affirmation décrit correctement le principe de ce mécanisme ?

Termes associés

Hyperviseur TEE (environnement d'exécution de confiance) Attestation à distance Enclave Nonce GPU Inférence Arm CCA (Confidential Compute Architecture) Attaque par exécution transitoire Authentification de pointeurs (PAC)

Retour au glossaire