iExec : les « enclaves SGX » pour sécuriser et accélérer le cloud computing
Pour rappel, iExec est un projet franco-chinois, basé à Lyon, qui propose une solution de cloud computing décentralisé fonctionnant grâce à leur token RLC (un token ERC20 sur le réseau Ethereum). Le projet iExec nous présente ici les enclaves SGX, au service du cloud computing.
Définition de ce que sont les « enclaves »
Les « enclaves » sont des solutions intégrées au processeur, assurant la sécurité du matériel. Ce sont des régions isolées de la mémoire qui sont protégées contre les processus exécutés à tous les niveaux de privilège, y compris par le système d’exploitation.
Voyez les enclaves comme une zone fortifiée d’un processeur, qu’aucun élément extérieur ne peut pénétrer.
Et ces enclaves ont avantage certain pour le cloud computing : grâce à la sécurité qu’elles offrent, chacun pourra bientôt exécuter ses applications sur n’importe quel ordinateur sans craindre de divulguer des données sensibles à un tiers.
La solution d’enclave la plus connue est celle appelée Intel SGX.
Enclaves et Proof-of-Contribution d’iExec
Le protocole PoCo (« Proof-of-Contribution », preuve de contribution) d’iExec, qui garantit l’exécution de chaque calcul, est essentiel dans le contexte de la création de puissantes applications décentralisées (dApps).
L’utilisation des enclaves peut améliorer considérablement la sécurité, à condition que la certification d’enclave au niveau de la blockchain soit implémentée. Cela signifie que l’algorithme PoCo qui s’exécute sur la blockchain doit avoir la preuve qu’un travailleur (worker) a réellement exécuté l’application dans une enclave.
Il existe actuellement très peu de fournisseurs de solutions Cloud qui proposent des serveurs avec des enclaves activées, car les enclaves ne sont pas encore disponibles sur tous les processeurs et, même dans ce cas, le BIOS de la carte mère peut ne pas le prendre en charge.
Utilisation des enclaves SGX par iExec
L’intégration des enclaves a toujours fait partie du développement du protocole PoCo. Les développements en cours visent à aider les utilisateurs à protéger les applications décentralisées et la confidentialité des données.
Un mécanisme de signature spécifique est requis pour certifier, sur la blockchain, qu’un travail a bien été exécuté dans une enclave sécurisée.
Le processus de certification d’une enclave SGX par PoCo est le suivant :
- Une enclave est fournie par un worker (travailleur) doté de la capacité SGX, et une paire de clés publique/privée est générée à l’intérieur de l’enclave. Ces clés sont sécurisées et personne en dehors de l’enclave ne peut y accéder ;
- Le worker envoie la clé publique au planificateur à l’aide d’un canal certifié (signé par SGX) ;
- À l’aide du serveur d’attestation Intel (IAS), le planificateur peut vérifier que la clé publique reçue a bien été produite par une enclave exécutant le middleware iExec ;
- Dans le cadre du PoCo, le planificateur envoie un message à la blockchain autorisant le worker à contribuer au bon travail spécifique. Ce message inclut la clé publique de l’enclave. Cette clé publique est enregistrée et limite la soumission des contributions ;
- Le worker exécute la dApp dans l’enclave et signe le résultat avec la clé privée de l’enclave. La dApp peut s’exécuter en dehors d’une enclave, mais l’enclave iExec est conçue de telle sorte que le résultat à signer doit être calculé dans l’environnement sécurisé.
- Le worker envoie le rapport de contribution à la blockchain.
Ce rapport inclut une signature de la contribution de l’enclave, qui peut être vérifiée sur la blockchain.
Schéma du processus, extrait du blog Medium d’iExec :
Si vous souhaitez en savoir plus sur les enclaves et leur intégration dans le cloud computing par le Proof-of-Contribution d’iExec, n’hésitez pas à consulter l’article complet qui leur est consacré sur le blog Medium d’iExec.
Source : Medium || Image from Shutterstock