[rank_math_breadcrumb]

La blockchain au service du stockage Cloud sécurisé

par | Jan 4, 2022 | Technologie

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 :

  1. chaque client peut vérifier que ses opérations locales sont bien présentes dans la version de l’historique du serveur
  2. en s’associant, les clients peuvent aussi vérifier que toutes leurs opérations ont été prises en compte
  3. 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.

Par Parsec

Dans la même catégorie

Optimize Rust build & test for CI

Optimize Rust build & test for CI

Last year, we migrated our CI to GitHub Actions after previously using Azure Pipelines. We took advantage of the migration to improve our CI. This article will summarize the different steps we have taken to enhance our CI when working with Rust. Parallelize Run...