Im Fahrwasser von Truecrypt gerät der bewährte Verschlüssler EncFS zunehmend in Vergessenheit – zu unrecht, denn er bietet einige Vorteile.
Wollen Sie unter Linux Ihre Daten vor fremden Blicken schützen, haben Sie die Wahl zwischen verschiedenen Lösungen. Geht es aber nur um ein paar wichtige Dateien, sollten Sie dabei vermeiden, mit Kanonen auf Spatzen zu schießen. So verlangt beispielsweise Truecrypt nach einer Containerdatei, in der Sie erst umständlich eine virtuelle Festplatte anlegen müssen, die dann zu allem Überfluss auch noch ordentlich Festplattenplatz schluckt. Bei Kommandozeilenprogrammen zu Verschlüsseln schrecken oft umfangreiche Parameter ab, die teilweise nötigen Root-Rechte erledigen schließlich das Übrige.
Eine interessante Alternative stellt hier EncFS dar: Anders als die Konkurrenz verschlüsselt es einfach nur alle Dateien in einem beliebigen Verzeichnis. Es gibt also keinen fetten Container, der sich beim Backup verhält wie eine sperrige Schrankwand beim Umzug. Stattdessen belegt das Verzeichnis nur den Platz, den der verschlüsselte Inhalt auch tatsächlich beansprucht.
Um die Daten wieder zu entschlüsseln, geht EncFS einen etwas unorthodoxen Weg: Sie mounten das verschlüsselte Verzeichnis wie einen echten Datenträger in einen anderen, leeren Ordner. Der bietet dann eine unverschlüsselte Sicht auf das von EncFS geschützte Verzeichnis. Sobald Sie den verschlüsselten Ordner wieder aushängen, sind dessen Inhalte erneut vor fremden Blicken geschützt. Der Mount-Point dient somit gewissermaßen als Safetür. Klingt kompliziert – gestaltet sich aber in der Praxis als äußert einfach und elegant, wie das folgende Beispiel beweist.
Fest gemauert
EncFS liegt schon seit einer gefühlten Ewigkeit jeder guten Distribution bei. Unter Ubuntu spielen Sie beispielsweise einfach das Paket encfs ein:
$ sudo apt-get install encfs
Zu Redaktionsschluss lag in den Repositories allerdings nur die veraltete Version 1.4.2. Möchten Sie das aktuelle EncFS 1.5.2 nutzen, müssen Sie daher zum Quellcode greifen [1]. Dass sich dieser ebenfalls recht fix installiert lässt, zeigt der Kasten “Installation aus den Quellen”.
In Ihrem Home-Verzeichnis erstellen Sie nun zwei Ordner. Der erste enthält später alle verschlüsselten Dateien, der zweite dient gleich als Mount-Point.
$ mkdir privat $ mkdir lesbar
Als nächstes hängen Sie mit EncFS das Verzeichnis privat unter lesbar ein:
$ encfs /home/tim/privat /home/tim/lesbar
Dabei müssen Sie übrigens zwingend den vollen Pfad angeben, das Heimatverzeichnis können Sie allerdings mit der Tilde (“~“) abkürzen, wie in Abbildung 1 zu sehen.

