Martins key.matiq-Blog

>> Zurück zum Artikelverzeichnis >>


Zero Knowledge (Clientseitige Verschlüsselung)

Geschrieben: 02.07.2018
Letzte Überarbeitung: 21.09.2021
Stichwörter: Sicherheit

Was ist ein Zero-Knowledge-Server?

Es ist ein Server, der die Ver- und Entschlüsselung der von ihm verwalteten Geheimnisse ausschließlich auf dem Client (d. h. im Browser) vornehmen lässt. Er erhält zu keinem Zeitpunkt Kennnis vom Hauptkennwort und dem davon abgeleiteten Hauptschlüssel, so dass es ihm nicht möglich ist, die Geheimnisse der Benutzer*innen zu entschlüsseln.

Wo liegen die Grenzen des Zero-Knowledge?

Zero-Knowledge ist eine freiwillige Angelegenheit des Servers. Wenn die Server-Betreiber*in es will (oder dazu gezwungen wird), kann sie ihre Software (konkret die JavaScripts, die vom Browser heruntergeladen werden) ändern und kommt an alle gespeicherten und neu eingegebenen Geheimnisse heran, sobald Sie sich das nächste Mal in der Web-App anmelden. D. h. auch beim Zero-Knowledge-Server bedarf es des Vertrauens in den Server-Betreiber*in.

Die Bezeichnung "Zero-Knowledge" ist also etwas irreführend. Daher verwenden diejenigen, die diese Methode als erste für einen Passwortmanager entwickelt haben, inzwischen stattdessen lieber den Begriff "clientseitige Verschlüsselung".

Manche Funktionen (Virencheck hochgeladener Dateien und auch die allgemeine Suchfunktion) sind allein mit der clientseitige Verschlüsselung nicht zufriedendstellend implementierbar. Hier ist ein hybrides Modell sinnvoller.

Hat key.matiq das auch?

Zum Zeitpunkt, als dieser Artikel erstellt wurde: Leider nicht. In den Anfängen von key.matiq haben wir zwar nach Möglichkeiten, bereits im Browser zu verschlüsseln, gesucht, diese aber nicht gefunden.

Würden wir nur Kennworte verschlüsseln, nicht auch hochgeladene Dateien, gäbe es nicht auch Hinterlegungen und Geheimnisübertragungen, wäre es kein großes Problem die clientseitige Verschlüsselung nachzuziehen, so aber ist eine größere Überarbeitung erforderlich, für die wir erst Zeit finden müssen, die auch von anderen Anforderungen beansprucht wird.

Da unser gegenwärtiges Verfahren auch nicht schlecht ist, können wir nicht einfach sagen: clientseitige Verschlüsselung ist das Allerwichtigste. Lassen wir also alles andere stehen und liegen und packen wir es an!

Wie macht es denn key.matiq

Hier wird (bis zur Version 1) das Hauptkennwort zum Server übertragen und dort der Hauptschlüssel daraus gebildet. Das Hauptkennwort wird sofort wieder vergessen, der Hauptschlüssel erst nach Ende einer Sitzung (oder bei Server-Neustart).

Ein spezieller Serverschlüssel, der bei Server-Start zufällig erzeugt wird, wird genutzt, um die Hauptschlüssel der angemeldeten Benutzer*innen zu verschlüsseln und bei Bedarf zu entschlüsseln.

Das Prinzip ist, dass alles, was nötig ist, um an den Klartext der verwalteten Geheimnisse (Hautptkennworte, Hauptschlüssel, Serverschlüssel) immer nur (und so lange wie jeweils nötig) im flüchtigen Hauptspeicher gehalten wird. Der Hauptspeicher ist zugriffsgeschützt und es gelangen auch keine Speicherauszüge auf die Platte.

Update (22.04.2021): Wir arbeiten bereits an der Implementation der clientseitigen Verschlüsselung.

Welches Verfahren ist besser?

