Verschlüsselte USB-Sticks

Permalink

Wer vertrauliche Daten mit sich herumträgt oder aus anderen gründen Dateien schützen muss kann auf Verschlüsselung zurückgreifen. Anstelle von einzelnen Dateien kann man auch ganze Geräte, wie USB-Sticks verschlüsseln. Unter Linux erreicht man dieses Ziel mittels dm-crypt erreichen. dm-crypt sorgt dafür, dass auf einem Laufwert oder einer Partition ein zusätzliches, virtuelles Laufwerk angelegt wird. Beim Zugriff auf dieses virtuelle Laufwerk werden alle Schreibzugriffe ver- und alle Lesezugriffe entschlüsselt. Damit ist die Nutzung eines solchen Laufwerkes für den Benutzer völlig transparent. Lediglich einmal, wenn der Stick angeschlossen wird, muss das Passwort angeben werden.

Verschlüsselung einrichten

Die Verschlüsselung kann man recht unproblematisch auf der Komandozeile durchführen. Dazu muss man zu erst herausfinden welche Gerätedatei für den USB-Stick zuständig ist. Normalerweise wird ein externes Gerät unter Ubuntu automatisch gemountet. Daher findet man in der Ausgabe des Befehls mount eine Zeile mit den Label des Sticks und der Gerätedatei. Im folgenden nehme ich an das es /dev/sdb ist.

Vor der eigentlichen Arbeit sollte man den Stick gleich wieder aushängen und wenn man das für nötig erachtet auch noch komplett überschreiben:

sudo umount /dev/sdb
sudo dd bs=2M if=/dev/urandom of=/dev/sdb

Danach kann man mittels cryptsetup die Verschlüsselung einrichten. Bei mir war Cryptsetup unter Ubuntu 11.10 bereits installiert so das ich hier nicht nachhelfen musste. Wenn es aber nicht vorhanden ist kann man es mittels sudo apt-get install cryptsetup nachinstallieren.

Mit dem folgenden Befehl wird auf dem Gerät ein Verschlüsselter Container angelegt und dazu einige Metainformationen in einem LUKS-Header abgelegt. Diese Metainformationen ermöglichen es später komfortabel mit der Stick zu arbeiten da er es Linux ermöglicht den Container als solchen zu identifizieren und das nötige Passwort abzufragen:

sudo cryptsetup luksFormat /dev/sdb
sudo cryptsetup luksOpen /dev/sdb crypt_device
sudo mkfs.ext4 /dev/mapper/crypt_device

Der zweite Befehl öffnet den Container und legt eine Gerätedatei /dev/mapper/crypt_device an. Mit dieser kann man dann ganz normal arbeiten und zum Beispiel ein Dateisystem anlegen. Der dritte Befehl tut genau das und legt eine ext4-Partition an.

Jetzt ist man bereits in der Lage seine vertraulichen Dateien zu verschlüsseln. Einfach den verschlüsselten Container mounten:

mount /dev/mapper/crypt_device /mnt

Dateien kopieren und hinterher wieder aufräumen:

umount /dev/mapper/crypt_device
sudo cryptsetup luksClose crypt_device

Mehr Komfort?

Beim täglichen Arbeiten würde das manuelle Mappen und Mounten des Containers natürlich stören. Aber das ist auch gar nicht nötig. Ubuntu 11.10 erkennt bei anschließen des Sticks anhand des LUKS-Headers die Verschlüsselung und fragt automatisch das Passwort ab. Fertig!