Ich möchte meine privaten Dateien auf dem Laptop verschlüsseln. Die Verschlüsselung ist wichtig und je nach Implementierung sogar einfach einzurichten. Zuvor muss allerdings geklärt werden, welcher Modus und welche Implementierung gewählt wird.

Das Heimverzeichnis soll mit starker Verschlüsselung vor Zugriff bei Verlust des Laptops o.Ä. gesichert werden. Dabei soll die Benutzerfreundlichkeit nicht leiden. 

Das Fazit gleich vorneweg genommen: Ich werde mein Heimverzeichnis mit LUKS verschlüsseln.

Systemverschlüsselung vs Datenverschlüsselung

Bei der Verschlüsselung des Systems kann gewählt werden zwischen kompletter Verschlüsselung des kompletten Systems, abgesehen von einem kleinen Bereich der Festplatte, der zum Start und Entschlüsseln der restlichen Platte gebraucht wird und der Verschlüsselung lediglich der Anwendungsdaten.

Verschlüsselung nur der Daten

Es geht um die Verschlüsselung des Heimverzeichnisses.

Vorteile

Das System kann bereits starten und den größten Teil des Boot-Vorgangs abschließen, während man selbst noch einen Kaffee kocht o.Ä. Das Kennwort kann mittels geeigneter pam-Module direkt beim Login mit abgefragt werden und das System so recht komfortabel entschlüsselt werden.

Durch die unverschlüsselte Verfügbarkeit der Systemdateien könnte das System noch minimal schneller sein.

Nachteile

Nachdem das System selbst unverschlüsselt ist, lassen sich alle Programme beliebig auslesen und manipulieren. Damit lassen sich dann eventuell auch die Kennworte beim Login in das Benutzerkonto und für die Verschlüsselung entwenden.

Komplette Verschlüsselung

Es geht um die Verschlüsselung des Heimverzeichnisses und der Programme.

Vorteile

Vorteil der kompletten Verschlüsselung ist ein Zugewinn an Sicherheit. Worauf nicht zugegriffen werden kann, lässt sich auch nicht mit Trojanern, Keyloggern, etc manipulieren. Das System ist außerdem für Diebe ohne Kennwort nicht einmal in einem möglichen Gast-Modus o.Ä. zugänglich.

Nachteile

Die Verschlüsselung benötigt mehr Rechenleistung als der Zugriff auf unverschlüsselte Dateien. Dadurch gibt es fast immer einen minimalen Geschwindigkeitsnachteil bei verschlüsselten Systemen.

Ein kleiner Bereich der Festplatte muss unverschlüsselt bleiben, um den Bootvorgang zumindest anzustoßen. Theoretisch kann bereits dieser manipuliert werden, um die Passphrase mitzuschneiden und damit das ganze Vorhaben zu kompromittieren. Dieser Boot-Bereich ließe sich theoretisch auf einen stets am Körper getragenen USB-Stick, eine nur-lesbare CD-R oder sostige externe halbwegs vertrauenswürdige externe Medien verlagern, dadurch sinkt aber natürlich der Komfort.

Auswahl: Verschlüsselung der Daten

Die Verschlüsselung nur der Daten ist etwas unsicherer als eine 100% korrekte Implementierung der Total-Verschlüsselung, dafür allerdings um einiges benutzerfreundlicher. Nachdem die größte Bedrohung hauptsächlich durch den Verlust meines Laptops besteht und nicht in einem Szenario, in dem zuerst in meiner Abwesenheit meine Wohnung aufgebrochen und der Rechner manipuliert wird, um ihn nach Eingabe des Kennworts abzuholen, gehe ich diesen Kompromiss ein und entscheide mich für die Verschlüsselung meines Heimverzeichnisses.

Implementierungen

Die Verschlüsselung des Heimverzeichnisses lässt sich auf verschiedene Methoden erreichen. Die Möglichkeiten sind auf Datenträger-Ebene (die gesamte Partition wird verschlüsselt) und auf Datei-Ebene (Dateien und Ordner werden einzeln verschlüsselt)

EncFS

EncFS basiert auf FUSE und verschlüsselt auf Datei-Ebene. Die Bedienung ist relativ einfach: man gibt ein Verzeichnis an, in dem die Dateien sichtbar und unverschlüsselt liegen sollen und eines, in dem die Dateien nur verschlüsselt zugänglich sind. Ersteres ist nur dann vorhanden, wenn man vorher sein Kennwort eingegeben hat, tatsächlich auf die Festplatte geschrieben wird nur das verschlüsselte.

Das Verfahren eignet sich gut zum Verschlüsseln einzelner Ordner, dem Einsatz zur Verschlüsselung eines ganzen Heimverzeichnisses ist es allerdings nicht ganz gewachsen - vor allem die langsame Geschwindigkeit beim Zugriff auf die Dateien lässt es vorerst ausscheiden.

Mehr zu encfs im Wiki von ubuntuusers.de

ecryptfs

Während der Installation von Ubuntu wird gefragt, ob das Heimverzeichnis des initialen Benutzers verschlüsselt werden soll. Wählt man hier “ja”, wird das Heimverzeichnis mittels ecryptfs verschlüsselt. Dabei handelt es sich ebenfalls um Verschlüsselung auf Datei-Ebene, wie EncFS findet die auch größtenteils im Userspace, d.h. nicht im Kernel, statt.

Die Geschwindigkeit ist höher als bei EncFS, die Bedienung ist vor allem im Fall der Datenrettung bei Systemfehlern allerdings etwas komplizierter. Dafür besteht die einfache Möglichkeit, direkt beim Login das Heimverzeichnis des Nutzers zu entschlüsseln.

Mehr zu ecryptfs im Wiki von ubuntuusers.de/

LUKS

Anders als die beiden bisher genannten Verschlüsselungsmechanismen basiert LUKS auf komplett verschlüsselten Partitionen. Beim Einhängen dieser wird das Kennwort abgefragt, erst dann sind die Daten zugänglich. LUKS und die zugrunde liegenden Verfahren (dm-crypt etwa) laufen auf Kernel-Ebene ab, was Geschwindigkeitsvorteile bringt.

Die Bedienung ist zwar nicht ganz so trivial wie die von EncFS, aber ausreichend einfach. Bei der Wiederherstellung von Daten etwa von einer LiveCD aus kann so die Partition recht leicht eingehängt werden. Automatisches Einhängen ist möglich, muss aber eigens einmalig noch konfiguriert werden über ein pam-Modul.

Mehr zu LUKS im Wiki von ubuntuusers.de

Entscheidung: LUKS

Etwas schneller, etwas einfacher zu bedienen und ich habe schon etwas mehr Erfahrung damit - ich entscheide mich also für LUKS und verschlüssele damit mein Heimverzeichnis komplett. Das Einrichten des automatischen Einhängens beim Login folgt dann im nächsten Artikel.

Insgesamt geben sich ecryptfs und LUKS wohl nicht viel bei der Geschwindigkeit. LUKS ist etwas besser was CPU-Last angeht und etwas konstanter im Datendurchsatz, dafür ist ecryptfs teilweise ein klein wenig schneller, wenn auch unregelmäßig. Verwendet man eine Solid State Disk, soll wohl ecryptfs noch etwas besser sein. Für einen Benchmark find ich diesen Blogpost sehr hilfreich, in dem die einzelnen Mechanismen miteinander vergleichen werden.