Home / LinuxUser / 2003 / 07 / Verschlüsselte virtuelle Dateisysteme mit dem SuSE-Kryptofilesystem und BestCrypt

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Abgesperrter Datenbereich

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

01.07.2003 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

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:

mv /tmp/cryptfile /home/username
/
chown username
 /home/username
/cryptfile

Soll das Krypto-Filesystem bereits beim Booten eingehängt werden, trägt root es in die /etc/cryptotab ein:

/dev/loop0      /home/username
/cryptfile      /mnt/crypted    ext2    twofish defaults

Dieser Eintrag sorgt dafür, dass das Passwort für das verschlüsselte Dateisystem beim Booten abgefragt und dieses daraufhin eingehängt wird. Zudem benötigt der unprivilegierte User entsprechende Rechte am Mount-Verzeichnis, die man etwa mit

chown username
 /mnt/crypted
chmod 700 /mnt/crypted

setzt. Dennoch sollte sich niemand in Sicherheit wiegen: Solange das Filesystem gemountet ist, können alle Nutzer auf dem System die darin liegenden Daten entsprechend der gesetzten Rechte einsehen. Der Kryptoschutz bezieht sich nur auf den nicht eingehängten Zustand!

Etwas mehr Sicherheit bietet die Option, das verschlüsselte Loop-Filesystem nur bei Bedarf vom User selbst einhängen zu lassen. Dies geschieht durch einen alternativen Eintrag in /etc/fstab:

/home/username
/cryptfile      /mnt/crypted    ext2    loop,encryption=twofish,noauto,user 0 0

Damit das Modul loop_fish2 beim Systemstart automatisch lädt, fügt root folgende Zeile in die Datei /etc/init.d/boot.local ein:

modprobe loop_fish2

Nun kann der zuständige User das Filesystem bei Bedarf mit

mount /mnt/crypted

einhängen – vorausgesetzt, er oder sie kennt das Passwort.

Abbildung 2: Das virtuelle verschlüsselte Dateisystem im Zusammenhang

Doch man muss nicht auf SuSE umsteigen, um mit Hilfe eines Loop-Devices zu verschlüsselten Dateisystemen zu kommen. Vorausgesetzt, man scheut das Kernelpatchen [6] nicht, funktioniert der Vorgang auch auf anderen Distributionen ähnlich wie unter SuSE. Sobald man den Kernel um die "CryptoAPI" erweitert, stehen neben Twofish sogar weitere Verschlüsselungsalgorithmen zur Verfügung, Dass dieser Kernelpatch und das dazugehörige Werkzeugset nicht im offiziellen Kernel steckt, begründet sich in restriktiven oder unklaren gesetzlicher Bestimmungen in verschiedenen Ländern – darunter Frankreich und die USA. Das Risiko, die Verbreitung von Linux durch rechtlich in manchen Teilen der Welt problematische Funktionalität einzuschränken, wollte Linus Torvalds nicht eingehen.

Nach der Installation des gepatchten Kernels lädt man anstelle von SuSEs loop_fish2 die Module cryptoapi und cryptoloop sowie cipher-x (das x ersetzt man durch das gewünschte Verfahren (twofish, blowfish)) – und verfährt weiter wie gehabt.

Kasten 1: Verschlüsseltes SuSE-Home-Verzeichnis

So mancher Laptop-Besitzer mag nach Lektüre dieses Artikels auf die Idee kommen, sein Home-Verzeichnis nachträglich zu verschlüsseln. Dazu braucht er erst einmal eines: Platz auf der Festplatte. Als root legt er außerhalb des bisherigen Home-Verzeichnisses eine passend große Behälter-Datei an, erzeugt darin ein Dateisystem, und übergibt sie dem unprivilegierten User:

dd if=/urandom of=/home/userhome bs=1024 count=100000
losetup -e twofish /dev/loop0 /home/userhome
mke2fs /home/userhome
chown username
 /home/userhome

Anschließend sorgt er in /etc/cryptotab dafür, dass das verschlüsselte Dateisystem beim Systemstart ins Home-Verzeichnis des Users eingehängt wird:

/dev/loop0      /home/userhome  /home/username
        ext2    twofish defaults

Vor dem Neustart kopiert er alle Dateien aus dem alten, unverschlüsselten Home-Verzeichnis an einen anderen Ort. Beim nächsten Start bleibt das System im Textmodus stehen, um nach dem Passwort für das verschlüsselte Dateisystem zu fragen. Bei falscher Eingabe wird das alte Home-Verzeichnis benutzt, bei korrekter Passworteingabe das verschlüsselte, bisher noch leere, eingehängt. Auf die Daten im unverschlüsselten Home-Verzeichnis kann man erst wieder zugreifen, wenn das verschlüsselte Dateisystem ausgehängt wird. Doch dank der vor dem Booten erstellten Datenkopie lässt sich das verschlüsselte Home mit den bisher abgelegten Daten füllen. Diese Kopie wird man später löschen.

Um andere User auszusperren, streicht man – falls nicht schon geschehen – alle Leserechte, Schreib- und Verzeichniswechselrechte für sie:

chmod 700 /home/username

Wenn alles wie gewünscht funktioniert, darf man nicht vergessen, die unverschlüsselten Daten aus dem alten Home-Verzeichnis zu löschen – diese können schließlich potentielle Laptop-Diebe noch zu Gesicht bekommen. Ins alte Home-Verzeichnis gelangt man, indem root das verschlüsselte Home-Verzeichnis mit

umount /home/username

aushängt bzw. es beim Systemstart durch die Verweigerung des richtigen Passworts gar nicht erst einhängt. Wer ganz sicher sein will, dass sich die Daten auch nicht nachträglich rekonstruieren lassen, überschreibt sie mit Nullen. Dazu gibt es eine große Auswahl an Programmen, beispielsweise das Open-Source-Programm wipe [7].

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

1223 Hits
Wertung: 0 Punkte (0 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...