Partition verschlüsseln unter Linux

ubuntu bietet bei der Installation an, sein Heimatverzeichnis verschlüsseln zu lassen. Das klappt schon gut, hat aber auch einige Nachteile. So werden die Dateien dateiweise verschlüsselt. Ein Angreifer sieht so zumindest die Anzahl der Dateien und kann Rückschlüsse auf die Größe von Dateien ziehen. Änderungen an Dateien bekommt er ebenfalls mit und beobachtet er die Dateiveränderungen lange genug, kann er Rückschlüsse auf die Art der Datei ziehen. Der Inhalt bleibt ihm zwar verborgen, aber er bekommt doch mehr Informationen, als einen lieb und bewusst sein mag.
dm-crypt verschlüsselt Partions- oder Festplattenweise. Was auf der Platte tatsächlich gespeichert ist, bleibt einem Angreifer verborgen. Er sieht zwar auch Änderungen in der Partition, kann diese aber nicht einzelnen Dateien zuordnen. Er kann nicht sagen, ob Daten hinzu, geändert oder gelöscht worden sind. Mehr noch: Er kann nicht einmal sagen, ob die Partition verschlüsselt ist oder nur Datenmüll enthält. Ein wichtiger Unterschied zum dateiweisen Verschlüsseln.

dm-crypt ermöglicht es, unter Linux ganze Partitionen zu verschlüsseln. Dabei erzeugt dm-crypt eine Schicht zwischen ursprünglichem Gerät und dem neu erstellten Mapping-Gerät. Es entsteht also quasi ein neues Gerät, welches für den Rest des Systems transparent genutzt werden kann. Sprich der Benutzer sieht ein ganz normales Dateisystem, nur das eben alle Daten verschlüsselt abgelegt sind.
Die Einrichtung ist schön einfach. Als Beispiel sei hier mein Ubuntu 12.04 gewählt. Das benötigte Paket cryptsetup sollte schon installiert sein. Letzter Hinweis, bevor es wirklich losgeht. Als Gerätename verwende ich /dev/sdX. Das sollte auf keinem Rechner existieren und ist durch das richtige Gerät zu ersetzen, z.B. /dev/sda1. Da viele Leute einfach copy und paste die Kommandos übernehmen, könnte das böse Folgen haben. Zur Sicherheit daher: Macht ein Backup 🙂 …

Cryptgerät erzeugen

Ich will dm-crypt in Reinkultur, d.h. ohne luks oder dergleichen verwenden. Luks schreibt einen Header am Anfang der Partition. Der verrät die verschlüsselten Daten. Vielleicht ein wenig Paranoia. Die dazu verwendeten Schlüssel speichere ich in einer Schlüsseldatei.

tocs@client:~$ dd if=/dev/random of=secret.key bs=1c count=512
tocs@client:~$ sudo cryptsetup create --key-file secret.key secdevice /dev/sdX
tocs@client:~$ ls -l /dev/mapper/
crw------- 1 root root 10, 236 Aug 24 19:40 control
lrwxrwxrwx 1 root root 7 Aug 24 22:15 secdevice -> ../dm-0
tocs@client:~$ sudo mkfs.ext4 -m 0 -L secret /dev/mapper/secdevice
...
tocs@client:~$ sudo mount /dev/mapper/secdevice /mnt

Das dd-Kommando erzeugt den eigentlichen Schlüssel. sudo cryptsetup create erzeugt ein verschlüsseltes Gerät unter /dev/mapper. Das wars eigentlich schon. Das neue Gerät kann jetzt ganz normal benutzt werden, z.B. mit einem Dateisystem formatiert werden und anschließend eingebunden werden.
Die Sicherheit steckt natürlich im verwendeten Schlüssel. Gerät sie in falsche Hände, sind alle Daten ungeschützt. Geht sie verloren, sind alle Daten weg.
Die Datei liegt ungesichert rum. Sucht also einen sicheren Ort dafür.

Informationen anzeigen lassen

tocs@client:~$ sudo cryptsetup status secdevice
  type:    PLAIN
  cipher:  aes-cbc-essiv:sha256
  keysize: 256 bits
  device:  /dev/sdX
  offset:  XXXXX sectors
  size:    XXXXX sectors
  mode:    read/write

Cryptgerät aushängen

tocs@client:~$ sudo umount /dev/mapper/secdevice
tocs@client:~$ sudo cryptsetup remove secdevice

Um es später wieder einzuhängen, muss es wieder erzeugt werden

tocs@client:~$ sudo cryptsetup create --key-file secret.key secdevice /dev/sdX

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

WordPress Cookie Hinweis von Real Cookie Banner