FIDO2, Nitrokey und Linux
veröffentlicht am 27.01.2021 mit 717 Worten - Lesezeit: 4 Minute(n) in * GEBRABBEL * LINUX *
Inhaltsverzeichnis
FIDO2 ist ein offener Authentifizierungsstandard, der von der FIDO Alliance gehostet wird und aus der W3C Web Authentication Spezifikation (WebAuthn API) und dem Client to Authentication Protocol (CTAP) besteht. Das klingt sehr technisch …
Zwei-Faktor-Authentifizierung
Definition
Von einer Zwei-Faktor-Authentifizierung spricht man, wenn zwei der drei Authentifizierungskategorien verwendet werden für einen Anmeldevorgang:
- Wissen: etwas, das nur der Nutzer weiß (etwa ein Passwort)
- Besitz: etwas, das nur der Nutzer besitzt (etwa eine Chip-Karte, Dongle, eindeutiges Gerät)
- Inhärenz: etwas, das dem Nutzer persönlich bzw. körperlich zu eigen ist (etwa ein Fingerabdruck).
Im Kern bedeutet dies, daß man bei Anmeldung an Diensten oder Webseiten im Internet zusätzlich oder anstelle des bisher bekannten Paßworts ein weiteres Gerät verwendet.
Ein weiteres Gerät
Das ermöglicht - je nach Sicherheitsanforderungen der jeweiligen Anwendung:
- Passwortlose Authentifizierung
Starke Ein-Faktor-Authentifizierung mit einem Hardware-Authentifikator, macht die schwache passwortbasierte Authentifizierung überflüssig. - Zwei-Faktor-Authentifizierung
Starke Zwei-Faktor-Authentifizierung unter Verwendung eines Hardware-Authentifikators als zusätzliche Schutzschicht über ein Passwort hinaus. - Multi-Faktor-Authentifizierung
Starke Multi-Faktor-Authentifizierung mit einem Hardware-Authentifikator und einer PIN oder einem biometrischen Merkmal, um hohe Sicherheitsanforderungen zu erfüllen, wie sie z. B. für Finanztransaktionen und die Bestellung eines Rezepts erforderlich sind.
Ausführliche Berichte gibt es auch bei heise.
Die Umsetzung
Wie beschrieben geht es darum, anstelle oder zusätzlich zu einem Paßwort (das gestohlen oder geknackt werden kann) ein weiteres Sicherheitsmerkmal hinzuzufügen zur Anmeldung. Wer online-banking nutzt, der kennt das schon seit Längerem in Form einer TAN, die per SMS auf ein (angemeldetes) Mobiltelefon gelangt oder von einem registrierten TAN-Generator mit eingeschobener Bank-Karte erzeugt wird. Bei FIDO2 geht das u. a. mit
Apps
Davon habe ich Abstand genommen, wie der eine oder andere Leser weiß, habe ich eine gewisse Abneigung gegen “Smart” Geräte.
USB-Keys als “Schlüssel”
Bei der Auswahl/beim Kauf ist darauf zu achten, daß diese Schlüssel WebAuthn/FIDO2 unterstützen müssen.
Schaut man mit den Suchworten FIDO2
und key
ins Internet, dann scheinen die security keys von Yubico, die sog. Yubikeys oder die Produkte von Feitian allgegenwärtig.
Wer den Amis und Chinesen nicht traut, der kann auch bei deutschen Herstellern fündig werden: Ich hab den Nitrokey FIDO2 im Einsatz.
- Nitrokey FIDO2 USB-Stick
Sowohl Nitrokey als auch Solokeys bieten ihre Geräte nach dem Open Source Prinzip an, d. h. sowohl Hardware als auch Software sind öffentlich zugänglich und kontrollierbar.
Hardware-Einrichtung unter Linux (hier: debian buster)
Einrichtung auf dem eigenen Rechner
Zunächst mal gilt es herauszufinden, ob der angeschlossene Key überhaupt irgendwo am USB-Bus auftaucht:
~$ lsusb
Bus 001 Device 003: ID 20a0:42b1 Clay Logic
Das ist gut - die Hardware ist da und wird erkannt. Und wie weiter?
Da hilft uns PAM (Pluggable Authentication Modules), eine Programmierschnittstelle, die es ermöglicht, Benutzer über konfigurierbare Module zu authentifizieren. Für FIDO2 gibt es ein kleines Hilfsprogramm pamu2fcfg
(Konfigurationswerkzeug für das U2F-PAM-Modul).
Das kann z. B. folgende Ausgabe liefern:
~$ pamu2fcfg
No device found. Aborting.
Nicht gut - da ist was schief gelaufen.
Nitrokey schreibt zur Behebung des Fehlers:
- Falls der Nitrokey nicht sofort erkannt wird, müssen Sie vielleicht die Datei
41-nitrokey.rules
nach/etc/udev/rules.d/
kopieren. In seltenen Fällen benötigt das System die ältere Version dieser Datei.- Danach starten Sie Udev neu indem Sie folgenden Befehl ausführen:
sudo service udev restart
Dies gilt insbesondere dann, wenn man sich (nur zur Kontrolle/testweise!) als root anmeldet und dann das Kommando eine endlos lange Zeichenkette ausgibt:
~# pamu2fcfg
root:M_U86XUpxby4U57YTNKdRT9KbQ.......................................
Für den hier gezeigten Key genügt die Zeile
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="4287|42b1|42b3", TAG+="uaccess", GROUP="plugdev", MODE="0660"
in der genannten Datei 41-nitrokey.rules
im Verzeichnis /etc/udev/rules.d/
. Sicherzustellen ist, daß der angemeldete Benutzer Mitglied der Gruppe plugdev
ist.
Zur Kontrolle sollte pamu2fcfg
dann die Meldung liefern
~$ pamu2fcfg
No U2F device available, please insert one now, you have 8 seconds
Device found!
die in der ersten Zeile (mit Ultimatum 😄) zum Anschluß eines Keys auffordert und diesen tatsächlich findet.
Beim Dienst registrieren
Hier möchte ich nichts allgemein Gültiges schreiben, der jeweilige Dienst/die Webseite wird in der Regel die Vorgehensweise erläutern.
Der Praxistest
Hier zeige ich nur beispielhaft, wie eine Anmeldung bei einem geschützten Dienst aussehen könnte.
-
Zunächst meldet man sich mit Benutzername/Paßwort an, dann
-
wird man auf eine weitere Seite geleitet, die dazu auffordert, den registrierten Key anzuschließen und per Klick auf den grünen Button die Authentifizierung anzustoßen
-
Es öffnet sich ein Popup-Fenster, das zum Bestätigen des Tasters am Key auffordert
der Key bestätigt den Tastendruck mit grüner LED
-
Das Authentifizierungsfenster schließt sich wieder und man wird zum Dienst/zur Webseite weitergeleitet.
weitere Artikel
- Android installieren auf RockPi 4B
- WLAN-Scanner für Linux
- Postbank mal wieder: Bestsign und die Abschaltung der chipTAN
- Die Sache mit den Cookies
- Noch ein eingesperrtes Android ...