Vor ein paar Tagen wurde ein lang ersehntes Feature für Nextcloud nach einer langen Entwicklungs-Phase endlich fertig gestellt: Ab sofort kann die Ende-zu-Ende-Verschlüsselung (E2EE – „end-to-end encryption“) genutzt werden (siehe Nextcloud Blog-Beitrag). In diesem Artikel möchte ich dieses Feature mal genauer unter die Lupe nehmen und in der Praxis testen.
Inhalt
Was ist eigentlich Ende-zu-Ende-Verschlüsselung?
Laut Wikipedia stellt Ende-zu-Ende-Verschlüsselung die Übertragung von Daten dar, bei der die Verschlüsselung über sämtliche Übertragungsstationen hinweg gewährleistet wird.
Um die genaue Funktion, bzw. den Nutzen dieses Features zu erklären, sollen zunächst einmal die Möglichkeiten zur Verschlüsselung in Nextcloud betrachtet werden:
Der wichtigste Teil zur Verschlüsselung stellt die Verschlüsselung des Transportwegs dar. Dies ist keine Funktion von Nextcloud selbst, sondern wird mittels TLS-Zertifikaten durch den Webserver realisiert. Dadurch wird die Verbindung zum Server durch HTTPS verschlüsselt. Details zu findet man im Nextcloud-Tutorial, sowie in den Artikeln TLSv1.3 unter Ubuntu Server 18.04 LTS mit nginx und RSA und ECDSA-Zertifikate mit nginx (Hybrid-Lösung). Die Nutzung von HTTPS zur Verbindung zur eigenen Cloud wird generell immer empfohlen und sollte in jedem Fall umgesetzt werden.
Nextcloud selbst bietet eine Server-seitige Verschlüsselung. Durch die Aktivierung und Konfiguration der entsprechenden App werden Dateien in der eigenen Cloud Server-seitig verschlüsselt. Dies passiert komplett transparent, da der Benutzer mit dieser Verschlüsselung nicht in Berührung kommt. Dabei ist es wichtig zu wissen, dass das Secret zum Ver- und Entschlüsseln dabei auf dem Nextcloud-Server selbst gespeichert wird. Daher eignet sich diese Verschlüsselung eigentlich nur für das Szenario, wenn externe Speicher-Dienste (wie z.B. ein externer FTP-Server oder Google Drive) genutzt werden sollen. In diesem Fall sorgt der Nextcloud-Server dafür, dass die Daten, die auf den externen Speicher landen, stets verschlüsselt sind. Die externen Speicherdienste bekommen dadurch nur „Datenmüll“ zu sehen. Eine Aktivierung der Server-seitigen Verschlüsselung macht dagegen wenig Sinn, da der Key zu Entschlüsseln ja auf dem gleichen Server gespeichert ist. Daher sollte dieses Feature nur aktiviert werden, wenn externer Speicher zum Einsatz kommt, der als nicht vertrauenswürdig eingestuft wird.
Die nächste Stufe der Verschlüsselung ist die komplette Server-Verschlüsselung. Hierbei wird auf Betriebssystem-Ebene das Speichermedium verschlüsselt (z.B. mittels dm-crypt/LUKS). Ein Beispiel stellt der Artikel Verschlüsselte Festplatte (LUKS) mit USB-Stick bei Systemstart entschlüsseln vor. Hier „weiß“ Nextcloud selbst erst einmal nichts von der Verschlüsselung. Für Server-Betreiber stellt diese Art der Verschlüsselung den umfassendsten Schutz dar.
Bei all diesen Verschlüsselungs-Methoden ist es wichtig zu beachten (und die Benutzer darauf hinzuweisen), dass der Server-Administrator potentiell Zugriff auf alle Daten des Servers (inkl. der Benutzer-Daten hat). Das könnte für mache Benutzer ein Problem darstellen, wenn diese hochsensible Daten in die Cloud hochladen wollen und absolut sicher gehen wollen, dass niemand anderes (auch nicht theoretisch) Zugriff auf diese Daten erlangen kann.
Hier setzt nun die Ende-zu-Ende-Verschlüsselung von Nextcloud an. Dabei erfolgt der Zugriff auf die Cloud mit einem Client (Nextcloud-App oder Desktop-Client) und sämtliche betroffenen Daten werden Client-seitig verschlüsselt, d.h. das Secret zum Entschlüsseln der Daten verlässt niemals die Client-Maschine. Somit hat auch der Cloud-Admin keinen Zugriff auf die Daten, da ihm das Secret auch nicht bekannt ist.
Dies hat aber auch zur Folge, dass bei Verlust des Client-Secrets die Daten unwiderruflich verloren gehen. Dessen sollten sich die Benutzer bewusst sein.
Nach diesem Abstecher in die Verschlüsselungs-Theorie geht es nun endlich an die Praxis.
Voraussetzungen
Um die Ende-Zu-Ende-Verschlüsselung nutzen zu können, sollten Nextcloud sowie alle beteiligten Komponenten auf dem neusten Stand sein:
- Nextcloud 19.0.2
- In Nextcloud muss die App End-to-End Encryption installiert und aktiviert sein.
- Desktop-Client (Linux, Windows, macOS): Version 3.00
- Die neuste Version Apps unter Android (3.13.0) oder iOS (3.0.5.8).
Das Feature E2EE war schon längere Zeit angekündigt und auch in der Beta-Phase verfügbar. Meiner Erfahrung nach funktioniert die aktuell (für den Produktiv-Betrieb) freigegebene Version aber nicht in älteren Versionen von Nextcloud, auch wenn es auf den ersten Blick den Anschein macht. Version 19 der Cloud-Software ist hier also Voraussetzung.
Wie immer basiert dieser Artikel auf dem Tutorial Nextcloud auf Ubuntu Server 20.04 LTS mit nginx, MariaDB, PHP, Let’s Encrypt, Redis und Fail2ban.
Hinweis: Durch ein manuelles Update des Nextcloud Desktop-Clients auf die neuste Version wurden alle synchronisierten Order bei mir zurück gesetzt, so dass der Client sämtliche Inhalte der Cloud auf die lokale Festplatte synchronisieren wollte. Hier sollte man nach einem Update drauf achten, wenn man nicht alle Inhalte synchronisiert haben möchte.
Aktivieren der Nextcloud-App
Zunächst muss die entsprechende App im Nextcloud Ap Store heruntergeladen und installiert werden. Dazu einfach im App Store nach „end-to-end“ suchen und schon sollte die App angezeigt werden.

