Startseite
Datenbanken (mySQL, SQL, etc.)
Mailserver
Shell
Sicherheit
CryptoLoopDevice
Harddiskverschlüsselung mit Linux
SuSE 9.3: Verwendung existierender verschlüsselter Partitionen bei einer Neuinstallation
Verschlüsseln der Swap-Partition mit loop-aes
Verschluesselte Dateisysteme und Container
Verschlüsselte swap-Partition
Verschlüsseltes Dateisystem, Kryptofilesystem
Verwenden des Kryptofilesystems
Verschiedenes
Webserver
Suche



Ausdruck von: suse-linux-faq.koehntopp.de/q/q-suse93-cryptofs.html

4.1._SuSE_9.3_Verwendung_existierender_verschluesselter_Partitionen_bei_einer_Neuinstallation.pdf   49 K

SuSE 9.3: Verwendung existierender verschlüsselter Partitionen bei einer Neuinstallation

Zitat von http://suse-linux-faq.koehntopp.de/q/q-suse93-cryptofs.html

4.1. SuSE 9.3: Verwendung existierender verschlüsselter Partitionen bei einer Neuinstallation

4.1.1

Will man bei einer Neuinstallation von SuSE Linux 9.3 eine vorhandene verschlüsselte Partition (erstellt unter 9.1 oder 9.2) einbinden, erhält man eine Fehlermeldung.

Warnung: Vor der Korrektur dieses Problems auf keinen Fall eine Dateisystem-Überprüfung (fsck) laufen lassen - dieser kann zum Datenverlust führen!

Grund für das Problem ist, dass sich der Verschlüsselungsalgorithmus in SuSE 9.3 geändert hat (es wird ein anderes Kernelmodul verwendet). Eine genauere Erklärung findet sich in der SuSE Supportdatenbank (SDB).

Das Problem ist recht einfach zu lösen: in /etc/cryptotab ist die unter 9.1 oder 9.2 erstellte verschlüsselte Partition als twofishSL92 (statt twofish256) einzutragen. Beim nächsten Mounten klappt die Einbindung dann wieder.

Installiert man SuSE Linux 9.3 als Update, tritt dieses Problem nicht auf (die /etc/cryptotab wird automatisch korrigiert). Auch die Einbindung von verschlüsselten Partitionen, die unter SuSE Linux 9.0 oder älter oder mit einer anderen 9.3-Installation erstellt wurden, funktioniert problemlos.

Der Vollständigkeit halber hier eine Liste der Verschlüsselungsarten, wie sie in /etc/cryptotab unter SuSE 9.3 eingetragen werden:

  • mit SuSE 9.0 (oder älter) erstellte Partitionen: twofish
  • mit SuSE 9.1 oder 9.2 erstellte Partitionen: twofishSL92
  • mit SuSE 9.3 erstellte Partitionen: twofish256

Eine noch einfachere Methode ist es, die verschlüsselte Partition während der Installation nicht einzubinden. Nach der Installation kann man dann per YOU korrigierte Versionen des YaST2 Partitionierungsmoduls und losetup installieren und anschließend die Partition mittels YaST2 - System - Partitionieren einbinden.

(cboltz)

 

Kryptofilesystem Suse 9.3

Zitat von http://portal.suse.com/sdb/de/2005/03/crypto_filesystem_93.html

Kryptofilesystem 9.3

Bezieht sich auf: SUSE LINUX 9.3

Ändern von Kryptopartitionen/-Dateien in SUSE Linux Professional 9.3

Technischer Hintergrund

Mit SUSE LINUX 9.3 haben wir das Verschlüsselungsmodul von loop_fish2 auf twofish umgestellt. Zusammen mit cryptoloop ist twofish nun der Standard für Kryptopartitionen. Die Umstellung wurde vorgenommen, da twofish zusammen mit cryptoloop sicherer ist (cryptoloop verwendet als Initialisierungsvektor die Blocknummer, während loop_fish2 hierzu stets die Null verwendet) und als Standardlösung für Kryptopartitionen eingesetzt wird.

ACHTUNG: NICHT FSCK AUSFÜHREN

Die beiden Module verwenden ein unterschiedliches On-Disk-Format, sodass beim Zugriff über das falsche Modul die Skripte für das automatische Booten zwar das Dateisystem erkennen (da in beiden Fällen der erste Block ziemlich gleich ist), doch feststellen, dass der Rest falsch aussieht und deshalb einen Dateisystemcheck vorschlagen. Führen Sie diesen Dateisystemcheck nicht aus – antworten Sie stattdessen mit Nein und stellen Sie sicher, dass das richtige Modul verwendet wird. Falls Sie diesen Warnhinweis nicht beachten, führt der Dateisystemcheck unweigerlich zum Totalverlust Ihrer Daten.

SUSE Linux verwendet künftig die folgenden Kryptofilesystem-Implementierungen:

SUSE-Version Verschlüsselung Schlüssellänge Kernelmodule Initialisierungsvektor (IV)
Vor 9.1 twofish 160 Bit loop_fish2 Konstante
9.1 und 9.2 twofish256 256 Bit loop_fish2 Konstante
9.3 twofish256 256 Bit twofish, cryptoloop Blocknummer

Wie Sie sehen, ist der Name des Verschlüsselungsalgorithmus twofish256 zwar derselbe für SUSE LINUX 9.1/9.2 und 9.3, doch es wird jeweils ein anderes Kernelmodul verwendet. Leider verwenden die beiden Module nicht das gleiche On-Disk-Format, sodass die Module inkompatibel sind. Natürlich lässt sich auch nicht feststellen, welches On-Disk-Format vorliegt, da sich sonst der Verschlüsselungstyp aus verschlüsselten Daten ableiten ließe, woraus wiederum eine Sicherheitslücke entstünde.

Diese Einschränkungen ziehen einige Probleme nach sich, die sich nicht durch ein technisches Verfahren abdecken lassen. Daher ist für den folgenden Fall ein manueller Eingriff erforderlich:

Neuinstallation und Zugriff auf alte Kryptopartition

Wenn Sie SUSE LINUX 9.3 neu installieren, um damit auf bereits bestehtende Kryptopartitonen aus SUSE LINUX 9.1 oder 9.2 zuzugreifen, müssen Sie in Ihren Konfigurationsdateien den richtigen Verschlüsselungsnamen angeben. Dies ist entweder /etc/cryptotab oder /etc/fstab. Wie erwähnt, gibt es 3 verschiedene Implementationen, von denen zwei denselben Verschlüsselungsnamen verwenden. Um diese beiden voneinander zu unterscheiden, haben wir den Verschlüsselungsnamen twofishSL92 als Alias für twofish256 mit loop_fish2 implementiert. Ändern Sie also in Ihren Konfigurationsdateien:

twofish256 in twofishSL92

Beispiel:

Alte cryptotab-Datei aus SUSE LINUX 9.2:

/dev/loop0  /dev/hda3  /secret  reiserfs  twofish256 noatime
Neue cryptotab-Datei in SUSE LINUX 9.3:
/dev/loop0  /dev/hda3  /secret  reiserfs  twofishSL92 noatime

Folgende Fälle konnten durch technische Lösungen abgedeckt werden:

Update älterer Distributionen

Während eines System-Updates werden /etc/fstab und /etc/cryptotab vom YaST-Installationsprogramm geändert.

Installation einer neuen Distribution

Neuinstallationen verwenden ausschließlich das neue Cryptoloop-Modul.


Stichwörter: crypto, krypto, loop, mount, fsck, twofish


 

Verschlüsseltes Dateisystem unter Kernel 2.6

Zitat von http://huw.ch/index.php?section=docsys&cmd=details&id=25

Um eine Partition oder Datei unter dem Kernel 2.6 zu verschlüsseln, stehen folgende symmetrischen Algorithmen zur Verfügung, wovon die letzten drei am besten geeignet sind:

DES, 3DES, CAST, ARC4, Blowfish, Twofish, Serpent, AES

Dabei sind Schlüssellängen von 128, 192 und 256 Bit zur Verschlüsselung möglich. Da der Performance-Unterschied zwischen den unterschiedlichen Schlüssellängen minim ist, sollte die 256 Bit variante verwendet werden.

Achtung: Falls durch die hier beschriebenen Methoden ev. Schäden am System entstehen, wird jede Haftung abgelehnt!

1. Dateisystem vorbereiten

Zunächst gibt es das Tool dd, das Dateien erstellt. Man sollte unbedingt zufällig Muster schreiben lassen, damit später schwerer Muster in den verschlüsselten Daten gefunden werden können.

a) Eine Partition überschreiben

dd if=/dev/urandom of=/dev/hda10 bs=1M

Dieser Befehl überschreibt eine Partition /dev/hda10 mit zufälligen Mustern komplett.

ACHTUNG! Das sollte man nie bei einer Partition anwenden, die bereits Daten enthält, denn sonst wird alles darauf unwiederbringlich gelöscht!

b) Ein Datei erstellen

dd if=/dev/urandom of=/mnt/hda10/crypto.aes bs=1k count=10000

Dieser Befehl schreibt eine Datei auf die Partition hda10 (gemountet muss die schon sein), die 10000 Blöcke von 1 kB Grösse enthält, also etwa 10MB.

2. Loopdevice erstellen

Das Loopdevice ist ein emuliertes Gerät in der Art einer richtigen Festplatte. Ich beschreibe hier mal ein Beispiel mit /dev/loop0 hin. Als Verschlüsselung neheme ich AES mit einem 256 Bit Schlüssel.

a) Für Partition

losetup -e aes-256 /dev/loop0 /dev/hda10

b) Für Datei

losetup -e aes-256 /dev/loop0 /mnt/hda10/crypto.aes

3. Dateisystem erstellen

Nun muss in der Datei gleichermassen wie in der Partition ein Dateisystem erstellt werden. /dev/loop0 ist das emulierte Gerät mit Verschlüsselung.

mkfs.ext3 /dev/loop0

4. Einhängen des verschlüsselten Dateisystems

4.1 Für die Partition gibt es 2 Möglichkeiten:

a) Man kann eine Zeile in die /etc/fstab eintragen

/dev/hda10 /mnt/crypto ext3 noauto,encryption=aes-256 0 0

und dann einfach mounten

mount /mnt/crypto

b) Oder man kann auch wieder ein Loopdevice erstellen


losetup -e aes-256 /dev/loop0 /dev/hda10

und das dann mounten

mount /dev/loop0 /mnt/crypto

4.2 Für die Datei gibts nur eine Möglichkeit

Das Loopdevice erstellen

losetup -e aes-256 /dev/loop0 /mnt/hda10/crypto.aes

und das dann mounten

mount /dev/loop0 /mnt/crypto

5. Aushängen des verschlüsselten Loopdevices

Erstmal muss man den Mountpoint ganz normal aushängen

umount /mnt/crypto

und dann noch das Loopdevice löschen

losetup -d /dev/loop0

6. Erweiterte Verschlüsselungssmöglichkeiten

6.1 Verschlüsselung der Auslagerungsdatei (SWAP) z. B. mittels twofish-128

Wenn z. B. die Swap-Partition auf /dev/hda5 vorhanden ist und auf /dev/loop1 verschlüsselt werden soll, kann folgendermassen vorgegangen werden:

1. Ändern des Mountpoints in /etc/fstab von /dev/hda5 auf /dev/loop1

/dev/loop1 none swap sw 0 0

2. Verschlüsseln mittels

swapoff /dev/hda5
losetup -e twofish-128 /dev/loop1 /dev/hda5 && swapon -a ¦¦ losetup -d /dev/loop1

7. Fehlerquellen


7.1: Fehlermeldung ioctl: LOOP_SET_STATUS: Das Argument ist ungültig, requested cipher or key
length (128 bits) not supported by kernel

modprobe cryptoloop

7.2 ioctl: LOOP_SET_STATUS: Das Argument ist ungültig

Installation von "loop-aes-utils"

Quellen:

[1] http://kanotix.com/wiki/CoMa.php?CoMa=DateisystemeVerschl%C3%BCsseln
[2] c't 16/2004, Seite 180 (www.heise.de)

Weitere Infos

http://www.pl-berichte.de/t_system/print/loop-aes.html
http://www.tldp.org/HOWTO/Encrypted-Root-Filesystem-HOWTO/
Veröffentlicht am 21:55:06 18.05.2005 unter dem Titel Verschlüsseltes Dateisystem unter Kernel 2.6 hitsch