Aktualisierungen im Changelog, als RSS-Feed
oder im [matrix] Raum #prhdb-changes:nitro.chat

Privacy Handbuch

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).

  1. 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 Paket installiert man wie üblich mit folgenden Kommandos: Ubuntu: > sudo apt install fido2-tools
      Fedora: > sudo dnf install fido2-tools
    • Mit folgendem Kommando kann man ein PIN für ein neues FIDO2 Token setzen: > fido2-token -S /dev/hidrawX
    • Mit folgendem Kommando kann man die PIN später bei Bedarf ändern: > fido2-token -C /dev/hidrawX

      (Das "X" ist durch die Nummer für das FIDO2 Token zu ersetzen, in der Regel ist es "1".)

  2. 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>
  3. 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:
    • Entsperren des FIDO2 Token mit PIN Eingabe erforderlich oder nicht erfoderlich: --fido2-with-client-pin=yes|no (Default: yes)
    • Drücken der Präsenstaste am FIDO2 Token erforderlich oder nicht nötig: --fido2-with-user-presence=yes|no (Default: yes)
    • Eingabe eines zusätzlichen Passwortes erforderlich (nicht von allen Token unterstützt): --fido2-with-user-verification=yes|no (Default: no)
  4. Beim Öffnen des Containers wird standardmäßig weiterhin nach der Passphrase gefragt. Wenn man FIDO2 Token verwenden möchte, kann man folgendes Kommando verwenden: > sudo cryptsetup open --type luks --token-only <device> <name> oder auch möglich: > sudo /usr/lib/systemd/systemd-cryptsetup attach <name> <device> - fido2-device=auto Den Befehl könnte man in einem kleinen Script verwenden. Wenn man eine externe Festplatte oder verschlüsselten USB-Stick mit FIDO2 Stick per Script öffnen will, sollte man das Gerat mit UUID angeben, um unabhängig von der Reihefolge beim Einstecken zu sein: > sudo cryptsetup open --type luks --token-only UUID=<uuid> <name> Die <uuid> kann mit dem Befehl "blkid" ermittelt werden.
  5. 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 -u

    Zukünftig muss man keine hochkomplizierte Passphrase mehr eintippen sondern steckt beim Booten einfach das FIDO2 Token rein, das man natürlich nicht verlieren darf.

  6. 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>