FIDO2 Security Token wurden für den sicheren, passwortlosen Login entwickelt , um die unsicheren Username/Passwort Kombinationen zu ersetzen (siehe: WebAuthn/FIDO2).
Moderne Linux Distributionen mit systemd Version 2.48+ können diese FIDO2 Token auch zum passwortlosen Entsperren von LUKS2 Containern verwenden, wenn die Token die HMAC-Secret Erweiterung unterstützen (z.B. Nitrokey FIDO2, Yubikey ab Version 5).
Bei einem nagelneuen FIDO2 Token muss man zuerst eine PIN für die Authenfizierung konfigurieren, damit man eine echte 2-Faktor Authentifizierung konfigurieren kann.
Die PIN sollte nach aktuellen Empfehlungen von BSI und NIST mindestens 6-stellig sein.
Man könnte dafür den Browser Google Chrome (oder Chromium) nehmen. In den Einstellungen unter "Datenschutz & Sicherheit → Sicherheit → Sicherheitsschlüssel verwalten" kann man die PIN für den/die FIDO2 Token konfigurieren. Für echte Linuxer gibt es die FIDO2 Tools (CLI).
(Das "X" ist durch die Nummer für das FIDO2 Token zu ersetzen, in der Regel ist es "1".)
Im ersten Schritt erstellt man den LUKS2(!) Container (verschlüsselten USB-Stick, Partition oder Containerdatei) und schützt ihn mit einer echt knackigen, starken Passphrase:
> sudo cryptsetup luksFormat --type luks2 <device>Hinweis: Container im älteren LUKS1 Format können nicht mit FIDO2 Token geöffnet werden. Man könnte versuchen, einen vorhandenen LUKS1 Container nach LUKS2 zu konvertieren:
> sudo cryptsetup convert --type luks2 <device>Im nächsten Schritt wird ein FIDO2 Security Token zum Öffnen hinzugefügt. Das Token muss dabei eingesteckt sein und es darf nur ein FIDO Token gesteckt sein:
> sudo systemd-cryptenroll [Optionen] --fido2-device=auto <device>Mehrere FIDO2 Token fügt man entweder nacheinander hinzu oder man steckt alle verfügbaren Token gleichzeitig ein und verwendet folgendes Kommando, um alle hinzuzufügen:
> sudo systemd-cryptenroll [Optionen] --fido2-device=list <device> Mit folgenden Optionen kann man festlegen, welche Sicherheitsfeatures aktiviert werden:Wenn man eine im Laptop oder PC fest eingebaute verschlüsselte Festplatte standardmäßig mit einem FIDO2 Token öffnen möchte, kann man in der Datei /etc/crypttab für das Device in der vierten Spalte die Option "fido2-device=auto" einfügen:
<Name> <Gerät> - luks,fido2-device=auto...Wenn es sich dabei um die verschlüsselte root Partition handelt, muss abschließend noch das Bootimage neu gebaut werden:
> sudo update-initramfs -uZukünftig muss man keine hochkomplizierte Passphrase mehr eintippen sondern steckt beim Booten einfach das FIDO2 Token rein, das man natürlich nicht verlieren darf.
Wenn ein Token verloren geht, muss man es natürlich entfernen. Das folgende Kommando löscht alle FIDO2 Token. die für den LUKS2 Container authorisiert wurden:
> sudo systemd-cryptenroll --wipe-slot=fido2 <device>Die weiterhin gültigen Token kann man danach wieder hinzufügen (3.) oder man kombiniert das Löschen und Hinzufügen, indem man alle weiterhin gültigen FIDO2 Token anschließt und:
> sudo systemd-cryptenroll --wipe-slot=fido2 --fido2-device=list <device>