Nextcloud, Server-Side- und End-to-End Encryption

news

Nextcloud bietet mehrere Verschlüsselungsebenen: Transportverschlüsselung (TLS), Server Side Encryption (SSE) und End-to-End-Encryption (E2E, E2EE).

Nextcloud bietet mehrere Verschlüsselungsebenen.

  • Transportverschlüsselung (TLS)
    Schützt vor Lauschangriffen. Schützt nicht vor kompromittierten Geräten oder Servern.

  • Server Side Encryption (SSE) – Daten beim Speichern verschlüsseln
    Optional. Jede Datei wird vor dem Speichern mit einem eindeutigen Schlüssel verschlüsselt – entweder serverweit (aus Funktions- und Leistungsgründen der Standard), oder einem Schlüssel pro Benutzer. SSE verschlüsselt nur den Inhalt der Dateien, nicht aber deren Namen oder Ordnerstruktur.

    Server Side Encryption wurde ursprünglich eingeführt, um External Storage wie Dropbox und dergleichen sicher anbinden zu können: Nextcloud sorgt dann dafür, dass alle Daten ausserhalb des eigenen Standorts verschlüsselt gespeichert werden.

    Der serverweite Schlüssel (technisch ein Passwort zum Entschlüsseln der Dateien) wird mit Hilfe des Secrets in der config.php verschlüsselt im Nextcloud-Datenverzeichnis abgelegt (und lässt sich im Desaster-Fall wiederherstellen).

    Benutzerschlüssel liegen in den Datenverzeichnissen der einzelnen Benutzer und werden mit deren Benutzerkennwort verschlüsselt. Wird dieses Feature aktiviert, ist der Einsatz eines Online-Office (Collabora, OnlyOffice) nicht mehr möglich.

    SSE schützt Dateien, solange die Dateiablage nicht auf dem gleichen System wie Nextcloud selbst liegt – eine auf ein lokales Datenverzeichnis angwendete SSE bietet wenn überhaupt nur geringen Schutz, schliesslich wird hier der Schlüssel zusammen mit den Daten gespeichert.

    Stand 2021-04 "lügt" die Web-Oberfläche noch: ist "Serverseitige Verschlüsselung" aktiviert, meldet das eigene Benutzerprofil unter "Datenschutz" ein "Deine Dateien sind mittels der serverseitigen Verschlüsselung verschlüsselt" – egal ob "Benutzerverzeichnis verschlüsseln" aktiviert wurde.

    Fazit:

    • SSE macht Sinn, wenn die App External Storage angeboten wird, oder das Datenverzeichnis nicht auf dem gleichen System wie die Nextcloud-Installation selbst liegt.
    • Die Anwendung von SSE auf ein lokales Datenverzeichnis bringt keinen Sicherheitsvorteil (trügerische Sicherheit, die durch Meldungen unter "Datenschutz" noch verstärkt werden).
    • Sollen Dateiinhalte vor dem Serverbetreiber verborgen werden, muss End-to-End-Encryption (E2E) zum Einsatz kommen.
  • End-to-End-Encryption (E2E, E2EE – Client-basierte Verschlüsselung)
    Der ultimative Schutz der Benutzerdaten wird durch die Ende-zu-Ende-Verschlüsselung gewährleistet. Nur hier hat der Server niemals Zugriff auf Schlüssel oder unverschlüsselte Dateien. Der Sync-Client verschlüsselt die Daten vor dem Senden innerhalb des E2E-fähigen Ordners (jedoch nicht in darunterliegenden Ordnern).

    Das geht nicht ohne Funktionsverlust: die Nextcloud-Weboberfläche kann die verschlüsselten Dateien nicht einsehen, der Sync-Client ist damit Pflicht. Eine öffentliche Freigabe oder Freigabe an Gruppen ist nicht möglich, die Suchmaschine kennt deren Inhalte nicht, und Collaboration per Online-Office funktioniert nicht.

    E2E lässt sich für einen oder mehrere Ordner aktivieren. Der Inhalt jedes dieser Ordner wird vollständig vom Server ausgeblendet, einschliesslich Dateinamen und Verzeichnisstruktur. Um die Daten mit anderen Geräten zu synchronisieren, müssen Benutzer eine vom ersten Gerät erstellte Mnemonic-Passphrase nutzen. Sobald dies erledigt ist, werden durchgängig verschlüsselte Ordner nahtlos zwischen Geräten synchronisiert. Nextcloud kann auch so konfiguriert werden, dass alle von der Finanzabteilung erstellten Dateien automatisch verschlüsselt werden.

    Fazit:

    • E2E hat einen sehr spezifischen Anwendungsfall, die Einschränkungen sind nur bei sensiblen Daten sinnvoll.
    • Verliert ein Benutzer seine Mnemonic-Passphrase, sind auch die damit verschlüsselten Daten unweigerlich verloren.

