LUKS-Passwort vergessen
Dieser Artikel wurde bereits in einem Blogartikel von vNotes behandelt.
Bei einem vergessen Passwort für die Festplattenverschlüsselung mit LUKS/dm-crypt gibt es mehrere Wege: Benutzung von mehreren Passphrasen oder Wiederherstellung mit vorhandenem Masterkey im laufenden Betrieb.
Inhaltsverzeichnis
Lösungsmöglichkeiten
Multiple Passphrasen
Generell gilt: man ist dann im Vorteil, wenn man entweder mit mehreren LUKS-Keys arbeitet (ja, man kann i.d.R. bis zu 8 Passphrasen zur Entschlüsselung der Platte nutzen) und man z.B. eine besonders komplexe Passphrase irgendwo aufgeschrieben hat, täglich mit einer "Daily Passphrase" arbeitet und im Verlustfall einer dieser Passphrasen auf eine jeweils andere gültige zurückgreifen kann.
Masterkey im /dev/mapper
Ist dieser Schritt allerdings vergessen worden und die Maschine ist mit der entsperrten Festplatte noch an, hat man Glück: hier kann man einfach eine neue Passphrase hinzufügen.
Gehen wir davon aus, dass es sich bei der verschlüsselten Platte um z.B. die /dev/sda5 handelt. Das hinzufügen über
cryptsetup luksAddKey /dev/sda5
würde in einer Abfrage eines bisherigen Keys enden. Dieser ist allerdings gar nicht notwendig, wenn wir an den Masterkey kommen, der normalerweise im Betrieb unter /dev/mapper/ liegt.
Also führen wir folgendes Kommando aus:
cryptsetup luksAddKey <DEVICE> --master-key-file <(dmsetup table --showkey /dev/mapper/<MAP> | awk '{print$5}' | xxd -r -p)
und passen es mitunter auf unser Szenario an, unter DEVICE also die Platte und unter MAP die Mapper-Datei, z.B.
cryptsetup luksAddKey /dev/sda5 --master-key-file <(dmsetup table --showkey /dev/mapper/sda5_crypt | awk '{print$5}' | xxd -r -p)
Auf diese Weise lässt sich ein Key hinzufügen, ohne die bestehende Passphrase zu kennen.
Hintergrund
Der Hintergrund ist ganz einfach erklärt: LUKS/dm-crypt verschlüsselt nicht mit einer Passphrase, sondern mit einem Masterkey. Die Passphrasen in den Keyslots sind der durch die Passphrase verschlüsselte Masterkey. Um einen neuen Key nun anzulegen, muss nun der Masterkey vorliegen. Dies geschieht entweder durch Entschlüsselung einer der Keyslots oder durch den "offenen" Masterkey in der Map file.