Nach einem Klick auf Herunterladen und installieren ist die App auch schon einsatzbereit.
Die App End-to-End Encryption besitzt übrigens keine Einstellungen, sondern muss nur installiert werden, um die entsprechenden Funktionen für die Clients bereit zu stellen.
Ende-zu-Ende-Verschlüsselung auf der Client-Seite
Weiter geht es nun beim Client, d.h. einem Computer oder Mobilgerät, auf dem der Nextcloud-Desktop-Client bzw. die Nextcloud-App installiert ist. Beispielhaft zeige ich hier die notwendigen Schritte mit dem Nextcloud-Desktop-Client.
Die Anbindung des Clients an die Cloud selbst ist eigentlich selbst erklärend und soll hier nicht weiter ausgeführt werden.
Hinweis: Wenn in der eigenen Cloud eine Zwei-Faktor-Authentifizierung zum Einsatz kommt (z.B. mittels eines Nitrokeys), ist die Verwendung sog. App-Tokens statt einer Authentifizierung mittels des normalen Benutzer-Passworts empfehlenswert (siehe Nextcloud Benutzerhandbuch).
Wenn alle Voraussetzungen erfüllt sind, sollte beim nächsten Start des Nextcloud-Clients ein Hinweis angezeigt werden, dass die Ende-zu-Ende-Verschlüsselung verfügbar ist.

Durch einen Klick auf den entsprechenden Button kann die Passphrase angezeigt werden.

Diese sollte man sich sofort notieren und sicher verwahren. Benötigt wird diese Passphrase dann, wenn man auf einem weiteren Client (z.B. auf einem anderen Rechner) Zugriff auf verschlüsselte Ordner benötigt, die auf dem ursprünglichen Client verschlüsselt wurden.
Hinweis: Wenn man den Hinweis auf die Passphrase durch einen Klick auf das Kreuz geschlossen hat, muss man zur erneuten Anzeige des Hinweises den Nextcloud-Client einfach beenden neu starten.
Die Verschlüsselung kann nun einfach durch einen Klick auf Verschlüsseln im Kontextmenü des entsprechenden Ordners gestartet werden. Der Order muss dazu allerdings leer sein.

Wenn nun auf dem lokalen Rechner in diesen synchronisierten Ordner Dateien und/oder Ordner angelegt werden, werden diese lokal verschlüsselt und mit der Nextcloud synchronisiert.
In der Nextcloud-Weboberfläche sieht man nur noch „Datenmüll“ im verschlüsselten Ordner.

Wichtig ist hier auch die Tatsache, dass man nun keine Berechtigungen mehr hat, über die Weboberfläche Dateien in diesen Ordner hochzuladen oder zu bearbeiten. Der komplette Ordner unterliegt nun ausschließlich der Kontrolle des Nextcloud-Clients.
Wenn nun eine Synchronisierung auf einem weiteren Rechner eingerichtet werden soll, wird man nach der Passphrase für die Ende-zu-Ende-Verschlüsselung gefragt.

