Linux Unified Key Setup

Das Linux Unified Key Setup bzw. kurz LUKS ist eine Spezifikation für die Festplattenverschlüsselung, die von Clemens Frühwirth 2004 für Linux zur Verschlüsselung ganzer Partitionen entwickelt wurde. LUKS beschreibt das Format der Verschlüsselung auf dem Volume und ist grundsätzlich plattformunabhängig.

Unter Linux ist cryptsetup das zentrale Dienstprogramm zur Verwaltung von LUKS-Volumes.

Eigenschaften

Zur Vermeidung von Wörterbuchangriffen implementiert LUKS PBKDF2, das zum von RSA Security entwickelten Standard PKCS #5 gehört.

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 als der vorgesehene Speicherplatz sind):

LUKS1-Header
OffsetDatentypInhalt
00hexchar[6]Magische Zahl {'L', 'U', 'K', 'S', 0xBA, 0xBE }
66hexuint16_tLUKS-Version (bei LUKS1 0x0001)
88hexchar[32]Name des Chiffrieralgorithmus (z. B. "twofish" oder "aes")
4028hexchar[32]Name des Chiffriermodus (z. B. "cbc-essiv:sha256")
7248hexchar[32]Name der Hashfunktion (z. B. "sha1" oder "ripemd160")
10468hexuint32_tOffset zu den Daten (in Sektoren)
1086Chexuint32_tAnzahl der Schlüsselbytes
11270hexchar[20]Prüfsumme des PBKDF2-Masterschlüssels
13284hexchar[32]Salt des PBKDF2-Masterschlüssels
164A4hexuint32_tAnzahl der PBKDF2-Iterationen (Default: 10)
168A8hexchar[40]UUID der Partition (im üblichen Hex-Format, z. B. "504c9fa7-d080-4acf-a829-73227b48fb89")
208D0hex(48 Bytes)Keyslot 1 (siehe unten)
…
544220hex(48 Bytes)Keyslot 8 (siehe unten)
592 Bytes total

Jeder der acht Keyslots besitzt dabei folgendes Format:

Format eines LUKS-Keyslots
OffsetDatentypInhalt
0uint32_tStatus: Aktiv=0x00AC71F3; Inaktiv=0x0000DEAD
4uint32_tAnzahl der Iterationen für PBKDF2
8char[32]Salt für PBKDF2
40uint32_tStartsektor für Schlüsseldaten
44uint32_tAnzahl der Anti-Forensic-Stripes (Default: 4000)
48 Bytes total

LUKS2

Seit Linux-Kernel-Version 4.12 gibt es eine neue LUKS-Version, die einige neue Funktionen bietet:

Einzelnachweise

  1. ↑ Michael Reiter: Cryptology and Network Security. In: LNCS. Band 9476. Springer Science+Business Media, 2015, ISBN 978-3-319-26822-4, 3 Linux Unified Key Setup, S. 228, doi:10.1007/978-3-319-26823-1 (englisch, eingeschränkte Vorschau in der Google-Buchsuche): “The Linux Unified Key Setup (LUKS) is a disk-encryption specification commonly implemented in Linux based operating systems. It is a platform-independent standard on-disk format developed by Clemens Fruhwirth in 2004.”
  2. ↑ Richard Blum: Linux Fundamentals. 2. Auflage. Jones & Bartlett Learning, 2023, ISBN 978-1-284-25488-4, 11.3 Encrypting Partitions, S. 279 (englisch, eingeschränkte Vorschau in der Google-Buchsuche): “The core utility in LUKS is the cryptsetup utility.”
  3. ↑ Peter Winkler: Computer Lexikon 2009. Markt+Technik Verlag, 2008, ISBN 978-3-8272-4403-1, S. 1011, LUKS (eingeschränkte Vorschau in der Google-Buchsuche): „Zur Vereitelung von Wörterbuchangriffen nutzt LUKS das Verfahren PBKDF2 …, das zum von RSA entwickelten Standard PKCS #5 gehört.“
  4. ↑ LUKS On-Disk Format Specification. (PDF) Version 1.2.2. Abgerufen am 19. März 2017.
  5. ↑ gitlab.com (PDF)