Aus LinuxUser 07/2003

Verschlüsselte virtuelle Dateisysteme mit dem SuSE-Kryptofilesystem und BestCrypt

Abgesperrter Datenbereich

Wird das Notebook geklaut, ist das ärgerlich genug. Wie gut, wenn der Dieb dann zumindest mit den darauf gespeicherten persönlichen Daten nichts anfangen kann, weil sie in einem verschlüsselten Dateisystem lagern.

Ob man persönliche Daten auf einem Mehrbenutzersystem vor Schnüfflern schützen möchte oder Vorsorge trifft für den Fall, dass der Datenträger abhanden kommt – das Stichwort heißt „Verschlüsselung“. Umsetzen lässt es sich mit GnuPG [1–3] oder PGP [4]. Doch da dabei jede zu schützende Datei vor und nach dem Benutzen ver- bzw. entschlüsselt werden muss, erfordern diese Verfahren ein hohes Maß an Disziplin und Leidensfähigkeit. Faulere Naturen greifen zu verschlüsselten virtuellen Dateisystemen, bei denen der Anwender bei der normalen Arbeit gar nicht merkt, dass er es mit verschlüsselt auf der Festplatte liegenden Daten zu tun hat.

Da hierzu im offiziellen Kernel bisher keine Möglichkeit vorgesehen ist, muss der User selbst Hand anlegen und meist sogar die Kernel-Quellen modifizieren („patchen“). Doch es geht auch einfacher: Wenn der Distributor entsprechende Patches bereits eingespielt hat oder mit einer kommerziellen Lösung namens BestCrypt.

Seit Version 7.2 enthält der Distributionskernel der SuSE-Distribution das Modul loop_fish2, das den Twofish-Algorithmus [5] zur Verschlüsselung benutzt. Von Version 8.1 angefangen ermöglicht es das grafische Konfigurationswerkzeug YaST2, neu angelegte oder leere Daten-Partitionen (mit Ausnahme von / und /usr, sonst könnte der Rechner nicht mehr booten) zu verschlüsseln. Diese Option schaltet einfaches Anklicken des Häkchens Dateisystem verschlüsseln im Partitionierungsdialog bei der Installation ein. Dieser ist im YaST auch später noch unter System / Partitionieren zugänglich (Abbildung 1), doch selbst dann verhilft er bereits in Gebrauch befindlichen Partitionen nicht zu nachträglicher Verschlüsselung.

Abbildung 1: Formatieren und Verschlüsseln mit YaST2
Abbildung 1: Formatieren und Verschlüsseln mit YaST2

Der Weg zum Ziel

Das heißt jedoch nicht, dass damit alles verloren wäre: Man braucht lediglich ein wenig Platz in einem existierenden Filesystem – genau soviel, wie Sie Platz für die verschlüsselt abzulegenden Dateien einplanen. Zudem lädt root das benötigte Kernel-Modul nach:

modprobe loop_fish2

Anschließend erstellt der Befehl

dd if=/dev/urandom of=/tmp/cryptfile bs=1024 count=10000

die Datei, die später das verschlüsselte Dateisystem aufnimmt. Im Beispiel ist dies die 10 MByte große Datei /tmp/cryptfile.

Nun verknüpft root das erste Loop-Device mit der neuen Datei und legt das Verschlüsselungsverfahren auf Twofish fest:

# losetup -e twofish /dev/loop0 /tmp/cryptfile
Password:

Beim Festlegen des Passworts für das verschlüsselte Dateisystem gilt es aufzupassen: Anders als gewohnt, muss hier bereits der erste Versuch stimmen – losetup wünscht keine Wiederholung. Befindet sich /dev/loop0 bereits anderweitig in Benutzung, kann man auf loop1 bis loop15 ausweichen.

Auch ein nicht gepatchter Kernel bietet übrigens die Möglichkeit, mit -e xor anstelle von SuSEs Twofish das äußerst schwache und daher nicht alltagstaugliche XOR-Verschlüsselungsverfahren zu benutzen.

Noch fehlt der erzeugten Datei ein Dateisystem, in der sich Dateien ablegen lassen. Ein herkömmliches Ext2FS erzeugt root mit

mke2fs /dev/loop0

Dieses hängt man mit

mount -t ext2 /dev/loop0 /mnt/crypted

unterhalb eines beliebigen existierenden bzw. vorher (mit mkdir /mnt/crypted) erstellten Verzeichnisses ein. Danach kann root darin wie in jedem anderen Verzeichnis arbeiten. Um das verschlüsselte Dateisystem wieder unlesbar zu machen, wird das Loop-Device wie ein normales Gerät ausgehängt und wieder freigegeben:

umount /mnt/crypted
losetup -d /dev/loop0

Auch für normale User

Selbst wer auf seinem Rechner root ist, sollte nicht ständig als solcher arbeiten und sucht daher nach einer Möglichkeit, als nicht-privilegierter Benutzer Daten auf dem verschlüsselten Dateisystem abzulegen. Zunächst verschiebt root die Behälter-Datei aus /tmp ins Home-Verzeichnis des Besitzers, um ein versehentliches Löschen beim Aufräumen von /tmp zu verhindern, und übergibt die Eigentumsrechte an den User:

LinuxUser 07/2003 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: