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