Ich möchte auf allen Clients eine vollständige Festplattenverschlüsselung implementieren. Um jedoch zu vermeiden, dass Benutzer beim Booten den FDE-Zugangscode eingeben müssen, frage ich mich, ob der Zugangscode per DHCP oder ähnlichem verteilt werden kann.
Die Idee dahinter ist, dass FDE den Laptop schützen soll, wenn er gestohlen wird oder sich außerhalb des Unternehmens befindet. Wird er jedoch im Unternehmensnetzwerk verwendet, gehen wir davon aus, dass er nicht gestohlen wurde.
Im Idealfall wäre es mir lieber, wenn der Zugangscode ein Einmalzugangscode wäre, sodass jemand, der die DHCP-Antwort abhört, den Laptop grundsätzlich nicht entschlüsseln kann.
Antwort1
Da dies wahrscheinlich das Schreiben eines benutzerdefinierten Initramfs oder zumindest eines Hooks beinhaltet, könnten diese Ressourcen für Sie interessant sein (ignorieren Sie die Gentoo-spezifischen Teile):
- https://wiki.gentoo.org/wiki/Custom_Initramfs
- https://wiki.gentoo.org/wiki/Custom_Initramfs#DHCP
- https://wiki.gentoo.org/wiki/Custom_Initramfs/Examples#Self-Decrypting_Server
Das Beispiel des selbstentschlüsselnden Servers erzeugt einen Verschlüsselungsschlüssel wie diesen:
(
# CPU:
grep -vE '(MHz|bogomips)' /proc/cpuinfo
# RAM:
tail /proc/iomem
# MAC-Address: (requires network drivers)
cat /sys/class/net/*/address
# Block devices and partitions (ignore optional CD drive):
grep -v sr0 /proc/partitions
# Random file:
cat /root/secret
) | sha512sum | xargs echo -n > /root/key
Dies soll davor schützen, dass jemand an Ihrem Server vorbeigeht und die Festplatten herausnimmt. Die Festplatte selbst kennt weder die CPU, den RAM noch die MAC-Adresse des Servers und kann sich daher außerhalb der Box, zu der sie gehört, nicht selbst entschlüsseln.
Im Falle eines Laptops (wo das gesamte Gerät gestohlen wird) ist dies nicht hilfreich, da der Dieb alle Daten dabei hätte, sodass Sie diese stattdessen durch Ihre DHCP-Daten ersetzen müssen.
Nachdem Sie die IP-Adresse und dergleichen über DHCP erhalten haben, könnte es etwa so aussehen:
(
cat /sys/class/net/*/address
ip addr show
ip route show
cat /etc/resolv.conf
) | sha512sum | xargs echo -n > /root/key
Und das würde Ihnen einen Hash/eine Passphrase basierend auf Ihrer MAC-Adresse, der IP-Adresse und -Route, DNS-Servern und dergleichen geben.
Dies würde funktionieren, solange DHCP den Laptop immer auf die gleiche Weise einrichtet. Der DHCP-Server müsste sich also die Laptop-Konfiguration dauerhaft merken, da der Laptop sonst nicht mehr bootet.
Eine solche Lösung ist immer etwas instabil. Stellen Sie daher sicher, dass Sie LUKS verwenden, das mehrere Passphrasen unterstützt, und halten Sie eine Backup-Passphrase bereit, falls die DHCP-Passphrase nicht mehr funktioniert.
Außerdem ist es nicht sehr sicher. Diese DHCP-Informationen sind öffentlich (für den Benutzer des Laptops) und vermutlich nicht schwer zu erraten (für jeden, der einen anderen Laptop in derselben Umgebung verwendet). Daher schützt es vor dem durchschnittlichen Dieb, jedoch nicht vor dem technisch nicht ganz so versierten Kollegen aus der Hölle.