Nextcloud mit Ende-zu-Ende-Verschlüsselung

Nextcloud führt in einem Proof of Concept Ende-zu-Ende-Verschlüsselung für Dateien im Cloud-Speicher ein. Dafür setzt das Unternehmen auf mehrere Schichten symmetrischer und asymmetrischer Verfahren.

In Pocket speichern vorlesen Druckansicht 58 Kommentare lesen
Nextcloud mit Ende-zu-Ende-Verschlüsselung
Lesezeit: 4 Min.
Von
  • Jan Bundesmann
Inhaltsverzeichnis

Nutzer von Nextcloud können ab sofort eine Technical Preview zur Ende-zu-Ende-Verschlüsselung ihrer Daten verwenden. Fertig ist der Server-Part der neuen Funktion und die Implementierung in der Android-App. Die Entwickler planen mit einer generellen Einführung frühestens zur Version 13 des Cloud-Speichers.

Ist der Server vorbereitet, können Anwender die Verschlüsselung in der jeweiligen App oder Anwendung aktivieren, um künftig verschlüsselte Ordner zu erstellen. Beim ersten Mal erzeugt der Client ein Schlüsselpaar, verschlüsselt es und speichert es in der lokalen Keychain sowie auf dem Server. Er erzeugt hierfür eine Merkphrase aus 12 Wörtern, um den privaten Schlüssel zu verschlüsseln. Für die Phrase bedient sich der Client aus der BIP-0039-Wortliste. In der Sammlung befinden sich 2048 Einträge, somit existieren für die Merkphrase 2048^12 Möglichkeiten. Weitere Clients beziehen das Schlüsselpaar vom Server. Nutzer entschlüsseln und aktivieren sie dort über die Merkphrase.

Ist dieser Schritt abgeschlossen, können in der App Ordner als verschlüsselt markiert werden. Dies funktioniert nur bei leeren Ordnern. Lediglich Clients, die ebenfalls die kryptographischen Routinen beherrschen zeigen diese Ordner überhaupt an – für die Web-UI ist dies zum Beispiel nicht vorgesehen, sodass sich darüber keine verschlüsselten Daten verwalten und austauschen lassen.

Für jeden verschlüsselten Ordner erstellt Nextcloud eine eigene Datei mit Metainformationen, die unter anderen für jede Datei darin einen 128-Bit-AES-Schlüssel enthält und welche Nutzer auf den Ordner Zugriff haben. Die Metadaten selbst sind auch verschlüsselt. Dafür gibt es eine weitere kryptographische Ebene: Der metadataKey für die Metadaten wird gegen die öffentlichen Schlüssel aller zugelassenen Nutzer verschlüsselt. Diese müssen also zuerst den metadataKey entschlüsseln, um damit die Metadaten im Klartext zu erhalten wie die einzelnen AES-Schlüssel.

Die eigentlichen kryptographischen Algorithmen führen die Clients aus, der Server verwaltet lediglich die dafür nötigen Metadaten – im Prinzip funktioniert die Ende-zu-Ende-Verschlüsselung so auch auf Shared-Hosting-Angeboten, weil keine zentralen Funktionen nötig sind außer dem Versenden der verschlüsselten Dateien und der Metainformationen.

Zusätzlich können Administratoren einen Zentralschlüssel erstellen, der Zugriff auf verschlüsselte Ordner ermöglicht. Das soll verhindern, dass etwa Unternehmensdaten komplett verloren gehen, weil Angestellte ihr Passwort vergessen haben. Ist solch eine höher privilegierte Zugangsmöglichkeit eingerichtet, warnt der Client Anwender vor. Diese können es ablehnen, den Zentralschlüssel bei den erlaubten Zugängen aufzunehmen – wenn man etwa Public-Cloud-Anbieter ausschließen möchte.

Aufgrund der Struktur fallen damit einzelne Funktionen für verschlüsselte Dateien weg. Das ist der bereits erwähnte Zugriff über das Webinterface, die Suche auf dem Server, Teilen für Gruppen sowie das Teilen einzelner Dateien und eine Versionierung.

Noch steht die App nicht im Appstore zur Verfügung, sondern muss von Hand installiert werden – nach Aussagen der Entwickler ist das Risiko zu groß, dass Daten bei falscher Verwendung verloren gehen, oder dass bei einer Änderung des Konzepts Schritte zur Migration übergangen werden. Sie sehen das Schema derzeit als Proof of Concept und wollen deshalb nur versierten Nutzern den Zugriff darauf gewähren. In einem Blogeintrag erläutern die Entwickler das Design hinter dem Ansatz und die dazugehörigen API-Aufrufe für Client-Entwickler. Die Spezifikationen liegen in einem eigenen GitHub-Repository.

Ende-zu-Ende-Verschlüsselung in Nextcloud (5 Bilder)

Im ersten Schritt erzeugt ein Nutzer auf seinem Client ein Schlüsselpaar. Dieses wird mit einer Passphrase aus 12 Wörtern verschlüsselt und auf dem Server gespeichert. Auf weiteren Clients wird es wieder mit dieser Passphrase entschlüsselt.

[Nachtrag 27.9.2017, 16:45]: Auch ownCloud, aus dem Nextcloud ursprünglich als Fork hervorgegangen war, hat vor zwei Wochen das Plugin Enterprise E2EE für Ende-zu-Ende-Verschlüsselung vorgestellt, das man gemeinsam mit epiKshare entwickelt hatte. Es arbeitet an einzelnen Dateien und ist in ownClouds Outlook-Plugin verankert. Das Verschlüsseln übernimmt die Client-Software, Entschlüsseln kann auch im Browser geschehen. Einzelne Dateien werden per AES-256 verschlüsselt. Beide Verfahren scheinen unterschiedliche Ansätze zu verwenden. (jab)