IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Décisions SGBD Discussion :

ZeroDB : une base de données open source chiffrée de bout en bout


Sujet :

Décisions SGBD

  1. #1
    Chroniqueur Actualités
    Avatar de Michael Guilloux
    Homme Profil pro
    Data Consultant
    Inscrit en
    Juillet 2013
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Data Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2 888
    Points : 87 206
    Points
    87 206
    Billets dans le blog
    2
    Par défaut ZeroDB : une base de données open source chiffrée de bout en bout
    ZeroDB : une base de données open source chiffrée de bout en bout
    Elle permet aux applications d’interroger des données chiffrées

    ZeroDB est une base de données open source « zero knowlegde » ou chiffrée de bout en bout. Écrite en Python, elle est basée sur ZODB (Zope Object DataBase), la base de données du serveur d’applications Zope. D’après sa description sur GitHub, « ZeroDB rend plus facile de développer des applications avec des garanties de sécurité et de confidentialité fortes, en permettant aux applications d’interroger des données chiffrées ».

    Le serveur de base de données ne sait rien sur les données qu’il stocke, ce qui réduit considérablement le risque de violation des données. En effet, toutes les opérations se font du côté client, qu’il s’agisse du chiffrement, du déchiffrement ou de la compression des données. La logique de base de données est également gérée côté client. En ce qui concerne les requêtes, elles sont chiffrées de bout en bout. Cela signifie que les clients peuvent exécuter des requêtes sur les bases de données chiffrées et récupérer des enregistrements sans jamais exposer les données déchiffrées au serveur de base de données. Les données sur le serveur sont toujours chiffrées, qu’elles soient au repos, en transit, ou en cours d’utilisation. Le serveur n’a jamais aucune connaissance sur les données, leur structure ou leur ordre. Cela implique que même si des attaquants arrivent à infiltrer le serveur, ils ne pourront pas avoir accès aux données en clair.

    En ce qui concerne les fonctionnalités offertes par ZeroDB, il lui est attribué d’offrir la plupart des fonctionnalités attendues dans une base de données moderne. La base de données offre également des performances adéquates. En exécutant la logique de requête côté client, ZeroDB ne ralentit pas les requêtes parallèles. Les clients peuvent encore exécuter des requêtes à distance sur les données chiffrées sans avoir à les télécharger totalement et sans rencontrer une baisse de performance excessive. Ils disposent également d’un cache qui stocke les parties les plus utilisées des structures de données et qui accélère considérablement les requêtes, quelles que soient leurs tailles.

    ZeroDB pourra donc permettre aux développeurs de décharger des applications sensibles dans le cloud. Ces derniers pourront ainsi bénéficier des avantages de coût et de performance du cloud, sans compromettre la sécurité ou la facilité d’utilisation de leurs données.

    Une implémentation en Python de la base de données chiffrée de bout en bout est disponible depuis hier. Un client JavaScript de ZeroDB est également prévu dans un avenir proche.

    Sources : Blog ZeroDB, ZeroDB sur GitHub, ZeroDB Server sur GitHub

    Et vous ?

    Que pensez-vous de ZeroDB ?
    Utilisez-vous d’autres bases de données chiffrées ? Lesquelles ?

    Voir aussi

    Forums Bases de données
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 147
    Points : 7 392
    Points
    7 392
    Billets dans le blog
    1
    Par défaut
    Je suis peut-être pas bien réveillé mais...

    1/ Comment assurer l'intégrité des données si les requêtes se font côté client, et que le serveur ne peut pas analyser les données ? (pas de FK, de contrainte d'unicité, etc.), ou alors au prix d'une gestion des locks au niveau table de très longue durée
    2/ J'ai toujours cru que le point d'entrée vulnérable d'un SI, c'est pas le serveur, mais les clients qui s'y connectent (Régis qui ramène la clé USB verrolée de chez lui pour jouer à Tetrinet avec son pote Robert), ou bien Ginette qui lance la macro contenue dans le PPTX bourré de chatons qu'elle vient de recevoir par mail

    Du coup je vois mal l'intérêt de cette base, qui ne joue finalement pas d'autre rôle qu'une gestion d'artiches protégées par mot de passe (genre un dossier partagé avec des ZIP protégés dedans...)
    On ne jouit bien que de ce qu’on partage.

  3. #3
    Expert confirmé
    Avatar de TiranusKBX
    Homme Profil pro
    Développeur C, C++, C#, Python, PHP, HTML, JS, Laravel, Vue.js
    Inscrit en
    Avril 2013
    Messages
    1 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur C, C++, C#, Python, PHP, HTML, JS, Laravel, Vue.js
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 476
    Points : 4 805
    Points
    4 805
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    Je suis peut-être pas bien réveillé mais...

    1/ Comment assurer l'intégrité des données si les requêtes se font côté client, et que le serveur ne peut pas analyser les données ? (pas de FK, de contrainte d'unicité, etc.), ou alors au prix d'une gestion des locks au niveau table de très longue durée
    2/ J'ai toujours cru que le point d'entrée vulnérable d'un SI, c'est pas le serveur, mais les clients qui s'y connectent (Régis qui ramène la clé USB verrolée de chez lui pour jouer à Tetrinet avec son pote Robert), ou bien Ginette qui lance la macro contenue dans le PPTX bourré de chatons qu'elle vient de recevoir par mail

    Du coup je vois mal l'intérêt de cette base, qui ne joue finalement pas d'autre rôle qu'une gestion d'artiches protégées par mot de passe (genre un dossier partagé avec des ZIP protégés dedans...)
    c'est sans doute une base document
    quand à sont intérêt cela peut se présenter si la base est sur un serveur à part et pas forcément dans la même architecture réseau que le client
    Rien, je n'ai plus rien de pertinent à ajouter

  4. #4
    Membre confirmé Avatar de heid
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Mai 2002
    Messages : 388
    Points : 597
    Points
    597
    Par défaut
    Pour les index j'imagine que la valeur chiffrée est indexable mais comment fonctionnent les requête de range dans ce cas si le déchiffrage se fait coté client : where name > "B" ?

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 756
    Points : 52 534
    Points
    52 534
    Billets dans le blog
    5
    Par défaut
    Il faut bien stocker les clefs quelque part... Si c'est sur le poste client c'est évidemment mien bien sécurisé en général que sur un serveur.
    Le seul moyen efficace de stocker les clefs de chiffrement sans qu'elles soient volable est d'utiliser un HSM (Hardware Security Module) qui se branche sur le réseau, contient les clefs et s'autodétruit en cas de tentative d'accès malintentionné. Exemple Thales nShield

    En outre pour éviter les attaques de décryptage par analyse fréquentielle il convient de saler le chiffrement ce que ne fais aucun SGBD open source (ni MySQL ni PostGreSQL...).

    Enfin, le chiffrement du stockage des bases existe à travers TDE (Transparent Data Encryption) depuis de nombreuses années dans les SGBDR modernes (2008 par exemple pour SQL Server...).

    Pour couronner le tout, effectivement les performances risque d'être lamentable car :
    1) on n'a pas encore trouvé d'algorithme permettant de rendre cherchable par range (>, <, BETWEEN...) des données chiffrées sans salage
    2) avec salage du chiffrement aucun prédicat de recherche, même l'égalité, n'est cherchable ! Il faut décrypter toutes les données pour comparer ce qui conduit à des "scans" systématique de table pour toute recherches avec en sus l'extraoverhead du déchiffrement ligne à ligne... !

    Et ne parlons pas d'un sujet déjà évoqué... L'impossible gestion de l'intégrité des données !

    Donc, une vrai foutaise !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 31
    Points : 153
    Points
    153
    Par défaut
    Le serveur n’a jamais aucune connaissance sur les données, leur structure ou leur ordre
    Cela remet en cause les performances du serveur. Comment peut-il récupérer les données en se basant sur les PK, FK ou INDEX?
    De plus, toutes les données stockées ne sont pas toutes critiques, il n'est donc pas util de les crypter/décrypter à chaque fois!

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Points : 2 528
    Points
    2 528
    Par défaut
    Il y a aussi un site officiel : http://www.zerodb.io/

    Je dois reconnaitre que pour l'instant, je ne comprends pas vraiment ce que ça fait ni comment ça marche...

    Edit : j'ai lu la page de documentation, et je ne comprends toujours pas en quoi on peut même considérer que c'est une base de données (puisque tout le travail de résolution des requêtes est fait au niveau du client), et contre quels risques elle est supposée nous prémunir. Bof...

  8. #8
    Expert confirmé
    Avatar de TiranusKBX
    Homme Profil pro
    Développeur C, C++, C#, Python, PHP, HTML, JS, Laravel, Vue.js
    Inscrit en
    Avril 2013
    Messages
    1 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur C, C++, C#, Python, PHP, HTML, JS, Laravel, Vue.js
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 476
    Points : 4 805
    Points
    4 805
    Billets dans le blog
    6
    Par défaut
    Dans la doc j'ai pus voir que ça s'utilise comme le 'Cloud Storage Azure' de Microsoft, des requêtes simples, pas de JOIN et une simple condition de recharche
    Les tables stockquent des 'Entité' dont le format est variable dans les tables donc le client doit gérer la logique
    Rien, je n'ai plus rien de pertinent à ajouter

  9. #9
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 147
    Points : 7 392
    Points
    7 392
    Billets dans le blog
    1
    Par défaut
    On en revient donc au fameux serveur de fichier ZIP protégés par mot de passe que j'évoquais...
    On ne jouit bien que de ce qu’on partage.

  10. #10
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Points : 2 528
    Points
    2 528
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    On en revient donc au fameux serveur de fichier ZIP protégés par mot de passe que j'évoquais...
    Ben ça ressemble assez à ça, en fait. Avec une API...

  11. #11
    Expert confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Points : 4 442
    Points
    4 442
    Par défaut
    Donc... ya une DB chiffrée sur un serveur, un client fait une requête...
    La requête est chiffrée donc le serveur ne peut pas la traiter.
    Il envoie la base complète au client qui la déchiffre, effectue sa requête, chiffre la base et la renvoie au serveur ?

  12. #12
    Expert confirmé
    Avatar de TiranusKBX
    Homme Profil pro
    Développeur C, C++, C#, Python, PHP, HTML, JS, Laravel, Vue.js
    Inscrit en
    Avril 2013
    Messages
    1 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur C, C++, C#, Python, PHP, HTML, JS, Laravel, Vue.js
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 476
    Points : 4 805
    Points
    4 805
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Iradrille Voir le message
    Donc... ya une DB chiffrée sur un serveur, un client fait une requête...
    La requête est chiffrée donc le serveur ne peut pas la traiter.
    Il envoie la base complète au client qui la déchiffre, effectue sa requête, chiffre la base et la renvoie au serveur ?
    non sur ce genre de base tu fait une requête sur une table, il te renvois des données que sur la table et la recherche est possible car ton client vas donnez les valeurs de recherche cryptées au serveur, sinon tu l'aurait bien mal
    Rien, je n'ai plus rien de pertinent à ajouter

Discussions similaires

  1. Solution open source: centraliser et gérer une base de données
    Par mond14 dans le forum Autres Solutions d'entreprise
    Réponses: 0
    Dernier message: 01/11/2014, 12h17
  2. MapDB : une base de données open source pour JAVA annoncée par CodeFutures
    Par Malick dans le forum Logiciels Libres & Open Source
    Réponses: 0
    Dernier message: 14/05/2014, 14h50
  3. Réponses: 1
    Dernier message: 26/03/2007, 18h50
  4. VB6 Connection à une base de données dont la source est une adresse url
    Par yangoal25 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 13/11/2006, 18h47
  5. De nouveaux moteurs de bases de données open source pour MySQL
    Par brice01 dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 10/05/2006, 14h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo