AA_penetration_sxc922398.jpg

© sxc.hu, Kriss Szkurlatowski

Kugelsicher

USB-Sticks verschlüsseln

19.01.2009
So ein winziger USB-Stick geht schnell mal verloren – Pech nur, wenn sensible Daten darauf lagern. Verschlüsseln hilft gegen solche Pannen.

Auf USB-Sticks tragen Sie mitunter wichtige Daten herum, die Sie lieber stets dabei haben. Dazu gehören Passwörter, E-Mail-Adressen, Kalkulationen und andere sensible Informationen. Geht der kleine Stift stiften, haben Sie unter Umständen ein Problem, falls die Daten in falsche Hände geraten.

Sorgenfrei tragen Sie Ihren Schatz nur dann durch die Gegend, wenn Sie Verschlüsselung nutzen. Dank der Device-Mapper-Infrastruktur, die der Kernel 2.6 mitbringt, ist es unter Linux möglich, Dateisysteme mit einer Art Schutzmantel zu umgeben. Das Kernel-Modul dm_crypt nutzt diesen, um das darin enthaltene Dateisystem mit einer verschlüsselten Schicht zu umgeben. Um die Partition oder Festplatte zu mounten, müssen Sie mit Hilfe des korrekten Passwortes die Schutzschicht knacken und können erst dann wie gewohnt mit dem Dateisystem arbeiten (Abbildung 1).

Abbildung 1: KDE 4 erkundigt sich nach dem Passwort für den nach dem LUKS-Standard verschlüsselten USB-Stick.

Die so verschlüsselten Sticks setzen Sie nur auf Systemen ein, die einen Kernel besitzen, der das Modul dm_crypt mitbringt. Unter Windows funktioniert der Stick nicht. Das Modul muss zudem auch die eingesetzte Verschlüsselungsmethode kennen: So verwendet der Kernel 2.6.24 unter anderem den Algorithmus aes-xts-plain, der in den Kernelversionen davor fehlt. Das bedeutet: Einen unter Ubuntu 8.04 mit aes-xts-plain verschlüsselten Stick können Sie unter Ubuntu 7.10 nicht mounten. Umgekehrt klappt es schon, doch dazu später mehr.

Stick verschlüsseln

Egal ob Sie eine Partition verschlüsseln oder entschlüsseln: Sie brauchen das Paket cryptsetup, das sowohl Ubuntu als auch Opensuse im Paketmanager anbieten. Damit verschlüsseln Sie nicht nur USB-Sticks, sondern auch gewöhnliche Festplatten. Seien Sie aber vorsichtig: Falls Sie aus /dev/sdb1 versehentlich /dev/sda1 machen, planieren Sie womöglich Ihre Root-Partition. Auf jeden Fall müssen Sie die gewünschte Partition vor dem Verschlüsseln formatieren: Sie verlieren also alle vorhandenen Daten.

Zunächst öffnen Sie eine Konsole und geben tail -f /var/log/messages ein. Stecken Sie dann den USB-Stick an den Rechner, spuckt die Konsole allerhand Zeilen aus, darunter eine wie sdb: sbd1. Ihr entnehmen Sie, welche Laufwerksbezeichnung Linux dem Stick zuweist. Wir verwenden in den folgenden Beispielen sdb, was Sie bei eigenen Versuchen jeweils durch den passenden Laufwerksbuchstaben für Ihren USB-Stick ersetzen müssen.

In der Regel hängt Linux USB-Sticks automatisch in das Verzeichnissystem ein. Unter KDE 3 erscheint die Frage, ob Sie das gefundene Medium in einem neuen Fenster öffnen wollen, Gnome fragt gar nicht erst. Unter KDE 4 erscheint in der Systemleiste ein Informationsfenster, welches das neue Laufwerk anzeigt.

Die nächsten Schritte nehmen Sie auf der Kommandozeile vor. Alle Befehle, vor denen sudo steht, führen Sie unter Opensuse mit Root-Rechten aus, die Sie über die Eingabe von su root und das Root-Passwort erlangen. Zunächst rufen Sie mit sudo fdisk /dev/sdb das Partitionierungstool Fdisk auf.

Fdisk steuern Sie über die Tastatur: Über [D] löschen Sie zunächst eine vorhandene Partition. Über [N] und dann [P] legen Sie eine neue, primäre Partition an. Geben Sie eine 1 ein, um eine erste primäre Partition zu erstellen, und drücken Sie danach zweimal [Eingabe], um den kompletten Stick zu verwenden. Über [W] schreiben Sie die Veränderungen abschließend auf den USB-Stick (Abbildung 2). Im nächsten Schritt überschreiben Sie die Partition mit Zufallsdaten:

$ sudo dd bs=4K if=/dev/urandom of=/dev/sdb1
Abbildung 2: Mit Hilfe von Fdisk partitionieren Sie den USB-Stick, bevor Sie ihn verschlüsseln. Dabei gehen alle Daten verloren.

Das dient dazu, potenziellen Angreifern keinen Hinweis auf Umfang und Ausdehnung der verschlüsselten Daten zu liefern. Der Parameter bs=4K legt für die Schreibzugriffe eine Blockgröße von 4 KByte fest, was den Vorgang beschleunigt.

