Last Updated on février 14, 2019 by Talium
Contexte
Avec l’émergence des services cloud, nous sommes amenés à stocker nos données sur des serveurs distants, essentiellement hors de notre contrôle et soumis à des réglementations qui diffèrent selon le pays où ils sont localisés. Ces données potentiellement sensibles doivent être protégées de sorte qu’aucun individu tiers n’ait la possibilité technique d’y accéder.
D’autant qu’avec l’instauration du CLOUD Act permettant à l’administration US de contraindre les fournisseurs de services américains à fournir toute donnée stockée sur des serveurs situés aux États-Unis ou non, le besoin d’une technologie assurant la confidentialité des données est urgent.
Jusqu’à présent, la majorité des applications couple au mieux deux manières de chiffrer leurs données :
- Protocole TLS (Transport Layer Security ) – permet de chiffrer les données en transit, c-à-d les communications réseau.
- Data at Rest Encryption (chiffrement des données stockées) – permet de chiffrer les données au repos (ex: option TDE d’un SGBD-R, système de fichiers chiffré ou full disk encryption)
Cependant, ces techniques ne protègent que les données en transit et celles au repos, mais elles ne permettent pas de sécuriser les données d’exécution – données générées par l’exécution du programme.
En effet, lorsqu’elles sont stockées en mémoire en vue d’un traitement par le microprocesseur, ces données ne sont plus chiffrées, ouvrant alors une large palette d’attaques potentielles (ex: malware, administrateur malveillant).
Solution SGX
Intel SGX (Software Guard Extensions) est un ensemble d’instructions disponible sur de nombreuses architectures de microprocesseurs Intel, permettant à l’utilisateur d’allouer des régions privées de mémoire appelées enclaves, protégées de tout programme ou administrateur présent sur le système d’exploitation.
En d’autres termes, SGX permet d’exécuter une application dans une enclave sécurisée et chiffrée grâce à un jeu d’instructions spécifiques. Comme nous pouvons le voir sur la figure ci-dessous, la surface d’attaque potentielle est réduite de manière drastique lors de l’utilisation de ces enclaves.
Fortanix
Plusieurs sociétés, dont Fortanix, ont implémenté des solutions tirant parti des possibilités proposées par SGX. En plus de fournir un chiffrement des données en transit et des données au repos, Fortanix Runtime Encryption crée un environnement d’exécution pour les applications leur permettant de fonctionner – sans modification – dans un contexte sécurisé, les immunisant ainsi contre de nombreux vecteurs d’attaque.
Pour ce faire, l’environnement établit une base de confiance dans le microprocesseur et l’utilise pour chiffrer l’intégralité des fichiers, les appels réseau, la mémoire système, le cache et autres entrées/sorties de l’application en cours d’exécution, rendant le tout inaccessible à tout processus confondu, quel que soit le niveau de privilège.
La clé de chiffrement utilisée n’est stockée dans aucune mémoire persistante ou vive (RAM). Elle est dérivée par le microprocesseur à partir d’un secret provisionné dans le CPU lors de sa création par Intel. Cette méthode permet au microprocesseur de chiffrer et déchiffrer les données sans recours à un software tiers (système d’exploitation, SMM, BIOS, etc.).
Applications possibles
Les domaines d’applications pouvant avoir recours à cette technologie sont nombreux.
Stockage de données dans le cloud
Plusieurs fournisseurs de service cloud ont activé SGX sur les processeurs de leurs serveurs. Avoir recours à SGX permet de traiter de manière plus sereine ses données sur un untrusted cloud environment, sans lui accorder notre confiance, en s’assurant que le fournisseur lui-même ne puisse pas accéder aux données.
Parmi les fournisseurs cloud ayant activé SGX à ce jour :
- IBM
- Alibaba
- Cloud&Heat
- Packet.net
Dans le cas d’IBM, l’exécution des applications dans des enclaves est permise par son offre IBM Cloud Data Shield qui intègre la technologie Runtime Encryption de Fortanix.
Dans le cadre de son partenariat avec Irene Energy, Talium utilise cette technologie IBM Data Shield pour sécuriser ses wallets Stellar. Dans le contexte de ce projet, il est critique de garantir que les clés privées utilisées, notamment pour la signature des transactions opérant des micropaiements, ne soient jamais présentes en clair en mémoire.
Utilisation de SGX dans le contexte blockchain
Différents protocoles blockchain permettant la création d’applications décentralisées (dApps) sont compatibles avec SGX.
- Enigma v1 permet notamment d’utiliser des données confidentielles dans des Smart Contracts en déportant leur exécution dans une enclave. (NB : pour toute question, contacter un Enigma Ambassador. Exemple.)
- iExec – protocole de cloud computing décentralisé – intègre également l’utilisation de SGX via Fortanix ou Scone (solution alternative) afin de protéger les données des dApps qui sont exécutées sur des machines potentiellement “untrusted”.
Wallet de cryptomonnaie
Ces enclaves peuvent permettre la création de wallets de cryptomonnaie sécurisés stockant les clés privées dans des enclaves. On notera d’ailleurs l’avis concordant du CTO de Ledger Nicolas Bacca, lequel s’exprimait déjà à ce sujet au micro de Sarah-Diane Eck de Sandblock en septembre 2017 :
“ je vois bien un futur où ces technologies seront intégrées (aux téléphones et ordinateurs personnels) et où Ledger fournira un OS sécurisé pouvant fonctionner sur ces architectures. ”
Source : https://youtu.be/PeLUIiZLrPc?t=60
Ces technologies et leur utilisabilité ont évolué depuis et les champs d’application pour la confidentialité des données sont nombreux et exploitables dès à présent.
A noter que la faille liée à l’attaque Foreshadow (L1 Terminal Fault), qui avait été médiatisée début 2018 car elle permettait d’extraire le contenu de mémoires protégées par SGX via une attaque par canal auxiliaire, fut patchée dans la foulée.
Conclusion
La technologie des enclaves SGX est une solution très prometteuse pour répondre aux besoins de confidentialité forte de données (wallets, RGPD, AI/ML sur données confidentielles, etc.) sans nécessiter l’ajout de matériel spécifique pour le chiffrement.