Das Enterprise Crypto Filesystem im Kurztest

Der Zoo an Crypto-Dateisystemen unter Linux hat Nachwuchs bekommen: E-Crypt-FS will in den Enterprise-Bereich vordringen. Ob der Sprössling schon reif ist fürs große Geschäft, zeigt dieser Kurztest.

Dateisysteme verschlüsseln ist unter Linux zwar längst möglich, aber nicht zufrieden stellend gelöst. Wie schlecht es um die Qualität etlicher Implementierungen bestellt ist, hat ein Test im Linux-Magazin 10/06 offenbart [1]. Nun tritt ein weiterer Anwärter ins Rampenlicht, der auch gleich den Sprung in den offiziellen Kernel 2.6.19 geschafft hat: E-Crypt-FS [2]. Das Enterprise Crypto Filesystem will sogar beim Einsatz in Firmen den Anforderungen standhalten.

Dabei überrascht aber schon der technische Ansatz: Statt eine komplette Partition zu schützen, verschlüsselt E-Crypt-FS einzelne Dateien. Ähnlich wie Enc-FS [3] setzt es auf einem bereits bestehenden Dateisystem auf und bildet einen Filesystem-Stapel. Während Enc-FS via FUSE [4] im Userspace arbeitet, siedelt sich E-Crypt-FS vollständig im Kernelspace an. Ganz ohne Zwischenschicht arbeitet die Stapelung nicht, sie bedient sich beim Filesystem-Translator FIST [5]. Aus dessen Umfeld kommt auch der Vorläufer von E-Crypt-FS: Crypt-FS [6] von Erez Zadok. Achtung: Letzteres stammt aus den 90er Jahren und ist nicht mit Crypto-FS [7] verwandt, das bereits im ersten Test vertreten war [1].

Firmen wollen üblicherweise recht detailliert bestimmen, wer Zugriff auf welche Daten erhält. Im Gegensatz zum Privatanwender sollen mehrere User zugreifen statt nur einer. Entsprechend nahe liegt der Wunsch nach einer Public-Key-Infrastruktur ähnlich wie bei der E-Mail-Verschlüsselung. Nur Personen, die einen passenden Schlüssel besitzen, sind auch in der Lage, den Inhalt einer Datei zu entschlüsseln. Das ist eine der Stellen, an denen die Entwickler derzeit intensiv arbeiten.

Alles im Kopf

Damit dies auch im Filesystem klappt, legt E-Crypt-FS alle Informationen über die Verschlüsselung in der jeweiligen Zieldatei ab. Das hat den angenehmen Nebeneffekt, dass ein passender Schlüssel genügt, um die Datei auch auf anderen Rechnern zu entschlüsseln. Hierbei bedient sich E-Crypt-FS beim OpenPGP-Standard [8], den es nur leicht an seine Belange anpasst. Folglich erinnert das Verfahren an die Einzelverschlüsselung mit Gnu PG, arbeitet jedoch erheblich transparenter für den Benutzer, der wie gehabt mit seinen Daten hantiert.

Seine offizielle Premiere feierte E-Crypt-FS bei der Aufnahme in den 2.6.19-Kernel. Das überrascht, weil der Software noch viele Funktionen fehlen, siehe Kasten “Unzulänglichkeiten”. Das drückt sich auch in der niedrigen Versionsnummer aus (Release 20061027 entspricht Version 0.1.5). Dennoch herrscht recht reges Interesse an dem Projekt. Einer der Gründe mag sein, dass es mit dem Trousers-Framework ([9], [10]) zusammenarbeitet, das zur Schlüsselverwaltung den TPM-Chip nutzt [11].

Unzulänglichkeiten

Derzeit ist E-Crypt-FS durchaus nutzbar, jedoch sind diverse Funktionen erst teilweise implementiert oder stecken gar noch in der Planungsphase:

  • Die Nutzung einer PKI-Infrastruktur ist in
    »ecryptfs-20061027« nur rudimentär implementiert
    und per Default deaktiviert. Erst die kürzlich erschienene
    Release »ecryptfs-20070111« aktiviert diese Funktionen.
    Aktuelles Entwicklungsziel ist es, die Schlüsselverwaltung
    erheblich zu erweitern und auch Gnu-PG- und PKCS#11-Schlüssel
    einzubinden.
  • Da normale User nur durch explizite Konfiguration Filesysteme
    mounten können, ist die Software derzeit praktisch nur mit
    Root-Rechten nutzbar. Laut eigener Aussage sind die Entwickler aber
    kurz vor einer Lösung dieses Problems.
  • Eine Möglichkeit, auch die Dateinamen im Quellverzeichnis
    zu verschlüsseln, fehlt gänzlich.
  • Die Integrität der verschlüsselten Daten wird zurzeit
    noch nicht über HMAC-Verfahren geprüft.

Installation

