Selbstzerstörung für die LUKS-Festplattenverschlüsselung

Datum

Die Linux Distro Kali Linux, welche auf Debian basiert, beinhaltet neben den Pentest-Tools auch eine Implementation von Emergency Self Destruction of LUKS.

Dabei handelt es ursprünglich sich um cryptsetup-nuke-keys (A patch for cryptsetup which adds the option to nuke all keyslots given a certain passphrase.)

Installation

Sofern noch nicht installiert, kann man dies (unter Kali Linux) mit apt install cryptsetup-nuke-password nachholen.

Jetzt verwendet man dpkg-reconfigure cryptsetup-nuke-password um ein entsprechendes Passwort zu vergeben.

Anschließend wiederholt man die Eingabe des Selbstzerstörungspasswort.

Und dann kümmert sich das System um den Rest der Einrichtung:

root@kali:~# dpkg-reconfigure cryptsetup-nuke-password
INFO: Storing the nuke password's crypted hash in /etc/cryptsetup-nuke-password/password_hash
update-initramfs: deferring update (trigger activated)
Trigger für initramfs-tools (0.133) werden verarbeitet ...
update-initramfs: Generating /boot/initrd.img-4.19.0-kali5-amd64

Behind the scene, this creates /etc/cryptsetup-nuke-password/password_hash with the output of echo your-password | /usr/lib/cryptsetup-nuke-password/crypt --generate and rebuilds the initramfs (update-initramfs -u).

Quelle: gitlab.com/kalilinux

Die Selbstzerstörung

Nach dem Anlegen der „Selbstzerstörung“ funktioniert natürlich alles andere immer noch ordnungsgemäß. D.h. man kann mit dem entsprechenden Passwort weiterhin die Festplatte entschlüsseln.

Wird nun allerdings das Selbstzerstörungspasswort eingegeben, so ist die Festplattenverschlüsselung unbrauchbar gemacht worden, denn es ist nun nicht mehr möglich die Festplatte zu entschlüsseln, selbst mit dem richtigen Passwort.

Wenn man mit einer Live-CD bootet kann man sich per cryptsetup luksDump /dev/sda5 anschauen welche Key Slots vergeben sind.

Vor der Selbstzerstörung:

root@kali:~# cryptsetup luksDump /dev/sda5
LUKS header information for /dev/sda5

Version:       	1
Cipher name:   	aes
Cipher mode:   	xts-plain64
Hash spec:     	sha256
Payload offset:	4096
MK bits:       	512
MK digest:     	92 27 09 05 8d 58 f8 2c b4 16 3f e0 c2 6b 8d 9b 34 59 f9 52 
MK salt:       	b9 92 33 0d e1 82 d2 0c 18 7e dc 84 95 db 92 0e 
               	79 45 6f a7 58 77 a9 5b 52 d6 1a f9 05 f3 82 b2 
MK iterations: 	110890
UUID:          	b1866a04-0474-47b0-8a33-6c9faf3eb135

Key Slot 0: ENABLED
	Iterations:         	1826786
	Salt:               	a3 28 80 2a ac a0 aa 66 e7 10 11 de d5 3f 0a 5d 
	                      	14 32 b2 c6 7f 90 3a be f0 0a 0f b5 ab db f5 8c 
	Key material offset:	8
	AF stripes:            	4000
Key Slot 1: DISABLED
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

Nach der Selbstzerstörung:

Wie man sieht sind hier alle Key Slots leer und somit ist kein entschlüsseln der Festplatte möglich.

Eine Sicherung des LUKS Headers erstellen

Die Syntax lautet:
cryptsetup luksHeaderBackup <device> --header-backup-file <file>

bei Kali Linux wäre das zum Beispiel:
cryptsetup luksHeaderBackup --header-backup-file /root/luksheader.bck /dev/sda5

Das hierbei erstellte Backup der LUKS-Header /root/luksheader.bck sollte nun entsprechend extern sicher abgelegt werden.

Sicherung des LUKS Headers wieder einspielen

Möchte man seine Festplattenverschlüsselung nach der Selbszerstörung mithilfe des Backups wiederherstellen, so lautet die Syntax:
cryptsetup luksHeaderRestore <device> --header-backup-file <file>

Ein Beispiel:

Nun kann die Festplatte wieder ordnungsgemäß mit dem richtigen Passwort entschlüsselt werden.

das Paket cryptsetup-nuke-password auf anderen Systemen verwenden

Wenn man weitere Debian Systeme, welche per LUKS verschlüsselte Festplatten verwenden, mit der Selbstzerstörung ausstatten möchte kann man das entsprechende Paket mit apt download cryptsetup-nuke-password herunterladen und auf dem entsprechenden System dann per dpkg -i <Paketname.deb> installieren.
Dies habe ich bereits mit Debian 10 getestet.

Alternativ verwendet man zur Installation die offiziellen Kali Linux Repos:

Kali Linux Repos hinzufügen
als erstes fügt man die offiziellen Kali Linux Repos in die lokale /etc/apt/sources.list
echo "deb http://http.kali.org/kali kali-rolling main non-free contrib" >> /etc/apt/sources.list

Hinzufügen der Pub-Keys

root@debian:~# gpg --keyserver hkp://keys.gnupg.net --recv-keys ED444FF07D8D0BF6
gpg: key ED444FF07D8D0BF6: 184 signatures not checked due to missing keys
gpg: key ED444FF07D8D0BF6: "Kali Linux Repository <devel@kali.org>" 185 new signatures
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:         new signatures: 185
root@debian:~#  gpg -a --export ED444FF07D8D0BF6 | sudo apt-key add -                                                                                                                                                                         
OK 

Nun aktuallisiert man die Paketquellen per apt update und installiert anschließend das Paket per apt install cryptsetup-nuke-password.

Autor
Kategorien Linux

PRTG Map