# EncFS

EncFS ist eine freie (unter der GPL veröffentlichte) Verschlüsselungserweiterung für beliebige Dateisysteme unixartiger Betriebssysteme und baut auf dem FUSE-Framework auf. Es verschlüsselt dabei nicht ganze Dateisysteme, sondern lediglich einzelne Dateien, sodass es ohne separate Einrichtung einer eigenen verschlüsselten Partition nachgerüstet werden kann und weiterhin herkömmliche Werkzeuge, beispielsweise zur Datensicherung, verwendet werden können.

## Funktionsweise

EncFS verwendet zwei Verzeichnisse zum transparenten Verschlüsseln der Daten. In einem der Verzeichnisse werden die zu verschlüsselnden Daten abgelegt. Die hier gespeicherten Daten werden jedoch nicht direkt auf die Festplatte geschrieben, sondern von EncFS zunächst verschlüsselt und dann im zweiten sogenannten Quellverzeichnis in verschlüsselter Form gespeichert. Die unverschlüsselte Ansicht im ersten Verzeichnis ist nur sichtbar, solange der zweite mittels EncFS in den ersten eingebunden ist. Dabei entspricht jede verschlüsselte Datei im zweiten Verzeichnis einer unverschlüsselten Datei im Ersten. Ist der Inhalt des verschlüsselten Verzeichnisses nicht eingebunden, ist das unverschlüsselte Verzeichnis leer.

### Verschlüsselung

Verschlüsselt werden die Daten dabei mit einem großen, in einer Datei vorliegenden Schlüssel, dem so genannten Volume Key. Dieser ist nochmals mit einem Passwort geschützt, um Entschlüsselung bei Kenntnis des Volume Keys zu verhindern. EncFS kann verschiedene Verschlüsselungsalgorithmen verwenden; typisch sind Blowfish und AES. Möchte man auf die verschlüsselten Daten zugreifen, so muss man also beim Einbinden das Passwort des Volume Keys eingeben.
Die Daten werden dabei in einzelnen Datenblöcken verschlüsselt. Datenblöcke werden als Ganzes verschlüsselt und können auch nur vollständig entschlüsselt werden. Wenn also nur ein einziges Byte verändert wird, muss der ganze Block neu verschlüsselt und geschrieben werden. Um dies an die vorliegenden Daten optimal anzupassen, kann daher die Blockgröße von standardmäßig 512 Bytes verändert werden.
EncFS verschlüsselt nicht nur den Inhalt der Dateien, sondern auch die Dateinamen. Man kann hierbei zwischen dem unter Umständen (abhängig vom zugrundeliegenden Dateisystem) etwas speicheraufwendigeren, aber dafür die Länge des Dateinamens verschleiernden, Blockmodus und dem speicherschonenderen Datenstrommodus wählen.

### Datenintegrität

Zusätzlich ist es mit einer Block MAC headers genannten Option EncFS möglich, Veränderungen beziehungsweise Fehler in den verschlüsselten Dateien festzustellen. Dabei wird für jeden Datenblock eine Prüfsumme von 8 Bytes erstellt. Zusätzlich können an jeden Datenblock 8 zusätzliche Bytes Zufallsdaten angehängt werden, um zu verhindern, dass Datenblöcke mit demselben unverschlüsselten Inhalt dieselbe Prüfsumme aufweisen.
Diese Option benötigt jedoch viel Rechenleistung der CPU, da bei jedem Lesezugriff zum Zweck der Integritätsprüfung und bei jedem Schreibzugriff zu ihrer Aktualisierung die Prüfsumme berechnet werden muss.

## Eigenschaften

Aufgrund seiner dateiweisen Verschlüsselung weist EncFS folgende Eigenschaften auf:
* Es belegt keine feste Größe auf dem Datenträger. Es wird nur der Platz belegt, der tatsächlich für die verschlüsselten Dateien benötigt wird. Daten können in EncFS gespeichert werden, bis das Dateisystem, in dem es sich befindet, voll ist.
* Teile des über EncFS-verschlüsselten Dateisystems können auf verschiedenen Datenträgern abgelegt sein. Zum Beispiel kann ein Verzeichnis im (verschlüsselten) Quellverzeichnis per NFS eingehängt und ein weiteres lokal vorhanden sein.
* Datensicherungsprogramme können gezielt die einzelnen veränderten verschlüsselten Dateien sichern, die sich in der Zwischenzeit geändert haben. Es muss nicht jedes Mal die gesamte Partition gesichert werden, wie es bei verschlüsselten Partitionen der Fall ist.
* Per EncFS abgespeicherte Daten weisen dieselben Beschränkungen auf, wie das Dateisystem, in dem der Quellverzeichnis liegt.
* Eine Fragmentierung der verschlüsselten Daten führt zu einer Datenfragmentierung im Quellverzeichnis.
* Die Rechteverwaltung wird nicht neu implementiert, somit kann jeder die Anzahl der Dateien, ihre Zugriffsrechte, Größe und Länge des Dateinamens (der Dateiname selber wird jedoch mitverschlüsselt) und das Datum der letzten Änderung sehen.

## Sicherheitsbedenken

Im Januar 2014 unterzog der Sicherheitsforscher Taylor Hornby EncFS einem Audit. Sein Fazit: Das Tool sei nicht sicher, es sei denn, dem potentiellen Angreifer liegt nur eine Version einer verschlüsselten Datei vor. Wird EncFS dazu eingesetzt, Dateien in einem Cloud-Speicher zu verschlüsseln, liegen jedoch in der Regel mehrere Versionen einer Datei vor. Aktuell (September 2016) ist mindestens eine der identifizierten Schwachstellen noch nicht behoben, eine Korrektur war für die Version 2.0 geplant, wird aber wegen der Einstellung des Projekts nicht mehr erfolgen.

## Entwicklungsstand

Inzwischen hat der Autor die Entwicklung eingestellt und empfiehlt den Umstieg auf aktuellere Dateisysteme, wie z. B. GoCryptFS.