Im Hintergrund ein kratzendes Geräusch, dazu eindringlich pulsierende Musik. Ein grüner Laserstrahl aus einem silbernen Rohrstück trifft auf das Glas der Balkontür und nagt leise zischend ein rundes Loch hinein. Schnitt, nächste Szene: Die Filmheldin im schwarzen Catsuite schiebt eine knallgelbe Diskette in das Laufwerk eines PC und versteckt sich unter dem Schreibtisch. Jetzt kann der Zuschauer einen Blick auf den Monitor erhaschen. Dort blitzt ein dicker roter Balken: "Cracking".
Das ist Verschlüsselung à la Hollywood. Doch die Realität sieht anders aus. Mit starker Kryptographie, wie sie unter Linux beispielsweise DM-Crypt für Festplattenpartitionen einsetzt, müsste die Filmheldin zig Millionen Jahre unter dem Schreibtisch kauern, bevor sich der rote Balken ihrer Cracking-Software in ein grünes "Success" verwandelt.
Dieser Artikel gibt einen Einblick in die Technologie hinter DM-Crypt und seinem neuen Management-Tool LUKS (Linux Unified Key Setup) und zeigt, wie man sie einsetzt. Das Kernelmodul »dm-crypt« verschlüsselt Festplattenpartitionen auf Blockdevice-Ebene. Für die Applikation bleibt der Vorgang transparent, solange der Benutzer den Inhalt freigegeben hat.
DM-Crypt verschlüsselt das so genannte Backing-Device (die echte Festplatte) und gibt den Klartextinhalt über ein virtuelles Blockdevice unter »/dev/mapper« frei. Dieses Device kann der Benutzer wie ein herkömmliches Blockdevice verwenden, um darin ein Filesystem zu erstellen und zu mounten.
Auf dem Weg zu Cryptsetup
DM-Crypt setzt auf einem flexiblen Layer namens Device Mapper auf. Alle Device-Mapper-Module erhalten ihre Konfiguration über DM-Tables - einfache Textdateien, die angeben, wie der Device Mapper Zugriffe auf die Regionen der virtuellen Platte verarbeiten soll. Das Programm »dmsetup« liest diese Textdateien und übergibt ihre Information über »ioctl()«-Aufrufe an den Kernel.
Das DM-Table-Format ist für DM-Crypt unnötig unhandlich. Die Verschlüsselungssoftware erwartet den Key als Hex-Zeichenkette einer fixen Länge. Damit chiffriert das Modul die Daten des Blockdevice. Den Schlüssel in DM-Table-Dateien permanent abzulegen wäre aber ähnlich schlau wie einen Haustürschlüssel außen an die Türklinke zu hängen. Vielmehr ist es nötig, den Key vor jedem Mounten neu zu erstellen.
Da niemand allmorgendlich - vielleicht noch vor dem dritten Schluck Kaffee - bis zu 32 Hex-Ziffern fehlerfrei aus dem Gedächtnis tippen will, unterstützt ihn »cryptsetup« dabei. Dieses Tool leitet aus einem (einfacheren) Passwort einen kryptographischen Key ab und übergibt ihn dem Kernel. Abbildung 1 zeigt die Umgebung, in der Cryptsetup arbeitet.
Passwort und Schlüssel
Zwei wichtige Bereiche lassen sich bei Cryptsetup parametrisieren: Die Schlüsselgenerierung und das Verschlüsselungsverfahren. Ersteres bestimmt, wie Cryptsetup aus dem Passwort des Benutzers einen Schlüssel berechnet. Üblicherweise verwendet es einen Hash-Algorithmus. Das gibt dem Anwender die Freiheit, ein beliebig langes Passwort zu wählen. Der Hash komprimiert die Information immer auf eine bestimmte Anzahl von Bytes. Abbildung 1 zeigt Cryptsetup mit seinen Defaultwerten: Das Hash-Verfahren Ripemd-160 erzeugt einen 256-Bit-Schlüssel.
Beim Verschlüsselungsverfahren sind zwei Parameter zu wählen: Algorithmus und Modus. Cryptsetup übergibt diese Parameter zusammen mit dem abgeleiteten Schlüssel an den Kernel. Dort koordiniert das DM-Crypt-Modul den weiteren Ablauf. Zur Verschlüsselung greift es auf das bewährte Crypto-API zu.
« Zurück
1
2
3
4
5
6
7
...
11
Weiter »