eCryptFS – Benutzerdaten verschlüsseln

eCryptFS ist eine native Verschlüsselungslösung für Linux-Systeme. Im Unterschied zu LUKS (dm-crypt) verschlüsselt es die Daten nicht in Containern, sondern auf Dateibasis. Jede Datei wird einzeln verschlüsselt und bei Bedarf automatisch durch das System entschlüsselt.

eCryptFS ist deshalb keine Lösung, um eine Vollverschlüsselung des Betriebssystems zu ermöglichen, es ist aber hervorragend geeignet, um beispielsweise die Benutzerdaten zu verschlüsseln. eCryptFS ist dadurch in hohem Maße mehrbenutzerfähig, da die Benutzerdaten jedes Benutzers durch dessen individuelles Benutzerpasswort ver- und entschlüsselt werden. Dies geschieht automatisch beim Login. Damit unterscheidet sich eCryptFS von LUKS, das direkt nach dem Bootloader und vor dem Start des Betriebssystems ein Kennwort abfragt.

Ubuntu und seine Derivate boten bis zur Version 18.04 eine Verschlüsselung via eCryptfs bereits bei der Installation an. Man musste lediglich einen Haken bei Benutzerdaten verschlüsseln setzen. Dies wird seitdem nicht mehr angeboten und insgesamt ist eCryptFS tendenziell als Auslaufmodell zu bewerten. Es funktioniert jedoch noch und lässt sich für die meisten Distributionen einsetzen.

Die folgende Anleitung zeigt wie man die Benutzerdaten nachträglich mit eCryptFS verschlüsselt. Diese Anleitung lässt sich auf einem bereits installierten Linux-System durchführen und Bedarf keiner Neuinstallation. Das eigentliche Betriebssystem auf der Systempartition bleibt davon unberührt, aber dort finden sich ja auch nur selten persönliche Daten.

eCryptFS nachträglich einrichten

Vor dem Durchführen der Anleitung ist ein Backup der Benutzerdaten durchzuführen. Fehler können zum Verlust aller Daten auf dem System führen. Die Anleitung wurde getestet und hat auf mehreren Systemen des Autos funktioniert. Dennoch ist nicht auszuschließen, dass es unter besonderen – nicht vorhersehbaren Bedingungen – zu Problemen kommen kann.

Zuerst installiert man eCryptfs und prüft ob das entsprechende Modul geladen ist. Unter Debian und Ubuntu geschieht dies wie folgt:

# apt-get install ecryptfs-utils rsync
# modprobe ecryptfs

Danach muss der Benutzer, dessen Homeverzeichnis verschlüsselt werden soll, abgemeldet werden. Nach einem Wechsel auf die Konsole prüft man zur Sicherheit noch ob der laufende Displaymanager beendet ist. Der Befehl hängt von der eingesetzten Distribution und dem verwendeten Loginmanager ab. Im Fall von SDDM wäre dies z.B.

# systemctl stop sddm

Nun verschlüsseln man die Benutzerdaten. Je mehr Daten bereits in der Homepartition liegen, desto länger dauert der Vorgang.

# ecryptfs-migrate-home -u <benutzername>

Danach werden einige Hinweise angezeigt, die ich hier der Vollständigkeit halber mal wiedergeben möchte. Diese sind natürlich zu befolgen.

Some Important Notes!

The file encryption appears to have completed successfully, however, USERNAME MUST LOGIN IMMEDIATELY, _BEFORE_THE_NEXT_REBOOT_, TO COMPLETE THE MIGRATION!!!

If USERNAME can log in and read and write their files, then the migration is complete, and you should remove /home/USERNAME.xxxxxxxxx. Otherwise, restore /home/USERNAME.xxxxxx back to /home/USERNAME.

USERNAME should also run ‘ecryptfs-unwrap-passphrase’ and record their randomly generated mount passphrase as soon as possible.

To ensure the integrity of all encrypted data on this system, you should also encrypted swap space with ‘ecryptfs-setup-swap’. 

Das heißt, zuerst meldet man sich wieder an, indem man den Displaymanager startet. Bei SDDM wäre dies beispielsweise:

# systemctl start sddm

Danach prüft man ob die Dateiverschlüsselung funktioniert hat, indem man einige Dateien probehalber öffnet. Sofern das der Fall sein sollte kann man die den doppelten Homeverzeichnisordner in /home/ löschen.

# rm -r /home/<benutzername>.xxxxx # xxxxx steht für die Zeichenabfolge

Sofern man eine SWAP Partition hat muss man diese nun ebenfalls verschlüsseln und die Passphrase sollte man sich notieren und sicher aufheben.