Ganz klar ist eine saubere Implementierung der clientseitige Verschlüsselung vorzuziehen. Der Unterschied ist: Bei key.matiq bedarf es (ohne Komplemente) grober Fahrlässigkeit, dass Nutzer*innen-Geheimnisse gefährdet sind, bei einem Server, der mit clientseitige Verschlüsselung arbeitet, bedarf es des Vorsatzes.

Warum sollte ich dann dennoch key.matiq wählen?

Weil key.matiq z. B. Komplemente unterstützt, deren manuelle Benutzung weit mehr Sicherheit bietet, als die clientseitige Verschlüsselung. Hier reicht selbst Vorsatz nicht, um das Verfahren serverseitig zu unterlaufen.

Dieses Verfahren bietet Ihnen die Möglichkeit, key.matiq erst einmal in voller Praxis kennenzulernen, bevor Sie ihm Vertrauen schenken.

Sobald Sie uns näher kennengelernt haben, werden Sie vermutlich die JavaScript-unterstützte Variante der Komplements-Verwendung nutzen wollen. Diese ist sehr viel bequemer als die manuelle Zusammenführung und bietet Ihnen (für die Komplemente) ähnlich hohe Sicherheit wie die clientseitige Verschlüsselung.

key.matiq bietet auch eine ganze Reihe weiterer Sicherheitsfeatures an, die in der Praxis weitaus bedeutender sind, als der Unterschied zwischen der Möglichkeit von Vorsatz und grober Fahrlässigkeit beim Dienstleister.

Update (22.04.2021): Wir werden mit unserer Implementation der clientseitigen Verschlüsselung auch Ausnahmen zulassen, soweit sie diese genehmigen und diese Ihnen gravierende Vorteile in Punkto Sicherheit, Funktionalität oder Bedienungsfreundlichkeit bieten.

Warum sollten Sie US-amerikanischen Servern misstrauen, auch wenn sie die clientseitige Verschlüsselungs-Technologie benutzen?

Wegen der rechtlichen Situation in den USA: Dort können Geheimgerichte Firmen verpflichten, geheime Daten herauszugeben und darüber auch noch Stillschweigen zu wahren. D. h. hier können staatliche Stellen ohne Kontrolle durch die Öffentlichkeit eingreifen. Die Enthüllungen von Edward Snowden haben gezeigt, was das bedeutet.

Wir haben bei dieser Aussage großen Respekt vor der Leistung auch von US-amerikanischen Entwickler*innen, die die clientseitige Verschlüsselung auf dem Gebiet der Geheimnisverwaltung etabliert haben. Aber die US-Gesetze haben leider alle Firmen unter ihrem Herrschaftsbereich kompromittiert und es wird wohl sehr lange dauern, bis diese Fehlentwicklung gestoppt und korrigiert sein wird, und dann auch wieder Vertrauen aufgebaut sein wird, dass diese Korrektur dann zumindest mittelfristig unumkehrbar sein wird.

Wieso keine Browser-Extensions oder Apps mit clientseitige Verschlüsselung?

Nur eine echte Web-App, die auf Browser-Extensions verzichtet, ist von überall her einsetzbar.

Stellen Sie sich vor, Sie besuchen einen Bekannte*n, verlieren auf einem Ausflug ihr Smartphone und möchten das Handy orten. Sie brauchen die Zugangsdaten für die Web-App über die die Ortung möglich ist. Also müssen Sie auf Ihre key.matiq-Box zugreifen.

Ihr Bekannte*r wird Sie sicher an seinen Computer lassen und Ihnen z. B. ein privates Browser-Fenster zur Verfügung stellen. Aber die Installation einer Browser-Extension oder einer App, die Ihr Bekannte*r nicht kennt, wäre schon eine Zumutung.

Wann wird key.matiq das clientseitige Verschlüsselung implementiert haben?

Ab Version 2.0 werden wir Schritt für Schritt die clientseitige Verschlüsselung implementieren. Wir sind bereits mitten in der Arbeit.


>> Zurück zum Artikelverzeichnis >>