Abbildung 1: Ein verschlüsseltes Verzeichnis zu erstellen, erfordert nur einen Befehl und ein Passwort. Wenn die als Parameter übergebenen Ordner noch nicht existieren, legt EncFS sie selbstständig an.
EncFS bereitet im ersten Schritt den Ordner privat auf die Verschlüsselung vor, wozu es ein paar Fragen stellt. Ein bereits vorhandenes Verzeichnis kann EncFS allerdings nicht umwandeln: Enthält privat bereits Dateien, ignoriert die Verschlüsselungssoftware diese kurzerhand.
Installation aus den Quellen
EncFS aus seinem Quellpaket zu erstellen, setzt neben dem C++-Compiler und dessen Werkzeugen noch die Bibliotheken und Entwicklerpakete von Fuse, Rlog, OpenSSL und Boost voraus. Das Übersetzen erledigen Sie mit dem üblichen Dreisatz:
$ ./configure && make && sudo make install
Treten Problemen auf, sollten Sie insbesondere auf älteren Distributionen zunächst sicherstellen, dass das Fuse-Kernelmodul geladen ist:
$ sudo modprobe fuse
Darüber hinaus muss jeder Benutzer, der EncFS nutzen können soll, Mitglied in der Gruppe fuse sein:
$ sudo adduser tim fuse
Zu guter Letzt benötigen die fraglichen Benutzer noch Zugriffsrechte auf fusermount:
sudo chmod +x /usr/bin/fusermount
Nun ist EncFS bereit zum Einsatz und wartet nur noch auf den Aufruf mit der Angabe der beiden Arbeitsverzeichnisse.
Fragestunde
Gleich die erste Frage beantworten Sie mit der Eingabetaste. Die so gewählten Standardeinstellungen zwingen EncFS zu einer zeitgemäßen AES-Verschlüsselung mit einer Schlüssellänge von 192 Bit (Abbildung 1). Der alternativ über p aktivierte Paranoia-Modus für Sicherheitsfanatiker nutzt eine Schlüssellänge von 256 Bits. Benötigen Sie detaillierten Einfluss auf den Verschlüsselungsalgorithmus, dann starten Sie mit x den Experten-Modus (siehe Kasten “Der Expertenmodus”).
Als nächstes vergeben Sie das Passwort. Da es den einzigen Schlüssel zum Datentresor bildet, sollten Sie es nicht nur möglichst sicher wählen, sondern auch die angezeigte Warnmeldung ernst nehmen: Wer das Passwort vergisst, dem bleibt nur unbrauchbarer Datenmüll.
Abschließend mountet EncFS den jetzt verschlüsselten Ordner privat unter lesbar. Dabei greift es auf die Dienste von Fuse zurück, das Dateisystemtreiber aus dem Kernel in den Userspace verlagert [2]. Damit dürfen auch normale Anwender die verschlüsselten Verzeichnisse selbst mounten.
Der Expertenmodus
Im Expertenmodus fragt EncFS als erstes den zu verwendenden Verschlüsselungsalgorithmus ab. Unter Ubuntu 9.04 stehen beispielsweise AES und Blowfish zur Wahl. Wie das Angebot genau aussieht, hängt vom verwendeten OpenSSL-Paket ab. Anschließend tippen Sie man die Schlüssellänge ein. Hier gilt als Faustregel: Je länger desto sicherer.
Der gewählte Algorithmus teilt eine Datei in Blöcke auf, die er dann anschließend jeweils einzeln verschlüsselt. Die Größe eines solchen Blocks möchte EncFS als nächstes wissen. Falls Sie sich hier unsicher sind, übernehmen Sie einfach mit der Eingabetaste die Vorgabe.
Um wirklich keine Rückschlüsse auf den Inhalt der verschlüsselten Dateien zu hinterlassen, kodiert EncFS auf Wunsch auch deren Namen. Zur Auswahl stehen dabei eine Block- und eine Stromverschlüsselung. Das erste Verfahren versteckt die Dateinamenlänge etwas, das zweite (mit der Ziffer 3 in der Auswahl) führt zu relativ kurzen Dateinamen. Standardmäßig verwendet EncFS die Blockverschlüsselung. In jedem Fall sollten Sie Abstand von Punkt 2 Null nehmen: Damit schalten Sie die Verschlüsselung der Dateinamen ab und geben somit Angreifern wertvolle Hinweise auf den Inhalt der Datei.
Sobald Sie sich für ein Verfahren entschieden haben, möchte EncFS wissen, ob bei der Erstellung der kryptischen Dateinamen nur der Dateiname selbst oder aber der gesamte Pfad in die Berechnung einfließen soll. Letzteres garantiert, dass zwei gleichnamige Dateien aus verschiedenen Unterverzeichnissen voneinander abweichende kryptische Dateinamen erhalten. Da diese Variante sicherer ist, sollten Sie hier das Yes immer mit der Eingabetaste bestätigen.
EncFS nutzt einen so genannten Initialisierungsvektor, eine in die Verschlüsselung einbezogene Zufallszahl, die das Entziffern der Daten weiter erschweren soll. Auf Wunsch überlegt sich EncFS für jede zu verschlüsselnde Datei einen neuen Initialisierungsvektor, was auf der einen Seite die Sicherheit erhöht, auf der anderen aber auch etwas mehr Plattenplatz kostet – 8 Bytes für jede Datei. Da angesichts heutiger TByte-Festplatten dieser Verlust in aller Regel zu verschmerzen ist, sollten Sie hier mit der Eingabetaste das Yes bestätigen.
Um Fehler und Veränderungen in den verschlüsselten Dateien aufspüren zu können, erstellt EncFS eine Prüfsumme für jeden Datenblock (der “Block Authentication Code Header”). Dieser kostet pro Block 12 zusätzliche Bytes und etwas mehr Rechenzeit im laufenden Betrieb. Verzichtet man aber auf diese Alarmanlage, kann es passieren, dass man beispielsweise unbemerkt mehrere defekte Seiten in einem Textdokument mit sich herumschleppt. Standardmäßig verzichtet EncFS auf diesen Service. Um ihn einzuschalten, tippen Sie bei der folgenden Frage ein y ein.
Als nächstes schlägt EncFS vor, an die Prüfsumme noch eine 8 Byte lange Zufallszahl anzuhängen. Sie soll verhindern, dass Datenblöcke gleichen Inhalts dieselbe Prüfsumme erhalten. Abschließend bietet EncFS noch an, im Falle so genannter File Holes auf eine Verschlüsselung der Datenblöcke zu verzichten.
Transparent
Sobald Sie eine Datei unter lesbar ablegen, verschlüsselt EncFS automatisch deren Inhalt und legt sie unter privat ab. Bei EncFS handelt es sich also anders als der Name suggeriert nicht um ein richtiges Dateisystem beziehungsweise Block-Device, sondern nur um eine Zwischenschicht, die Dateien abfängt, sie verschlüsselt und dann weiterhin im normalen Dateisystem ablegt (“Pass-Through-Dateisystem”). Sie können es also getrost auf Ihr Lieblingsdateisystem aufsetzen, EncFS rüstet quasi lediglich die fehlende Verschlüsselung nach.
Riskieren Sie einen Blick in das verschlüsselte Verzeichnis, so finden Sie Ihre Dateien dort in recht kryptischer Form wieder (Abbildung 2). Um möglichst wenig Rückschlüsse auf den Inhalt der Datei zu geben, kodiert EncFS zusätzlich auch den Dateinamen. Dabei kommt eine kryptische Zeichenkette heraus, die absichtlich nicht die selbe Länge wie der Originalname aufweist. Zusätzlich besitzt jedes verschlüsselte Verzeichnis eine XML-Datei (in Abbildung 2.encfs6.xml). Sie enthält alle zur Entschlüsselung notwendigen (Meta-)Informationen. Mit dem Befehl
encfsctl info privat
werfen Sie einen näheren Blick auf die in dieser Datei gespeicherten Informationen (Abbildung 3). Und noch einen weiteren Trick hat Encfsctl auf Lager: Mit dem Aufruf
encfsctl passwd privat
ändern Sie bei Bedarf auch nachträglich das Passwort für die Verschlüsselung.

