Verwenden des Kryptofilesystems

Supportdatenbank (jsj_crypto_filesystem_mini_howto)
Bezieht sich auf

SuSE Linux: Versionen ab 7.2

Momentan gibt es keine Möglichkeit zur Konfiguration eines Kryptofilesystems nach dem eigentlichen Installationsprozess mit Hilfe von YaST2. Deshalb muss man dieses manuell konfigurieren.

Anliegen

Wie konfiguriere ich ein verschlüsseltes Dateisystem (Kryptofilesystem)?

Vorgehen

Zunächst muss das Kernelmodul für den Verschlüsselungsalgorithmus geladen werden.
modprobe loop_fish2
Der Twofish-Algorithmus ist momentan der einzige Algorithmus, der der SuSE Linux beiliegt. Alle anderen Algorithmen gelten als nicht hinreichend sicher, es sind erfolgreiche Angriffe dokumentiert oder es existieren patentrechtliche Bedenken vor.

Es gibt zwei Möglichkeiten, ein verschlüsseltes Dateisystem anzulegen:
  1. Verschlüsseln einer ganzen Partition
  2. Verwenden einer regulären Datei zur Verschlüsselung

Verschlüsselung einer ganzen Partition

Hierzu muss zunächst ein sog. loop-Device konfiguriert werden, danach das Dateisystem erstellt und zuletzt gemountet werden. (Wir nehmen in diesem Beispiel an, dass die Partition /dev/hda3 verschlüsselt werden soll. Diese Partition wurde bereits vorher angelegt.)
ACHTUNG: Alle Daten, die sich bis jetzt auf der Partition /dev/hda3 befinden, werden gelöscht!
losetup -e twofish /dev/loop0 /dev/hda3
Hier kommt eine Passwortabfrage. Dieses Passwort wird zur Verschlüsselung der Daten des Dateisystems verwendet. Vergessen Sie dieses Passwort nicht, da es der Schlüssel zu den Daten ist, die Sie auf diesem Dateisystem abspeichern. Sollten Sie dieses Passwort vergessen, sind alle diese Daten verloren!
mkreiserfs /dev/loop0
mount -t reiserfs /dev/loop0 /encrypt_part
Das hier angelegte Dateisystem verwendet ein Reiser-Filesystem, die Daten werden mit dem Twofish-Algorithmus und dem von Ihnen eingegebenen Passwort verschlüsselt. Der Pfad zu diesem Dateisystem ist in diesem Beispiel /encrypt_part (Bitte stellen Sie sicher, dass dieser Mountpunkt existiert!).

Verwenden einer regulären Datei

Der Hauptunterschied zum vorhergegangenen Beispiel ist der, dass hier eine normale Datei auf einem gewöhnlichen Dateisystem verwendet wird, um die verschlüsselten Daten zu speichern.
Zunächst muss diese Datei angelegt werden.
dd if=/dev/urandom of=/tmp/cryptfile bs=1024 count=20000
losetup -e twofish /dev/loop1 /tmp/cryptfile
mke2fs /dev/loop1
mount -t ext2 /dev/loop1 /encrypt_file
Nach dem Kommando losetup werden Sie nach dem Passwort für die Verschlüsselung gefragt.

In diesem Beispiel enthält die Datei /tmp/cryptfile das in diesem Falle verschlüsselte ext2-Dateiverzeichnis mit einer Grösse von 20MB. Die Daten sind erreichbar unter dem Verzeichnis /encrypt_file.

Abmounten eines verschlüsselten Dateisystems

Das Abmounten vollzieht sich in zwei Schritten
Zunächst wird das Dateisystem abgehängt,
umount /encrypt_part
und danach das verwendete loop-Device freigegeben, damit es zu einem späteren Zeitpunkt weiterverwendet werden kann:
losetup -d /dev/loop0

Automatisches Mounten während des Bootvorganges

Wenn die verschlüsselten Dateisysteme während der Bootphase automatisch gemountet werden sollen, müssen Sie noch die Datei /etc/cryptotab erstellen und mit folgendem Inhalt füllen:
/dev/loop0  /dev/hda3       /encrypt_part  reiserfs  twofish  defaults
/dev/loop1  /tmp/cryptfile  /encrypt_file  ext2      twofish  defaults
Das Format dieser Datei ist stark an das Format der Datei /etc/fstab angelehnt. In der ersten Spalte steht der Name des loop-Devices, in der zweiten der Name der Partition bzw. der Datei, die die verschlüsselten Daten enthät. In der dritten Spalte steht der Mountpoint gefolgt vom Typ des verwendeten Dateisystems. Die fünfte Spalte enthält den Namen des Verschlüsselungsalgorithmus und die sechste Spalte Mountparameter, wie sie auch in der Datei /etc/fstab verwendet werden. Die Manpage zu fstab gibt Auskunft über die verwendbaren Parameter.