Daher ist es wirklich wichtig, sich diese Passphrase zu merken. Ist kein anderer Nextcloud-Client mehr verfügbar und die Passphrase wurde vergessen, besteht keine Möglichkeit mehr, die Daten zu entschlüsseln!
Ende-zu-Ende-Verschlüsselung auf Mobilgeräten
Die mobilen Apps von Nextcloud unterstützen ebenfalls die Ende-zu-Ende-Verschlüsselung. Hier binden sich die verschlüsselten Ordner dann dem Benutzer gegenüber vollkommen transparent ein – diese werden lediglich mit einem Symbol für die Verschlüsselung versehen. Auf die Daten selbst erhält man ganz einfach Zugriff, hier ist kein Unterschied zu nicht verschlüsselten Dateien/Ordnern festzustellen.

Fazit
Die Einführung der Ende-zu-Ende-Verschlüsselung bei Nextcloud wurde lange Zeit angekündigt, hat aber nie so richtig funktioniert. Mit der Freigabe dieses Features kann die Ende-zu-Ende-Verschlüsselung nun auch produktiv eingesetzt werden.
Allerdings sollte beachtet werden, dass nun nicht alle Dateien in der Cloud auf diese Weise verschlüsselt werden sollten. Da dies einen gewissen Overhead mit sich bringt, sollte die Ende-zu-Ende-Verschlüsselung nur wirklich sensiblen Daten vorenthalten bleiben, auf die niemand (also auch nicht der Administrator der Cloud) Zugriff haben darf.
Nach einigen Tests erwies sich die Ende-zu-Ende-Verschlüsselung durchaus als tauglich und einfach zu bedienen. Daher werde ich dieses Feature sicherlich in Zukunft häufiger nutzen
Wie schaut es bei euch aus? Würdet ihr die Ende-zu-Ende-Verschlüsselung nutzen oder habt auf die Fertigstellung dieses Features gewartet? Hinterlasst mir dazu doch einfach einen Kommentar.
Weiterführende Artikel
- Nextcloud auf Ubuntu Server 20.04 LTS mit nginx, MariaDB, PHP, Let’s Encrypt, Redis und Fail2ban
- TLSv1.3 unter Ubuntu Server 18.04 LTS mit nginx
- RSA und ECDSA-Zertifikate mit nginx (Hybrid-Lösung)
- Verschlüsselte Festplatte (LUKS) mit USB-Stick bei Systemstart entschlüsseln
- Nextcloud Zwei-Faktor-Authentifizierung mit Nitrokey FIDO2
Ich habe lange Zeit auf das Feature gewartet und werde es ausgiebig testen. Erst privat, später dann beim Kunden. Hab es total verpennt dementsprechend vielen dank für deinen Hinweis.
Hallo,
können Sie einen kurzen Erfahrungsbericht geben?
Funktioniert das Feature vollumfänglich oder gibt/gab es Probleme?
Viele Grüße und viele Dank
ein großer Nachteil hat die Verschlüsselung jedoch, löschen eines Verschlüsselten Ordner am Client ist nicht möglich.
Hi Hans,
stimmt, das ist ein guter Hinweis. Die einzige Möglichkeit, die Verschlüsselung zu deaktivieren, ist momentan wohl der „Umweg“ über die mobile App (getestet auf Android). Ich bleibe an dem Thema mal dran, mal sehen, ob sich hier noch was tut.
Gruß,
Jan
Grundsätzlich ein tolles Feature.
Was mich aber daran stört ist, dass man keinen Zugriff auf die Daten über den Webbrowser hat.
Das macht die Funktion für mich quasi unbrauchbar.
Wie immer aber wieder ein super Tutorial.
Hallo! Ist es auch möglich, unter nextcloud Nutzern geteilte Ordner zu verschlüsseln?
Hi,
nein, das geht denke ich nicht. Das ist wirklich eine Ende-zu-Ende-Verschlüsselung zwischen einem Client und einem Ordner. Bei geteilten Ordner müsste diese Verschlüsselung ja „dieselbe“ sein.
Gruß,
Jan
SQLSTATE[HY000] [1045]
Sollte einer den gleichen Fehler haben – bei mir war das Problem ein Sonderzeichen (in meinem Fall „!“ ) im Passwort fuer die DB.
Hi,
danke für den Hinweis!
Wo/wann kam dieser Fehler denn? Hängt dies direkt mit E2EE zusammen, oder tritt dieser noch in anderen Situationen auf?
Gruß,
Jan
Hallo,
End-to-End Verschlüsselung funktiniert nach dem Update auf 25.07 nicht mehr.
Dies zur Info.
Gruß Hans