LUKS über USB-Stick automatisch entschlüsseln

Ich bin aktuell auf Fedora 36 unterwegs und war in der Situation, eine LUKS-Partition automatisch entschlüsseln zu müssen. Wieso erkläre ich euch am Ende des Artikels. In diesem Beitrag soll es zunächst darum gehen, wie ich das bewerkstelligen konnte.

Ziel war, dass GRUB schaut, ob der entsprechende Stick eingesteckt ist, um dann darüber die LUKS Partition zu entschlüsseln, ohne dass ich eine Eingabe via Tastatur machen muss. Nur wenn kein oder der falsche Stick eingesteckt ist, soll die normale Passwort-Abfrage kommen.

Zunächst habe ich einen meiner USB-Sticks präpariert. Ich habe eine sehr kleine Partition für das keyfile erstellt und eine zweite Partition, damit ich den Stick unterwegs auch als normalen Speicher nutzen kann.

dd if=/dev/urandom of=/mnt/sdb1/keyfile bs=4096 count=1

Der Pfad zum Stick kann bei euch natürlich entsprechend anders sein.

Nun muss dieses keyfile der LUKS-Partition hinzugefügt werden.

cryptsetup luksAddKey /dev/nvme0n1p3 /mnt/keyfile

Auch hier gilt wieder, dass der Pfad bei euch ein anderer sein kann – insbesondere, wenn ihr gar keine NVMe SSD sondern SATA Speicher nutzt.

/etc/crypttab Screenshot

Nun muss die /etc/crypttab bearbeitet werden, um auf das neue keyfile zu verweisen

so sollte es vorher in etwa aussehen (natürlich bei euch mit anderen Bezeichnungen):

luks-fc29fbfb-e2b8-41e2-9ca1-098cffc41651 UUID=fc29fbfb-e2b8-41e2-9ca1-098cffc41651 none luks

und so dann bearbeitet/ergänzt:

luks-fc29fbfb-e2b8-41e2-9ca1-098cffc41651 UUID=fc29fbfb-e2b8-41e2-9ca1-098cffc41651 /keyfile:LABEL=PASSBO luks,keyfile-timeout=5s

Bei Label müsst ihr natürlich entsprechend das Label eurer Partition auf dem Stick eintragen. In meinem Fall habe ich die Partition beim formatieren halt PASSBO genannt. Beachtet zudem, dass der Pfad relativ zum Stick angegeben wird – nicht zu eurem System. Bei mir liegt das keyfile direkt im root des Stick, daher halt /keyfile.

Nun muss noch das initramfs image aktualisiert werden

dracut -f

Jetzt noch die /etc/default/grub bearbeiten um auf das neue keyfile zu verweisen. Dafür die Zeile zu GRUB_CMDLINE_LINUX ergänzen

GRUB_CMDLINE_LINUX=“rd.luks.uuid=luks-fc29fbfb-e2b8-41e2-9ca1-098cffc41651 rd.luks.key=2A18-2815 rhgb quiet“

Hier muss bei euch das 2A18-2815 mit der UUID eurer USB-Stick-Partition ersetzt werden.

Im Anschluss ein Reboot und wenn alles geklappt hat, sollte LUKS automatisch entschlüsselt werden, wenn der richtige USB-Stick eingesteckt ist.

Wie versprochen hier aber noch die Erklärung, weshalb ich zu dieser Lösung greifen musste und wollte:

Ich besitze ein ASUS Zenbook und hier ist die Tastatur vom Hersteller so angebunden (i8042), dass bei einem Kaltstart die Funktionstasten als Keyboard erkannt werden – der Rest aber nicht. Bei einem Reboot tritt das Problem aber nicht mehr auf. Ich starte also das Zenbook und die Tastatur funktioniert nicht. Ich kann also kein Passwort eingeben. Das ist kein Problem einer bestimmten Distro, sondern allgemein unter Linux, bzw wenn es halt kein Windows ist (für welches diese Teile halt gebaut und optimiert werden).

Zunächst hatte ich mir mit Linux Mint beholfen und der Tatsache, dass man hier bei der Installation auswählen kann, dass das Home-Verzeichnis verschlüsselt werden soll. So ist man bei einem Diebstahl immerhin etwas sicher, was die eigenen Daten betrifft. Mint bootet also, ich werde nach meinem Nutzer-Passwort gefragt und die Tastatur verweigert ihren Dienst. Dann klicke ich mit der Maus einfach auf Reboot und nach dem Neustart funktioniert die Tastatur ganz normal.

Nun hat mich im Linux Guides Forum aber jemand darauf aufmerksam gemacht, dass diese Art der Verschlüsselung nicht mehr sicher ist und künftig auch nicht mehr verwendet wird. Ubuntu und andere sind bereits davon ab.

Ich musste also einen Weg finden, meine persönlichen Daten für den Fall eines Diebstahl oder Verlustes des Laptops zu schützen – gleichzeitig aber auf die Tastatur verzichten zu können. Denn nach einem Kaltstart kann ich ja wie bereits erwähnt keine Tasten drücken und ein Reboot ist so aus GRUB heraus halt auch nicht möglich. Das ging immer erst via GUI und Maus. Beides steht in GRUB aber nicht zur Verfügung.

Mit meiner Lösung kann ich nun den Rechner starten und gelange automatisch zur Eingabe des Benutzer-Passwort mit GUI, wo ich dann einmalig mit der Maus auf Reboot klicke. Danach funktioniert die Tastatur ganz normal und ich kann den Stick wieder abziehen.

Mir ist vollkommen klar, dass das nicht die sicherste Art ist. Aber es ist aktuell das beste, was ich tun kann. Ich bewahre Laptop und USB-Stick nie gemeinsam auf und im Prinzip weiß das ja auch niemand, dass zu dem Gerät ein USB-Stick gehört. Mein Bedrohungsszenario zielt auch nicht auf Angreifer ab, die direkt an meine Daten wollen. Da hätten die sicher andere Wege. Mir geht es eher darum, dass ein Finder oder Langfinger – falls er auf die Idee kommt, vor dem Formatieren mal einen Blick auf meine Daten zu werfen – nicht an meine Bilder oder persönlichen Daten heran kommt. In dem Fall wird er vermutlich einfach die Partition löschen und die Sache ist erledigt.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht.