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:
- Verschlüsseln einer ganzen Partition
- 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
- beim Systemstart dieses Dateisystem nicht automatisch gemountet
wird,
- Sie als Benutzer dieses Dateisystem mit dem Kommando
mount mounten können (sie benötigen nicht die
Rechte des Benutzers root), und
- sämtliche Parameter schon hier definiert sind
(außerdem entfällt die Benutzung des Kommandos
losetup)
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)