Des travaux ont été réalisés en partenariat avec le CEA pour intégrer des garanties de sécurité supplémentaires au logiciel Parsec. Cette solution s’appuie sur la blockchain [lien vers les 2 premiers articles : https://parsec.cloud/la_blockchain_au_service_du_stockage_cloud_securise/ / https://parsec.cloud/la_blockchain_au_service_du_stockage_cloud_securise_2/].
Parsec garantit la confidentialité, l’intégrité, l’authenticité des données stockées sur le cloud. Cependant dans son modèle de sécurité actuel, le serveur de métadonnées est supposé « honnête mais curieux ». Cela signifie que le serveur est « honnête », il ne dévie pas du protocole mais il est aussi « curieux » des données qu’il voit transiter. Dans ce modèle, un chiffrement des données suffit à préserver la confidentialité des données vis à vis du serveur. Les travaux réalisés s’intéressent au cas où le serveur est dit « malveillant », il tente de compromettre l’intégrité des données.
Retour sur le fonctionnement de Parsec
Parsec est composé de trois entités : le poste de travail des clients, le serveur de métadonnées et le cloud (Figure 1).
Les données à stocker dans le cloud sont envoyées par les clients au serveur de métadonnées. Le serveur agit comme un service de coordination placé entre les clients et le cloud. Les données chiffrées découpées en bloc sont ensuite stockées dans le cloud.
Figure 1 : Modèle de sécurité et entités du logiciel Parsec
Nouveau modèle de sécurité
Dans Parsec, le client est de confiance et le serveur est considéré comme « honnête mais curieux ». Seul le cloud est considéré comme étant un attaquant actif.
Cependant, le projet réalisé s’intéresse maintenant au cas où le serveur a subi une attaque et qu’il est désormais malveillant. On considère qu’il tente de compromettre l’intégrité des données. Les données peuvent être invalides ou périmées. Cela est possible si, par exemple, le serveur ne prend pas en compte des modifications provenant de clients.
Solution
- Ghost blockchain
Le concept de ghost blockchain vient de l’article Ghostor (https://eprint.iacr.org/2020/648.pdf). Cet article propose un système de partage de fichiers basé sur une architecture client-serveur dans lequel le serveur est considéré comme compromis. Le système garantit à la fois l’anonymat des clients et l’intégrité des données par le biais d’un historique vérifiable.
L’historique est stocké dans une blockchain et comprend les opérations de lecture et écriture faites par les clients et des points de contrôle (checkpoints) réalisés à des intervalles de temps réguliers.
La vérification est faite par les clients qui ont accès aux données écrites dans la blockchain.
- Application de la ghost blockchain à Parsec
Afin de répondre à la problématique d’intégrité des données, le concept de la ghost blockchain a été appliqué à Parsec.
L’architecture du nouveau système est présentée dans la Figure 2 ci-dessous.
Figure 2 : Architecture de Parsec comprenant la blockchain
Le système inclut une blockchain, accessible en lecture et écriture par le serveur et les clients.
Chaque opération, de lecture ou d’écriture, réalisée par un client est signée. Elle est enregistrée à la fois localement par le client et aussi par le serveur.
Pour vérifier que le serveur a bien pris en compte les opérations des clients, un mécanisme d’epoch et de vérification d’historique est mis en place.
Figure 3 : Mécanisme de vérification de l’historique
A chaque fin d’epoch (intervalle de temps régulier), le hash de la dernière opération stockée par le serveur est placé dans la blockchain. Les clients peuvent aussi faire une demande d’historique (entre deux epochs) au serveur. Ce mécanisme est représenté en Figure 3. Trois vérifications sont possibles à partir de cet historique :
- chaque client peut vérifier que ses opérations locales sont bien présentes dans la version de l’historique du serveur
- en s’associant, les clients peuvent aussi vérifier que toutes leurs opérations ont été prises en compte
- les clients peuvent enfin vérifier que le hash présent dans la blockchain correspond bien à la dernière opération réalisée par le serveur.
Les clients peuvent donc vérifier l’historique des opérations prises en compte par le serveur.
Cette solution permet de détecter si le serveur a été compromis et qu’il n’a pas suivi le protocole concernant les opérations reçues par les clients. La solution ne permet pas d’éviter les comportements malveillants mais plutôt de les détecter a posteriori.
Cette solution permet également de détecter un serveur de métadonnées PARSEC corrompu lorsque plusieurs instance du serveur parsec sont déployés. En effet, afin de garantir de meilleur disponibilité et de se protéger des attaques par déni de service, plusieurs instances du serveur de métadonnées peuvent être déployés. Les algorithmes de ghost blockchain développés en partenariat avec le CEA permettent également de détecter un serveur compromis et donc de se protéger des attaques du type Byzantine Fault.