ZeroDB est un système open-source de gestion de base de données chiffrées, qui permet de s'assurer que seul le client a connaissance de la version en clair des données qu'il reçoit.

La faille Heartbleed découverte en 2014 sur le protocole OpenSSL a montré que même le chiffrement des données ne servait à rien si des vulnérabilités sur les serveurs permettaient d’accéder aux données en clair au moment où elles sont reçues ou déchiffrées. De plus aucun service n’est à l’abri de voir ses serveurs piratés ou perquisitionnés, donnant parfois accès aux données et aux conventions de chiffrement qui permettent d’obtenir la version en clair des contenus hébergés.

C’est donc pour ajouter une autre couche de sécurisation que MacLane Wilkison et Michael Egorov ont créé ZeroDB, un protocole de base de données (adapté de ZODB) qui permet de rendre le serveur aveugle aux données qu’il contient. Toutes les données stockées et indexées dans la BDD sont chiffrées, ainsi que toutes les requêtes envoyées par le client.

simple-protocol

Le serveur se contente de stocker les données, alors que la partie logique est réalisée côté client. Les données sont structurées en arbres binaires où chaque nœud est chiffré par le client avec une clé inconnue par le serveur. Les objets référencés sont eux aussi chiffrés, et le serveur ne sait pas comment les objets sont organisés dans l’arbre, ni même s’ils appartiennent à une structure d’arbre. Lorsque le client réalise une requête, le serveur renvoie les nœuds qu’il traverse et peut fournir les objets chiffrés demandés en retour.

« Comparé à des bases de données traditionnelles, ce protocole demande des requêtes multiples pour réaliser une seule requête », préviennent les créateurs de ZeroDB, qui ont toutefois optimisé le processus pour minimiser le temps de latence.

« En séparant l’index de la base de données en morceaux qui sont chiffrés et stockés sur le serveur, ZeroDB est capable de fournir un chiffrement de bout en bout tout en conservant toutes les fonctionnalités que vous attendez d’une base de données moderne. Et c’est aussi plutôt rapide », promettent ainsi les auteurs qui viennent de rendre ZeroDB open-source. Ils fournissent en outre une implémentation en Python et bientôt un client JavaScript.

Partager sur les réseaux sociaux

Articles liés