Der gleichzeitige Betrieb von SSE mit lokal verschlüsseltem Benutzerverzeichnis und E2E ist zwar möglich, wird aber nicht unterstützt – beides zusammen wird zu technischen Problemen führen. Und egal welche der beiden Methoden zum Einsatz kommt: verschlüsselt werden nur Dateien. Kalender, ToDo-Listen und andere Daten werden nicht verschlüsselt, da es beispielsweise im Bereich CalDAV dafür an Clients fehlt, die dies unterstützen.

Hier finden sich noch einige Details: https://nextcloud.com/blog/encryption-in-nextcloud/

Was setzt ihr bei der Linuxfabrik davon um?

Im Teams- und Enterprise-Umfeld überlassen wir den Entscheid dem dortigen Server-Administrator.

Was uns betrifft: E2E kommt derzeit auf keiner Einzelnutzer-Instanz zum Einsatz. Zu lange galt der Status als "experimental", zu gross waren die damit verbundenen technischen Probleme, zu gross der Support-Aufwand, zu lange wurde an dem Thema nach aussen nicht weiterentwickelt. Die Freigabe ist jetzt erst ein paar Monate alt und muss von uns in Bezug auf NC21 gründlich unter die Lupe genommen werden.

Siehe dazu auch die Issues

  • https://github.com/nextcloud/desktop/issues/816
  • https://github.com/nextcloud/desktop/issues/774

oder das Rating der E2E-App auf https://apps.nextcloud.com/apps/end_to_end_encryption

Sollte E2E funktionieren, melden wir uns garantiert zurück. 🙂

Update 2024-01: Wir setzen es immer noch nicht produktiv ein, und empfehlen es auch nicht.

Background

Die "Mnemonic-Passphrase" ist ein aus 12 zufälligen, englischen Wörtern bestehendes Passwort. Die Mnemonic-Passphrase wird zur Verschlüsselung der Dateien verwendet - daher diese UNBEDINGT notieren und in einem Passwort-Manager speichern. Sollte man mehrere Nextcloud-Clients nutzen, wird man nach dieser Passphrase gefragt. Man kann sich die Passphrase im Client unter "Account > Show E2E mnemonic" nochmals anzeigen lassen. Es wird ein Client >= v2.5.0 benötigt. Kein Admin dieser Welt kann helfen, falls man die Passphrase vergessen oder nicht notiert hat.

So erhält man die Mnemonic-Passphrase:

  • Nextcloud-Client in der neuesten Version installieren oder updaten (>= 2.5.0).
  • Nextcloud-Client (erneut) mit dem Server verbinden. Es erscheint ein Popup mit der "Mnemonic Passphrase". Passphrase notieren.

So verschlüsselt man einen Ordner:

  • Einen neuen, leeren Ordner im lokalen Nextcloud-Verzeichnis anlegen.
  • Nextcloud-Client öffnen, rechte Maustaste auf den Ordner und "Encrypt" auswählen.

Das war's. Dateien, die in diesen Ordnern landen, werden nur noch verschlüsselt auf einen Nextcloud-Server hochgeladen - uneinsehbar für den Rest der Welt. Es können beliebig viele Ordner verschlüsselt werden. Das ist mit verschlüsselten Ordnern nicht mehr möglich:

  • Zugriff per Web-Interface
  • Freigabe an eine Gruppe
  • Freigabe auf Dateiebene
  • Serverseitige Suche oder Vorschau
  • Serverseitiger Papierkorb und Versionierung

E2E ist laut Nextcloud offiziell seit 2020-08 (NC19+) produktiv einsetzbar, davor galt E2E lange Jahre als "experimental".

Die End-to-End-Verschlüsselung in Nextcloud schützt Benutzerdaten vor jedem Angriffsszenario, selbst im Falle einer unentdeckten Sicherheitslücke oder vor (nicht vertrauenswürdigen) Serverbetreibern.

Die Daten auf den Benutzergeräten selbst werden nicht geschützt, und der Diebstahl eines unverschlüsselten, entsperrten Benutzergeräts würde es einem Angreifer ermöglichen, auf private Schlüssel zuzugreifen.

Vorheriger Beitrag Nächster Beitrag