VerschlĂĽsselnde Datenbank ZeroDB wird Open Source
ZeroDB basiert auf der Zope Object Database und bietet Ende-zu-Ende-VerschlĂĽsselung. Von der Offenlegung des Source-Codes versprechen sich die Macher UnterstĂĽtzung aus der Community und Projektideen.
ZeroDB ist eine objektorientierte Datenbank mit Ende-zu-Ende-Verschlüsselung. Die Macher kündigten das Projekt im März zunächst als proprietäre Software in der Beta an. Nun haben sie die Datenbank unter der AGPL-Lizenz veröffentlicht, wie der jüngste Blog-Beitrag verkündet.
Datenbanklogik auf dem Client
Das Besondere an ZeroDB ist, dass der Client für die Datenbanklogik verantwortlich ist. Er verschlüsselt die Daten und schickt sie an den Server, der dadurch weder Einblick in die Daten noch ihre Strukturen erhält. Da die Schlüssel auf dem Client bleiben, können Angreifer mit den Rohdaten auf dem Server nichts anfangen und auch keine Schlüssel von einem Gateway abgreifen.
Der Server legt die Daten in B-Bäumen ab. Die einzelnen Knoten verschlüsselt der Client beim Erstellen oder Ändern. Bei der Suche über den Baum müssen Client und Server für jeden Schritt miteinander kommunizieren, da letzterer auch die Verbindungen und die Organisationsstruktur nicht kennt. Laut den Entwicklern hängt die Performance vor allem von der Latenz bei der Kommunikation ab. Da der Server sich nicht selbst um die Entschlüsselung oder Datenbanklogik kümmert, kann er auch zahlreiche Anfragen parallel ohne erhöhte Auslastung der Server-CPU bearbeiten.
Performance-Grenzen
Allerdings setzt die Architektur Grenzen bezüglich der Skalierbarkeit: Jeder Knoten geht zur Ver- und Entschlüsselung über das Netzwerk, sodass die Performance mit zunehmender Anzahl und Größe der Knoten abnimmt. Zur sicheren Speicherung von Daten ist das Konzept jedoch durchaus interessant. Offensichtlich suchen die Macher selbst noch nach spannenden Anwendungsmöglichkeiten. Das ist einer der Gründe für die Offenlegung der Quellen, wie die Entwickler im Blog-Beitrag schreiben. Zudem erhofft sich das Team Unterstützung aus der Community.
ZeroDB ist in Python geschrieben und baut auf der Zope Object Databse (ZODB) auf. Das auf Python aufsetzende Web-Frameworks Zope (Z Object Publishing Environment) nutzt ZODB zur persistenten Datenspeicherung. Laut den Entwicklern ist ZeroDBs Design an das von Django ORM und SQL Alchemy angelehnt.
ZeroDB und der ZeroDB-Server sind auf GitHub verfügbar. Die Dokumentation befindet sich auf der ZeroDB-Website. Neben der veröffentlichten Python-Implementierung planen die Macher die Veröffentlichung eines JavaScript-Clients. (rme)