Dann laden Sie über sudo modprobe dm_crypt das Kernel-Modul. Um den Stick später auf dem eigenen System zu nutzen, schreiben Sie den Namen des zu ladenden Moduls in die Datei /etc/modules. Dazu erlangen Sie unter Ubuntu über sudo su Root-Rechte und geben dann ein:

# echo dm_crypt >> /etc/modules

Danach legen Sie über das Tool Cryptsetup und mit Hilfe des Device-Mappers den anfangs erwähnten Schutzmantel an (Abbildung 3):

$ sudo cryptsetup -yvh sha256 -c aes-xts-plain -s 256 luksFormat /dev/sdb1
Abbildung 3: Kugelsichere Weste: Mit Cryptsetup stülpen Sie eine verschlüsselte Schutzschicht über die Partition /dev/sdb1.

Die Option -yvh sha256 sorgt für eine doppelte Abfrage des Passworts und speichert dieses als 256 Bit langen Hash-Wert. Über -c legen Sie die Verschlüsselungsmethode fest. Hier handelt es sich um den AES-XTS-Algorithmus mit einem 256-Bit langen Schlüssel (-s 256). Wollen Sie den Stick auch auf Systemen verwenden, die einen Kernel vor Version 2.6.24 nutzen, wählen Sie -c aes-lrw-benbi als Verschlüsselungsalgorithmus. Bei Kernelversionen vor 2.6.20 weichen Sie auf -c aes-cbc-essiv:sha256 aus. Sie sollten also im Vorfeld überlegen, was Sie mit dem verschlüsselten Stick vorhaben.

Der Befehl luksFormat gehört zum LUKS-Standard (Kasten "LUKS") und initiiert die Partition. Dabei setzen Sie ein Passwort. Im zweiten Schritt verschaffen Sie sich Zugang über luksOpen Zugang zur verschlüsselten Partition (Listing 1, Zeile 1). Dabei setzen Sie einen beliebigen Namen (hier: geheim), um das Laufwerk über den Device Mapper zu mounten.

LUKS

LUKS steht für "Linux Unified Key Setup". Der Standard versieht seinen Dienst unter anderem in Kooperation mit dem Kernelmodul dm_crypt. Er verpasst verschlüsselten Partitionen einen standardisierten Header und legt ein Format für die Daten fest. LUKS kommt mit mehreren Passworten zurecht, die sich ändern lassen, und ist immun gegen Wörterbuch-Angriffe.

Nach der Eingabe des Befehls fragt Cryptsetup nach dem gerade von Ihnen erstellten Passwort. Diesen Befehl müssen Sie später stets wiederholen, um den verschlüsselten Stick zu mounten. Die unverschlüsselte Partition erreichen Sie nun über den Einhängepunkt /dev/mapper/geheim – noch fehlt jedoch das Dateisystem. Das erzeugen Sie mittels mkfs.ext3 (Listing 1, Zeile 2). Direkt im Anschluss hängen Sie das Dateisystems des Sticks ein und arbeiten wie gewohnt damit (Listing 1, Zeile 3).

Eine kleine Korrektur braucht der nun in das Verzeichnis /mnt eingehängte Stick womöglich noch. Um den Eigentümer der Dateien auf dem Stick zu ändern, ersetzen Sie mithilfe von Chmod user:user durch die Kennung Ihres Standardbenutzers.

Im Anschluss schreiben Sie im Dateimanager beliebige Dateien auf den Stick. Um ihn wieder auszuhängen, geben Sie sudo umount /mnt ein. Um schließlich den Schutzmantel wieder zu schließen, nutzen Sie luksClose (Listing 1, Zeile 5).

Listing 1
$ sudo cryptsetup luksOpen /dev/sdb1 geheim
$ sudo mkfs.ext3 /dev/mapper/geheim
$ sudo mount /dev/mapper/geheim /mnt
$ sudo chmod -R user:user /mnt
$ sudo cryptsetup luksClose /dev/mapper/geheim

Entschlüsseln

Die Desktops reagieren verschieden, wenn Sie den Crypto-Stick einstöpseln: Bei KDE 4 müssen Sie im Dolphin links auf den Eintrag Volume klicken, damit die Passwortabfrage erscheint (Abbildung 1), Gnome zeigt diese in der Regel automatisch an. Wichtig: Laden Sie vor dem Einstecken des USB-Sticks auf fremden Systemen immer auch das Kernelmodul dm_crypt – dann klappt es mit dem sicheren Zugriff.

Glossar

AES

Advanced Encryption Standard. Dieser heißt nach seinen Entwicklern Joan Daemen und Vincent Rijmen auch Rijndael-Algorithmus. In den USA benutzen Behörden ihn für Dokumente mit höchster Geheimhaltungsstufe.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare
Anmerkung zu Listing 1
Kristian Kißling, Freitag, 13. Februar 2009 08:52:48
Ein/Ausklappen

Zwei Fehler haben sich in Listing 1 eingeschlichen, hier die Korrekturen:
Zeile 04: sudo chown -R user:user /mnt
Zeile 05: sudo umount /mnt
Zeile 06: sudo cryptsetup luksClose /dev/mapper/geheim




Bewertung: 160 Punkte bei 27 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Infos zur Publikation

LU 11/2014: VIDEOS BEARBEITEN

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Artikelsuche
Erwin Ruitenberg, 09.10.2014 07:51, 1 Antworten
Ich habe seit einige Jahre ein Dugisub LinuxUser. Dann weiß ich das irgendwann ein bestimmtes Art...
Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 6 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...