wichtig.txt ist nach ihrer Behandlung durch EncFS nicht mehr wiederzuerkennen.” width=”300″ height=”118″ />
Abbildung 2: Die Dateiwichtig.txt ist nach ihrer Behandlung durch EncFS nicht mehr wiederzuerkennen.Schatztruhe
Entgegen der ersten Vermutung verschlüsselt EncFS die Dateien nicht mit dem vom Benutzer vorgegebenen Passwort. Stattdessen denkt sich die Software eine Zufallszahl aus, den so genannten Volume Key. Mit ihm verschlüsselt sie alle Dateien und deren Namen. Anschließend verpackt EncFS den Volume Key samt dem Benutzer-Passwort und speichert ihn in der XML-Datei. Der Vorteil: Falls Sie das Passwort später ändern, muss EncFS nur den Volume Key neu verschlüsseln, nicht aber sämtliche Dateien.
Allerdings macht dieses Vorgehen die XML-Datei noch wertvoller. Geht sie verloren, lassen sich auch die Dateien nicht mehr entschlüsseln. Daher sollten Sie den verschlüsselten Ordner nur mit Samthandschuhen anfassen. In der Praxis nutzt man deshalb auch meistens einen Verzeichnisnamen mit einem vorangestellten Punkt: Damit ist das wertvolle Verzeichnis zumindest schon einmal aus den Augen.
Da in ihm ganz normale Dateien schlummern, kann man den Inhalt des verschlüsselten Ordners immerhin mit jedem beliebigen Backup-Programm sichern. Ganz wie gewohnt funktionieren dateiweise und inkrementelle Backups. Man könnte das komplette verschlüsselte Verzeichnis sogar vorübergehend auf einem (unsicheren) Dienst – wie etwa Dropbox – im Internet parken, es per NFS über das Netzwerk hinzuholen oder in einem ZIP- oder TAR-Archiv verstauen. Wichtig ist nur, dass die Datei mit den Meta-Informationen erhalten bleibt.
Licht und Schatten
Ein verschlüsseltes Verzeichnis setzen Sie mit EncFS schnell und unkompliziert auf, ein kurzes Kommando genügt. Die Arbeitsweise des Programms bringt jedoch auch ein paar Nachteile mit: Zunächst einmal benötigt die im laufenden Betrieb vorgenommene Ver- und Entschlüsselung etwas Rechenzeit, was sich in der Praxis jedoch subjektiv nicht spüren lässt war. Je nach gewähltem Verschlüsselungsverfahren wachsen die einzelnen Dateien zudem leicht in ihrer Größe an (siehe Kasten “Der Expertenmodus”). Die zusätzlichen Kosten halten sich aber auch hier in Grenzen.
Die ersten richtigen Probleme entstehen, sobald Unbefugte in das verschlüsselte Verzeichnis hineinsehen können – etwa auf einem unsicheren Internet-Speicherplatz oder einem gestohlenen Notebook. Im Gegensatz zu verschlüsselten Containern, wie sie beispielsweise Truecrypt anlegt, sieht der Angreifer hier direkt, wie viele vertrauliche Dokumente vorliegen und welche Zugriffsrechte und Größen diese im Einzelnen besitzen. Hat er bereits genügend Benutzerrechte erschlichen, könnte er sich die in Frage kommenden Dateien sogar schnell auf einen USB-Stick ziehen und dann andernorts in Ruhe analysieren. Dabei helfen ihm auch noch die von EncFS hinterlassenen Meta-Informationen in der XML-Datei, die ausführlich Auskunft über das verwendete Verschlüsselungsverfahren geben.
Unterm Strich hängt die Sicherheit der Daten maßgeblich vom gewählten Passwort ab. In bestimmten Umständen ist jedoch selbst das keine Garantie mehr: Öffnet man nach dem Mounten eine der nun entschlüsselten Dateien, beispielsweise in einer Textverarbeitung, stehen die Inhalte im Klartext im Hauptspeicher. Lagert Linux diesen Teil zufällig noch in den Swap-Bereich aus, liegen dort alle Informationen möglicherweise tagelang ungeschützt herum.
Klappe zu
Solange das Verzeichnis privat eingebunden ist, sind auch dessen Inhalte zugänglich. Hat es ein Angreifer geschafft, das System zu übernehmen, kann er nun folglich alle Dokumente einsehen. Daher sollten Sie das verschlüsselte Verzeichnis nach getaner Arbeit grundsätzlich schleunigst wieder aushängen:
$ fusermount -u /home/tim/lesbar
Um später den Datentresor wieder zu öffnen, bemühen Sie dann erneut den encfs-Befehl. Die Verschlüsselungssoftware fragt nach dem Passwort und hängt wie gewohnt den Inhalt von privat unter lesbar ein.
Fazit
EncFS bietet weder hundertprozentige Sicherheit, noch eignet es sich dazu, ein komplettes Linux-System zu verschlüsseln. Der Inhalt eines Speichersticks oder einer externen Festplatte lässt sich jedoch schnell und vor allem unkompliziert gegen neugierige Blicke schützen.
Ergänzungen
Um EncFS herum haben sich einige nützliche Werkzeuge gruppiert. So erlaubt beispielsweise pam-encfs, das komplette Heimatverzeichnis automatisch beim Ein- und Ausloggen kryptografisch zu behandeln [3]. Diese Lösung ist allerdings nicht ganz unproblematisch, im schlimmsten Fall sperrt man sich aus. Wollen Sie wirklich das komplettes Home-Verzeichnis schützen, verschlüsseln Sie besser die entsprechende Partition.
Ein Frontend für EncFS bietet K-EncFS [4], das, wie der Namen bereits verrät, auf den KDE-Desktop zugeschnitten ist. Im Wesentlichen bildet es jedoch nur die Kommandozeilenparameter von EncFS ab, kann nur mit genau einem verschlüsselten Verzeichnis umgehen (.kencfs2/encrypted) und wurde zudem länger nicht mehr weiterentwickelt.
Mac-Anwender dürfte die Arbeitsweise von EncFS stark an ihr FileVault erinnern. Und tatsächlich gibt es mit EncFSVault ein Projekt, die Apple-eigene Lösung gegen EncFS zu ersetzen [5].
-
Fuse
-
Filesystem in Userspace. Ein Kernel-Modul, das es ermöglicht, Dateisystemtreiber aus dem Kernel- in den User-Mode zu verlagern, sodass auch nicht privilegierte Benutzer eigene Dateisysteme einhängen können.
-
File Holes
-
Bezeichnung für einen Abschnitt einer Datei, der keine Nutzdaten enthält und vom Dateisystem nicht durch eine Blockzuordnung mit einem durch Null-Bytes gefüllten Block repräsentiert wird, sondern durch eine entsprechende Kennzeichnung in der Blocktabelle.
[1] EncFS: http://www.arg0.net/encfs
[2] Fuse (Wikipedia): http://de.wikipedia.org/wiki/Filesystem_in_Userspace
[3] pam-encfs: http://code.google.com/p/pam-encfs/
[4] K-EncFS: Marcel Hilzinger, “In Sicherheit”, EasyLinux 01/2008, S. 66, https://www.linux-community.de/artikel/14509/
[5] EncFSVault: http://code.google.com/p/encfsvault/






