USB-Dongle zum Booten und Entschlüsseln

Um deinen Raspberry Pi mit einer USB-basierten Schlüsseldatei zu verschlüsseln, kannst du die Festplatte mit LUKS (Linux Unified Key Setup) verschlüsseln und den Entschlüsselungsschlüssel auf einen USB-Stick legen. Der Raspberry Pi wird beim Starten nur dann erfolgreich booten, wenn der USB-Stick angeschlossen ist. Hier ist eine Übersicht der Schritte:

Voraussetzungen:

  • Ein Raspberry Pi mit einem Betriebssystem wie Raspberry Pi OS.
  • Ein USB-Stick, der als Schlüsselträger verwendet wird.
  • Ein verschlüsseltes LUKS-Volume auf der SD-Karte oder einem externen Laufwerk.

Vorgehensweise:

1. Installiere die notwendigen Pakete:

Stelle sicher, dass dein Raspberry Pi über die benötigten Werkzeuge verfügt:

sudo apt update
sudo apt install cryptsetup-initramfs

2. Erstelle eine Partition und verschlüssele sie mit LUKS:

Angenommen, die SD-Karte des Raspberry Pi hat zwei Partitionen: /boot und /. Die /-Partition soll verschlüsselt werden.

sudo cryptsetup luksFormat /dev/mmcblk0p2

Achtung: Dies löscht alle Daten auf der Partition. Ersetze mmcblk0p2 durch den korrekten Pfad deiner Partition.

3. Erstelle eine Schlüsseldatei auf dem USB-Stick:

Formatiere den USB-Stick und erstelle darauf eine Schlüsseldatei:

sudo dd if=/dev/urandom of=/media/usb/keyfile bs=1024 count=4

Speichere die Schlüsseldatei auf dem USB-Stick, beispielsweise im Pfad /media/usb/keyfile.

4. Füge die Schlüsseldatei zur LUKS-Verschlüsselung hinzu:

sudo cryptsetup luksAddKey /dev/mmcblk0p2 /media/usb/keyfile

5. Richte das System so ein, dass es mit der Schlüsseldatei entschlüsselt wird:

Bearbeite die Datei /etc/crypttab und füge eine Zeile hinzu, die das entschlüsselte LUKS-Laufwerk beschreibt:

cryptroot /dev/mmcblk0p2 /media/usb/keyfile luks

6. Passe den Bootvorgang an:

Bearbeite die Datei /etc/fstab, um sicherzustellen, dass das entschlüsselte Laufwerk nach dem Booten korrekt eingebunden wird. Die Zeile für die Root-Partition (/) sollte auf das entschlüsselte Volume verweisen, beispielsweise:

/dev/mapper/cryptroot / ext4 defaults 0 1

7. Initialramdisk aktualisieren:

Um sicherzustellen, dass der Raspberry Pi den USB-Stick beim Bootvorgang erkennt, musst du die Initramfs neu generieren:

sudo update-initramfs -u

8. Testen und USB-Stick nach dem Boot entfernen:

Nun sollte dein Raspberry Pi nur dann booten, wenn der USB-Stick eingesteckt ist. Nach dem erfolgreichen Booten kannst du den Stick entfernen, da das entschlüsselte Laufwerk weiterhin gemountet bleibt.

Optional: Sicherungsmechanismus

Du kannst eine alternative Methode einrichten, um den Raspberry Pi im Notfall ohne den USB-Stick zu entsperren, indem du z. B. ein Passwort als zweiten Entschlüsselungsweg einrichtest.

Diese Methode sorgt dafür, dass dein Raspberry Pi nur mit dem speziellen USB-Stick starten kann, und nach dem Start der USB-Stick nicht mehr benötigt wird.

Über Raffael Haberland 21 Artikel
Ich habe Informatik an der Technischen Universität Darmstadt sowie Wirtschaftswissenschaften an der Universität Heidelberg studiert. Derzeit bin ich als Testmanager in der Testautomation und Softwareentwicklung im Telekommunikationssektor tätig. Mein Fokus liegt auf der Bewertung von Prototypen sowie der Qualitätssicherung und Optimierung von Prozessen, insbesondere durch die Entwicklung und Implementierung automatisierter Tests.