Derzeit ist E-Crypt-FS noch in keiner der großen Distributionen enthalten. Vor der Nutzung ist folglich Handarbeit angesagt. Dazu sind einige Voraussetzungen zu erfüllen:

  • Ein Linux-Kernel ab 2.6.16 mit Unterstützung des
    Crypto-API und (mindestens) des AES-Algorithmus; die Entwickler
    empfehlen nur den aktuellen Mainstream-Kernel, Backports auf
    frühere Versionen gelten als experimentell
  • Die Libgcrypt [12]
  • Das Schlüsselbund-Werkzeug für den Userspace namens
    Keyutils [13]

Auch wenn aktuelle Distributionen die ersten beiden Voraussetzungen mitbringen, meist fehlen die Keyutils. Glücklicherweise stellt dieses Paket sehr geringe Anforderungen und ist via »./configure && make && su -c “make install”« schnell installiert. Danach sollte sich auch E-Crypt-FS auf gleiche Weise bauen und installieren lassen. Aufgrund der Aufteilung in Userspace- und Kernel-Teil gibt es allerdings zwei Download-Versionen. Eine enthält nur die Userspace-Werkzeuge, die andere zusätzlich die Quellen für das Kernelmodul.

E-Crypt-FS

Version: E-Crypt-FS 20070111

Implementierung: Kernelmodul, seit kurzem im offiziellen Kernel-Tree enthalten; dazu Userspace-Tools für Schlüsselverwaltung und Mount-Helper

Container: Verzeichnis (im gewöhnlichen Dateisystem), arbeitet dateiweise

Funktionsebene: Als gestapeltes Dateisystem mit FIST realisiert

Windows-Portierung: Keine bekannt

Lizenz: GPL

Test mit Hürden

Im Test kam der vollständige Tarball »ecryptfs-20070111.tar.bz2« unter Ubuntu Edgy zum Einsatz. Gewöhnlich reicht der Aufruf des »/install.sh«-Skripts – unter Ubuntu Edgy gabt es allerdings noch ein paar Hürden zu meistern. Grund hierfür ist die Dash, die statt der Bash als Standardshell dient und nicht mit den gelieferten Skripten klarkommt. Abhilfe schafft ein passender »/bin/sh«-Symlink, der auf »/bin/bash« zeigt.

Für den Betrieb benötigt die Software zwei Verzeichnisse. Das Quellverzeichnis nimmt die verschlüsselten Dateien auf. Dieses Verzeichnis sieht der Benutzer nicht. Es sollte vorab leer sein, weil sonst Daten verloren gehen können. Den Zugang zum Inhalt der verschlüsselten Dateien gewährt ein Mountpoint, über den der Benutzer wie gewohnt den Klartext der Dateien sieht, ändert oder neue Files anlegt. E-Crypt-FS sorgt transparent für das Ver- und Entschlüsseln.

Die erste Zeile in Listing 1 lädt das Kernelmodul. Probleme mit ihm sollten sich sofort anhand von Fehlermeldungen zeigen. Beim ersten Test empfiehlt es sich auch, den für die Kommunikation mit dem Kernel zuständige Daemon manuell aufzurufen (Zeile 2). Nach dem Anlegen der beiden Verzeichnisse (Quellverzeichnis »/mnt/.ecryptfs« und Mountpoint »/mnt/ecryptfs«) folgt in Zeile 4 der Mountaufruf. Für das Abfragen der Optionen ist ein Mount-Helper zuständig. Bis Version 20061027 war nur eine Passphrase pro Mountpunkt möglich (der Benutzer muss sie zweifach eingeben). Seit 20070111 akzeptiert E-Crypt-FS jedoch auch ein Schlüsselpaar. Am einfachsten lässt sich dieses Paar per »enfs-manager« erzeugen.

Listing 1:
E-Crypt-FS

01 modprobe ecryptfs
02 ecryptfsd
03 mkdir /mnt/{.ecryptfs,ecryptfs}
04 mount -t ecryptfs /mnt/.ecryptfs /mnt/ecryptfs

Per Default arbeitet E-Crypt-FS ohne Salt. Wer mehr Sicherheit will, gibt einen Salt-Wert manuell an: »mount […] -o salt=1234567890abcdef«. Zu guter Letzt lassen sich der Verschlüsselungsalgorithmus sowie im Fall von AES auch die Schlüssellänge auswählen. Sämtliche Zugriffe auf »/mnt/ecryptfs« ver- oder entschlüsselt E-Crypt-FS und greift auf die Chiffrate im Quellverzeichnis »/mnt/.ecryptfs« zu. Dabei arbeitet es erstaunlich flott (Abbildung 1) und hängt alle anderen Linux-Crypto-Filesysteme ab. Für die Messung kam das Notebook aus [1] zum Einsatz, allerdings mit neuer Festplatte. Daher weichen die absoluten Messwerte ab.

Abbildung 1: E-Crypt-FS ist hier zusammen mit einigen Kandidaten aus [1] sowie dem unverschlüsselten Filesystem (links) dargestellt. Beim blockweisen Lesen und Schreiben schafft E-Crypt-FS etwa drei Viertel der Leistung eines unverschlüsselten Device und schlägt damit praktisch alle Konkurrenten.

