- dm-crypt
-
dm-crypt ist ein Kryptographie-Modul des Device Mappers im Linux-Kernel. Man kann mit dm-crypt Daten mit verschiedenen Algorithmen ver- und entschlüsseln, dies kann auf beliebige Gerätedateien (englisch: Devices) angewandt werden, in den meisten Fällen Partitionen oder Festplatten. Es wird hier also eine zusätzliche Schicht zwischen (verschlüsselten) (Roh-)Daten und dem Dateisystem aufgebaut. Für den Benutzer geschieht dies vollkommen transparent. dm-crypt eignet sich so zur Festplattenverschlüsselung (Partitionen oder ganze Festplatten). dm-crypt unterstützt eine Vielzahl von Verschlüsselungsalgorithmen, da es die Crypto API des Linuxkernels nutzt.
Einen anderen Ansatz verfolgt die (transparente) Dateiverschlüsselung, bei der das Dateisystem für die Ver- und Entschlüsselung zuständig ist.
Inhaltsverzeichnis
Anwendung
- Festplattenverschlüsselung zum Schutz sensibler Daten gegen Diebstahl (insbesondere für mobile Geräte wie Notebooks).
- Schutz gegen Datenwiederherstellung nach Verkauf oder Entsorgung von Datenträgern. Hier wären sonst teils aufwändige Verfahren nötig, um die Daten sicher zu löschen, etwa das Überschreiben oder die physische Zerstörung des Datenträgers.
Erweiterung mit LUKS
Eine gängige Erweiterung ist LUKS („Linux Unified Key Setup“), welche die verschlüsselten Daten um einen Header erweitert, in dem Metadaten sowie bis zu acht Schlüssel gespeichert werden. Vorteile gegenüber „reinem“ dm-crypt sind: ein standardisiertes Format, Informationen über die Art der Verschlüsselung im Header, Vergabe von bis zu acht Schlüsseln sowie die Änderung und Löschung von Schlüsseln, ohne Umschreiben der verschlüsselten Daten.
Da der Header, den LUKS in den Container schreibt, eine Klartext-Kennung, sowie den verwendeten Verschlüsselungs- und Hash-Algorithmus und die Größe des Masterschlüssels enthält, ist eine automatische Erkennung und einfache Verwaltung von LUKS-Containern möglich. Es macht die Verschlüsselung aber auch gegenüber Dritten und Angriffsprogrammen erkennbar. Damit wird eine glaubhafte Abstreitbarkeit schwierig bis unmöglich. Der LUKS-Header incl. Schlüsseldaten verkleinert außerdem den nutzbaren Speicherplatz auf dem Medium um 1028 KiB (Standardeinstellung). Im Gegensatz zu verschiedenen Dateisystemen, wie z.B. der Superblock bei ext2, werden diese für den Betrieb des Datenträgers wichtigen Daten nicht auf dem Medium verteilt repliziert gespeichert. Wenn sie überschrieben werden oder aufgrund eines Hardwaredefektes nicht mehr ausgelesen werden können, sind die Nutzdaten auf dem Medium nicht mehr zu entschlüsseln.
On-Disk-Format
Eine mit LUKS verschlüsselte Festplattenpartition besitzt folgenden Header (Mehrbytewerte sind dabei im Big-Endian-Format abgespeichert, Klartext-Bezeichner sind dabei mit Nullbytes aufgefüllt, wenn sie kürzer sind, als Speicherplatz vorhanden ist):
-
LUKS-Header[1] Offset Datentyp Inhalt 0 0hex char[6] Magische Zahl {'L', 'U', 'K', 'S', 0xBA, 0xBE } 6 6hex uint16_t LUKS-Version (derzeit stets 0x0001) 8 8hex char[32] Name des Chiffrieralgorithmus (z.B. "twofish" oder "aes") 40 28hex char[32] Name des Chiffriermodus (z.B. "cbc-essiv:sha256") 72 48hex char[32] Name der Hashfunktion (z.B. "sha1" oder "ripemd160") 104 68hex uint32_t Offset zu den Daten (in Sektoren) 108 6Chex uint32_t Anzahl der Schlüsselbytes 112 70hex char[20] Prüfsumme des PBKDF2-Masterschlüssels 132 84hex char[32] Salt des PBKDF2-Masterschlüssels 164 A4hex uint32_t Anzahl der PBKDF2-Iterationen (Default: 10) 168 A8hex char[40] UUID der Partition (im üblichen Hex-Format, z.B. "504c9fa7-d080-4acf-a829-73227b48fb89") 208 D0hex (48 Bytes) Keyslot 1 (siehe unten) ... 544 220hex (48 Bytes) Keyslot 8 (siehe unten) 592 Bytes total
Jeder der acht Keyslots besitzt dabei folgendes Format:
-
Format eines LUKS-Keyslots Offset Datentyp Inhalt 0 uint32_t Status: Aktiv=0x00AC71F3; Inaktiv=0x0000DEAD 4 uint32_t Anzahl der Iterationen für PBKDF2 8 char[32] Salt für PBKDF2 40 uint32_t Startsektor für Schlüsseldaten 44 uint32_t Anzahl der Anti-Forensic-Stripes (Default: 4000) 48 Bytes total
Vergleich von LUKS gegenüber einfachem dm-crypt
Die nachfolgende Auflistung erhebt keinen Anspruch auf Vollständigkeit. Je nach Einsatzzweck variiert außerdem die Relevanz der einzelnen Eigenschaften, so dass diese Auflistung keine allgemein gültige Wertung von LUKS ermöglicht.
- Klartextheader
- ermöglicht Skripte zum automatischen Einbinden des Datencontainers
- verhindert eine plausible Abstreitbarkeit
- benötigt Platz auf dem Datenträger; damit ist keine sektorweise 1:1-Kopie in einen verschlüsselten LUKS-Container auf ein Medium gleicher Größe möglich.
- Bei Fehlern im Header-Sektor ist es nahezu unmöglich, die übrigen Daten zu restaurieren, selbst wenn diese noch lesbar sind.
- Schlüssel-Setup
- Salts für Schlüssel und Masterschlüssel erschweren Angriffe mit vorberechneten Hashes
- PBKDF2 erfordert aufgrund der Iterationen erhöhten Rechenaufwand, was Wörterbuchangriffe erheblich verlangsamt
- PBKDF2 führt auf langsamen Rechnern zu einer spürbaren Verzögerung beim Einbinden des Containers
- Keyslots
- ermöglichen mehrere Passwörter/Passphrases pro Datencontainer, die zudem einfach geändert werden können
- benötigen Platz auf dem Datenträger; damit ist keine sektorweise 1:1-Kopie in verschlüsselte LUKS-Container (z. B. für Backups) möglich
- allein das Vorhandensein mehrerer Keyslots und Lücken in der Keyslotliste offenbaren Details über die Nutzung des Datencontainers.
Nachteile
Datendurchsatz
Bedingt durch den zusätzlichen Rechenaufwand der Verschlüsselungsalgorithmen entstehen Performanceeinbußen, der Datendurchsatz sinkt gegenüber unverschlüsselten Datenträgern. Eine Verbesserung kann durch schnellere Prozessoren, Mehrkernprozessoren, der Optimierung der Algorithmen auf die jeweilige Architektur oder einer Implementierung als Hardwareverschlüsselung erreicht werden.
Kryptographische Angreifbarkeit
Auf mit dm-crypt verschlüsselte Daten sind teilweise kryptographische Angriffe denkbar:[2]
- Wasserzeichenangriff, wenn nicht mit ESSIV konfiguriert
- Angriff über ein Content leak
- Angriff über ein Data modification leak
- allgemeine Angriffe auf Festplattenverschlüsselungsverfahren
Alternativen und Portierungen
Mit FreeOTFE existiert eine zu LUKS kompatible Implementierung für Microsoft Windows.
Ein vom Funktionsumfang annähernd vergleichbares alternatives Produkt für Windows und Linux ist TrueCrypt. DiskCryptor (für Microsoft Windows) nutzt ein anderes Format, aber ist dafür Freie Software.
Literatur
- Clemens Fruhwirth, Markus Schuster: Geheime Niederschrift. Festplattenverschlüsselung mit DM-Crypt und Cryptsetup-LUKS: Technik und Anwendung In: Linux-Magazin 08/2005. Linux New Media AG, S. 28-36, ISSN 1432-640X, online verfügbar
- Frank Becker und Konrad Rosenbaum: „Plattenschlüssel – Crypto-Dateisysteme auf Linux“, Vortrag auf Chemnitzer Linuxtag 2005, online verfügbar (PDF, 400 kB)
- Christian Ney, Peter Gutmann: Löchriger Käse. Verschlüsselte Filesysteme unter Linux In: Linux-Magazin 10/2006. Linux New Media AG, S. 36-44, ISSN 1432-640X, online verfügbar
Weblinks
- Website von dm-crypt (englisch)
- Website von LUKS (englisch)
Einzelnachweise
Kategorien:- Freie Kryptosoftware
- Linux-Betriebssystemkomponente
- Festplattenverschlüsselung
Wikimedia Foundation.