Wie arbeitet die serverseitige Verschlüsselung bei Nextcloud?

Nach der ersten Anmeldung eines Anwenders wird ein Schlüsselpaar bestehend aus privatem und öffenlichem Schlüssel generiert. Diese Schlüssel werden im Datenordner von Nextcloud im Pfad /files_encryption/ abgelegt. Der private Schlüssel wird mit dem PBKDF2 Derivat des Anmeldepassworts mit SHA256 verschlüsselt und 100000 mal iteriert.

Wenn eine Datei in Nextcloud erstellt wird, wird ein neuer Schlüssel für diese Datei erzeugt. Dies ist ein symmetrischer Schlüssel der im Datenordner abgelegt wird. Ein Zugriff auf diesen Schlüssel ist nur mit dem privaten Schlüssel des Anwenders möglich.

Der private Schlüssel des Anwenders wird zu keinem Zeitpunkt in unverschlüsselter Form auf der Festplatte abgelegt und ist ausschließlich in der jeweiligen PHP-Session gespeichert. Diese wiederum wird mit einem speziellen Cookie verschlüsselt das bei jeder Anfrage vom Anwender mitgeschickt wird. Somit ist auch ein Zugriff durch einen Administrator ausgeschlossen.

Ein Administrator könnte jedoch unter folgenden Umständen dennoch Zugriff zu Daten erlangen:

  1. Modifikation des Nextcloud Programmcodes zum Abfangen des Anwenderkennworts oder des privaten Schlüssels.
  2. Dump des Arbeitsspeichers zur Laufzeit um sensible Daten wie Schlüssel zu extrahieren.
  3. Mitschneiden des Datenverkehrs

Installationsempfehlungen

Wir empfehlen dringend die Nutzung eines Setups mit einem Masterschlüssel. Dies hat viele Vorteile, u.A.:

  • bessere Performance, da eine Datei die freigegeben wird nicht separat für jeden Nutzer der Freigabe verschlüsselt werden muss.
  • Administratoren können die Mitgliedschaften in Gruppen für Anwender ändern, ohne das weitere zusätzliche Anwenerinteraktion erforderlich wird.
  • ein Master-Key Setup arbeitet mit allen verfügbaren Benutzerdatenbackends wie AD/LDAP, auch SSO-Lösungen die ohne Kennwort arbeiten.
  • Benutzer oder Administratoren können Anwenderkennworte zurücksetzen, ohne den Zugriff auf die verschlüsselten Dateien zu verlieren.
  • Dateien können einfacher einem anderen Nutzer zugewiesen werden (z.B. bei Weggang aus dem Unternehmen).
  • impersonate app let the administrator recover (or look at) users files
  • Collabora wird seit Nextcloud 12 ohne weitere Anpassungen unterstützt.

Das Masterkey Setup ist seit Nextcloud 13 der Default. Die Verschlüsselung muss auf der Shell aktiviert werden, eine Einrichtung über die grafische Oberfläche ist nicht ausreichend.

./occ encryption:enable-master-key

Es gibt keine Möglichkeit ein System das nicht mittels Masterkey aufgesetzt wurde später auf dieses System umzustellen. Deshalb muss dies aktiviert werden, bevor der erste Anwender Dateien überträgt die dann verschlüsselt werden.