Abbildung 1: E-Crypt-FS ist hier zusammen mit einigen Kandidaten aus [1] sowie dem unverschlüsselten Filesystem (links) dargestellt. Beim blockweisen Lesen und Schreiben schafft E-Crypt-FS etwa drei Viertel der Leistung eines unverschlüsselten Device und schlägt damit praktisch alle Konkurrenten.

Sicherheit

Ähnlich wie Crypto-FS [7] und Enc-FS [3] verschlüsselt E-Crypt-FS einzelne Files statt kompletter Blockdevices. Alle Metadaten bleiben ungeschützt, also Name, ungefähre Größe, Zugriffszeiten, Attribute und mehr. Das Problem ist aus der Verkehrsanalyse bekannt: Oft genügt es bereits, zu wissen, dass A und B miteinander sprechen, ohne den Inhalt zu kennen. Auch die Metadaten einer Datei verraten einem Spion oft viel zu viel. Andere, vergleichbare Systeme chiffrieren wenigstens einen Teil der Metadaten, etwa den Dateinamen, um die Gefahr zu mindern.

Zur Dateiverschlüsselung benutzt E-Crypt-FS den AES-Algorithmus im CBC-Modus mit einem festen IV (Initialisierungsvektor) pro Block (entspricht der Memory Page). Beides sind kryptographisch schlechte Ansätze; [14] erklärt warum. Die Sicherheit von E-Crypt-FS liegt damit irgendwo zwischen Crypt-FS und Enc-FS, immerhin ohne merkwürdige selbst gebastelte Krypto-Mechanismen wie bei Enc-FS anzutreffen.

Seine starken Seiten spielt E-Crypt-FS beim Key-Setup aus: Es verwendet einen guten, PGP-basierten Mechanismus. Außerdem ist es sauber programmiert: E-Crypt-FS prüft die Rückgabewerte von Crypto-Funktionen und meldet jeden Fehler. Außerdem legen die Entwickler ihrem Paket – vorbildlich – ein Design-Dokument bei.

Auf dem richtigen Weg

E-Crypt-FS ist gerade im Hinblick auf seine Fähigkeiten noch in einem sehr frühen Entwicklungsstadium. Die im Kasten genannten Unzulänglichkeiten sowie die aktuell umständliche Installation dürften viele Anwender vom Einsatz abhalten. Auch die Schwächen in der Kryptographie lassen das Präfix “Enterprise” übertrieben erscheinen. Allerdings sind die meisten anderen Crypto-Dateisysteme für Linux auch nicht besser.

Guter Code

Viel versprechend ist die Codequalität, hier sticht E-Crypt-FS deutlich positiv hervor. Eher zwiespältig fällt die Bewertung des Ansatzes aus, Dateien einzeln zu verschlüsseln statt komplette Devices zu schützen. E-Crypt-FS gibt sämtliche Metadaten preis. Andererseits erlaubt der Ansatz eines Tages einen gemeinsamen Zugriff mehrerer User – in Unternehmen eine wichtige Eigenschaft. Alles in allem ein interessantes Projekt auf dem richtigen Weg, aber doch noch einiges vom Ziel entfernt. (fjl)

Infos

[1] Peter Gutmann und Christian Ney, “Löchriger Käse – Verschlüsselte Filesysteme unter Linux”: Linux-Magazin 10/06, S. 36

[2] E-Crypt-FS, Enterprise Crypto Filesystem: [http://ecryptfs.sourceforge.net]

[3] Valient Gough, Enc-FS: [http://arg0.net/users/vgough/encfs]

[4] FUSE, Filesystem in Userspace: [http://fuse.sourceforge.net]

[5] FIST, File System Translator: [http://www.filesystems.org]

[6] Erez Zadok u.a., Crypt-FS: [http://filesystems.org/docs/cryptfs/]

[7] Christoph Hohmann, Crypto-FS: [http://www.reboot.animeirc.de/cryptofs/]

[8] RFC 2440, “OpenPGP Message Format”: [http://www.ietf.org/rfc/rfc2440.txt]

[9] Trousers, Software für den TPM-Chip: [http://trousers.sourceforge.net]

[10] Wilhelm Dolle, Michael Nerb und Christoph Wegener, “In Kinderschuhen – Anwendungen für das Trusted Plattform Module”: Linux-Magazin 12/06, S. 120

[11] TPM Keyring: [http://trousers.sourceforge.net/tpm_keyring2/quickstart.html]

[12] Libgcrypt: [http://directory.fsf.org/security/libgcrypt.html]

[13] David Howells, Keyutils: [http://people.redhat.com/~dhowells/keyutils/]

[14] Peter Gutmann, “Beklaut und ausspioniert – Bedrohungsmodelle und Sicherheitsanforderungen bei verschlüsselten Filesystemen”: Linux-Magazin 10/06, S. 34

Copyright © 2002 Linux New Media AG

E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben