Verwenden des Kryptofilesystems
Zitat
von http://portal.suse.com/sdb/de/2001/06/jsj_crypto_filesystem_mini_howto.html
Bezieht sich auf: SUSE LINUX 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
Am Montag, 24. Januar 2005 16:43 schrieb Nardis Dome: