Verschlüsselte Dateisysteme

Den Sinn und Zweck der Verschlüsselung von Daten (welche auch immer) werde ich hier nicht tiefgreifend erläutern. Es dürfte jeder selbst wissen was er verschlüsseln möchte.

Es gibt meines Wissens nach verschiedene Programmkonstellationen die Verwendet werden können um eine Verschlüsselte Partition oder Containerdatei anzulegen, ich werde mich hier auf eine davon beschränken, die zudem noch recht einfach ist.

Abhängigkeiten

Folgende Kernel-Module werden benötigt, jeweils als Modul oder fest in den Kernel einkompiliert:

DeviceDrivers ---> Block-Devices ---> Loopback-Device-Support
DeviceDrivers ---> Block-Devices ---> Cryptoloop-Support-Support
Cryptographic-Options ---> Welchen Algorithmus ihr verwenden wollt 

In diesen Beispielen werde ich nur den AES-Algorithmus verwenden, ihr könnt hier aber gerne auch einen anderen Algorithmus verwenden.

Außerdem benötigt ihr die Programme “losetup” und “dd” die beide bereits installiert sein. Dabei ist darauf zu achten dass losetup in einer Version vorhanden ist, in der Verschlüsselte Containerdateien unterstützt werden.

Containerdatei anlegen

Wenn ihr das ganze auf einer eigens dafür angelegten Partition machen wollt, könnt ihr diesen Schritt überspringen.

Die Containerdatei anzulegen ist leicht gemacht. Nur der freie Speicherplatz auf der Festplatte setzt hier Grenzen. Außerdem sollte beachtet werden dass die Größe der Containerdatei fix ist, das heißt nicht selbst geändert werden kann. Wenn ihr die Größe, das Password, den Verschlüsselungsalgorithmus oder das Dateisystem wechseln wollt, müsst ihr den kompletten Ablauf nocheinmal machen und die Daten in die neue Containerdatei kopieren.

Wir legen also eine Containerdatei an, in diesem Fall mit einer Größe von 640 MB, damit man diese leicht auf CD brennen kann.

dd if=/dev/urandom of=/pfad/zur/containerdatei bs=1M count=640 

Die Datei liegt dann im Verzeichnis “/pfad/zur”, trägt den bedeutungsschwangeren Namen “containerdatei” und besteht aus “pseudo-zufallsgenerierten” Daten.

Man könnte als Input-File auch /dev/null wählen, /dev/urandom soll aber sicherer sein, da man bei eventuellen Entschlüsselungsversuchen einen Nutzen aus den Nullen ziehen könnte.

Verschlüsseln, Dateisystem anlegen, einbinden

Falls die Module nicht fest in den Kernel kompiliert wurden müssen sie nun eingebunden werden:

modprobe cryptoloop aes 

Zuerst verschlüsseln wir die angelegte Datei und binden sie an das virtuelle Gerät /dev/loop0.

ACHTUNG: Das hier abgefragte Password wird nur einmal abgefragt.

 losetup -e aes /dev/loop0 /pfad/zur/containerdatei 

Wenn eine ganze Partition verwendet wird ersetzt man /pfad/zur/datei durch die jeweilige Partition (z.B. /dev/hda7)

Hierbei lässt sich nun der Verschlüsselungsalgorithmus wählen. Welche hier zur Verfügung stehen liest man am besten im manual zu lo-setup nach. Natürlich muss man dann auch das entsprechende Modul geladen haben (falls nicht im fest im Kernel).

Jetzt haben legen wir ein Dateisystem auf die Containerdatei bzw. die Partition. In diesem Beispiel wird ext2 verwendet, aber auch diesmal könnt Ihr frei wählen.

mkfs.ext2 /dev/loop0 

Das war es im Prinzip. Jetzt lösen wir noch die Bindung an /dev/loop0

losetup -d /dev/loop0

Nun lässt sich das ganze ins System einbinden:

mount -t ext2 -o loop,encryption=aes /pfad/zur/datei /mount/punkt 

Um es beim Booten zu starten oder es bei Bedarf einfacher einzubinden kann man einen entsprechenden eintrag in der /etc/fstab machen.

/pfad/zur/containerdatei  /mount/punkt ext2 loop,encryption=aes 0    0

Alternativ lässt sich das Image auch auf CD oder DVD brennen, je nachdem welche größe Ihr angegeben habt.

Siehe: Brennen unter Linux (noch nicht geschrieben)

0 thoughts on “Verschlüsselte Dateisysteme”

Leave a Reply

Your email address will not be published. Required fields are marked *