Bitte beachten Sie, dass beim Mounten des Dateisystems ebenfalls das Passwort abgefragt wird! Sie müssen in jedem Falle an dieser Stelle manuell eingreifen. Das System wartet auf die Eingabe des Passworts!

Manuelles Mounten

Wer Bedenken bei dem oben erwähnten automatischen Verfahren verspührt, wird wohl eher versucht sein, das verschlüsselte Dateisystem von Hand zu mounten. Dieses trifft aber zunächst auf das Problem, dass das Kommando mount nur durch den Benutzer root ausführbar ist. Man kann dies aber umgehen, in dem man auf die Erstellung der Datei /etc/cryptotab verzichtet und dafür für das entsprechende Dateisystem einen Eintrag in der Datei /etc/fstab vornimmt, wie weiter unten beschrieben.
Bei den bisher beschriebenen Vorgängen wurde das verschlüsselte Dateisystem so gemountet, dass ausschließlich der Benutzer root auf dieses Dateisystem zugreifen konnte.
Um dieses zu umgehen, ändern Sie bitte den Eigentümerschaft des Mountpunkts auf Ihren Benutzernamen (hier z.B. linuxuser):
chown linuxuser /encrypt_file
Sicherheitshalber ändern Sie auch noch die Zugriffsrechte auf diesen Mountpunkt so, dass nur noch Sie auf dieses Verzeichnis zugreifen können:
chmod 700 /encrypt_file
Nun kommen wir aber zum Eintrag in die Datei /etc/fstab. Fügen Sie die folgende Zeile an diese Datei an:
/tmp/cryptfile /encrypt_file ext2 loop,encryption=twofish,noauto,user
Diese Zeile sorgt dafür, dass Sie können nun, nachdem Sie sich eingeloggt haben, durch Eingabe des Kommandos
mount /encrypt_file
mit anschließender Eingabe des Passworts das verschlüsselte Dateisystem mounten. Sie haben nun exklusiven Zugriff auf die Dateien innerhalb des Verzeichnisbaums /encrypt_file.

Zum Abmounten des Dateisystems verlassen Sie bitte den Dateibaum innerhalb von /encrypt_file und geben das Kommando
umount /encrypt_file
ein.

Damit das Mounten allerdings funktioniert, muss das Modul loop_fish2 geladen sein. Man kann das Modul als normaler Benutzer leider nicht mit dem Kommando modprobe loop_fish2 laden, möglich ist es jedoch, dieses Kommando in der Datei /etc/init.d/boot.local unterzubringen, so dass dieses Modul bei jedem Systemstart geladen wird.

Passwörter

Es gibt zurzeit noch keine Möglichkeit das Verschlüsselungspasswort für ein bereits erstelltes Kryptofilesystem nachträglich zu ändern. Die einzige Möglichkeit wäre das Erstellen eines neuen Kryptofilesystems mit einem anderen Passwort und das nachträgliche Kopieren der Daten vom alten ins neue Dateisystem. Danach kann das alte verschlüsselte Dateisystem gelöscht werden.

Es ist immer anzuraten, lange Passwörter mit mehr als 8 Zeichen Länge zu verwenden. Noch sicherer ist die Verwendung eines zufällig generierten Passworts, da dies die Wahrscheinlichkeit des Knackens der Verschlüsselung minimiert.

Weitere Informationen

http://EncryptionHOWTO.sourceforge.net/

Haftungshinweis

Da sich die Methode der Verschlüsselung Partitionen bzw. Dateisystemen nach wie vor in der Experimentierphase befindet, können wir keinerlei Garantie für die Sicherheit Ihrer Daten übernehmen. Bitte fertigen Sie ein Backup Ihrer Daten an, bevor Sie mit der Konfiguration eines verschlüsselten Dateisystems beginnen. Halten Sie auch während Ihrer Arbeit mit der erzeugten Dateisystem immer eine Sicherungskopie auf dem aktuellen Stand!

Beachten Sie bitte außerdem, dass die Konfiguration eines verschlüsselten Dateisystems nicht im Rahmen des kostenlosen Installationssupports behandelt wird.

Sie experimentieren auf eigenes Risiko!
Stichwörter: ENCRYPTION, CRYPTO, FILESYSTEM, KRYPTO, KRYPTOFILESYSTEM, VERSCHLUESSELUNG

Kategorien: Fragen und Antworten

SDB-jsj_crypto_filesystem_mini_howto, Copyright SuSE Linux AG, Nürnberg, Germany - Version: 18. Jun 2001
SuSE Linux AG - Zuletzt generiert: 28. Jun 2001 von jsj (sdb_gen 1.40.0)