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].

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Crypto-Loop mit Suse 9.3
  • Geheim gehalten
    Daten sicher zu halten, hat zwei Seiten: Schutz vor Verlust und Schutz vor unerlaubtem Zugriff durch Fremde. Der zweiten Bedrohung begegnen Sie, indem Sie Dateien verschlüsseln. Wir zeigen, wie Sie das erreichen – wahlweise mit Standard-Linux-Tools oder mit dem Windows-kompatiblen TrueCrypt.
  • Daten mit Losetup und Cryptsetup verschlüsseln
    Befinden sich auf Ihrem PC sensible Daten, sollten Sie diese auch entsprechend schützen. Mit starker Verschlüsselung und einem sicheren Passwort kommen selbst Geheimdienste nicht an Ihre Daten heran.
  • Verschlüsselter Stick
    Daten sind mittlerweile nicht mehr an einen Computer gebunden, sondern dank Notebooks und billigen USB-Sticks mobil. Wir zeigen, wie Sie mit Truecrypt verhindern, dass Ihre Dateien in falsche Hände gelangen.
  • Verschlüsselte USB-Sticks mit TrueCrypt
    USB-Sticks erfreuen sich größter Beliebtheit, denn sie ermöglichen den schnellen und bequemen Transport von größeren Datenmengen. Leider sind sie aber auch sehr leicht zu entwenden oder zu verlieren – wie schützen Sie also Ihre Daten vor den Augen Dritter?
Kommentare

Infos zur Publikation

title_2014_09

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 4 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...