Seit ein paar Jahren besitze ich einen Yubikey Neo - einen USB- und NFC-kompatiblen Hardware Security Token, den ich in Kombination mit regulären Passwörtern zum Schutz von Zugangsdaten und Account einsetze. In einem früheren Beitrag habe ich bereits die verschiedenen Betriebsmodi des Yubikeys beschrieben. In diesem Beitrag will ich einen kleinen Einblick geben, wie ich mit dem Yubikey arbeite und wofür ich ihn einsetze.
Einsatzzwecke
In der letzten Jahren haben sich die Einsatzmöglichkeiten für Yubikeys im speziellen und Hardwaretokens im allgemeinen etwas verbessert. Während Zwei-Faktor-Authentifizierung vor allem im Consumer-Bereich so gut wie gar nicht zu finden war, kann man sich bei größeren Softwarekonzernen und einigen Security-Tools mittlerweile sicher anmelden.
Absicherung Logins
Mit U2F
U2F ist vor allem für das Web entwickelt. Die Verbreitung lässt zwar immer noch zu Wünschen übrig (man sagt, die Implementierung sei wohl recht komplex), aber ein paar der von mir genutzten Services unterstützen das moderne, einfach zu nutzende Verfahren bereits. Dazu gehört neben GitHub und Google auch die frei verfügbare Git-Hostingsoftware “Gitea”.
Mit TOTP
Der von mir am meisten eingesetzte Mechanismus ist TOTP: Einfach deshalb, weil er von viel mehr Diensten unterstützt wird, als das neuere U2F. Zu den von mir genutzten Anbietern gehören core-networks.de, Hetzner Online, bitcoin.de, servercow.de und Mastodon. Auch Google und GitHub habe ich zusätzlich über TOTP abgesichert - wer weiß schon, wann ich das nächste mal vor einem Rechner sitze, der kein U2F versteht … ;-)
Absicherung Passwortdatenbank
Die Absicherung meines Passwortsafes geschieht über den Challenge-Response-Mechanismus des Yubikeys. Über USB oder NFC wird eine sog. “Challenge” an den Key übertragen. Der Key trägt ein Secret in sich, und ist damit in der Lage, die Challenge zu beantworten und das korrekte Ergebnis zurückzusenden.
Unter Linux nutze ich den Yubikey-kompatiblen Passwortmanager KeePassXC. Er ist eine Neuimplementierung von KeePass und verfügt im Vergleich zu seinem Vorgänger über einige erweiterte Funktionen. Meine vorherige KeePassX-Datenbank konnte ich in KeePassXC öffnen und einen neuen Masterschlüssel festlegen: Eine Kombination aus Passwort und Challenge-Reponse-Verfahren mit dem Yubikey. Die Einrichtung ist selberklärend.
Damit ich auch unterwegs Zugriff auf wichtige Zugangsdaten habe, nutze ich auf meinem Android-Smartphone die App “Keepass2Android”. Sie unterstützt ebenfalls das Challenge-Reponse-Verfahren. In der neuesten Beta-Version (Stand Juli 2018) auch über NFC mit dem Yubikey. Erwähnenswert bzgl. der Einrichtung ist, dass die Schlüsselableitung mittels Argon2-Verfahren durchgeführt werden muss. Die Einstellung kann in der KeePassXC-Anwendung in den Verschlüsselungseinstellungen der Datenbank festgelegt werden. Wird ein anderer Algorithmus genutzt, ist KeePass2Android nicht in der Lage, mittels Yubikey/NFC zu entschlüsseln.
![Der Yubikey im Praxiseinsatz (1) Der Yubikey im Praxiseinsatz (1)](https://i0.wp.com/thomas-leister.de/yubikey-in-der-praxis/images/keepassxc.png)
Ein Backup des Yubikeys erstellen
Da eine der wichtigsten Eingenschaften eines Hardware Security Tokens ist, nicht kopierbar zu sein, muss man ein paar Umwege gehen, wenn man bei Verlust ein weiteres Exemplar in der Hinterhand haben will.
Bei U2F und TOTP gilt: Man registriert sich einfach mit beiden Keys. Bei U2f ist das einfacher, weil man beim Anbieter einfach einen weiteren Key hinterlegt. Bei TOTP meistens etwas aufwändiger, denn normalerweise wird hier nur ein Secret einmalig herausgegeben und die Einrichtung eines weiteren Geräts wird nicht unterstützt. Das bedeutet, man muss wie folgt vorgehen:
- Bei dem betreffenden Service einloggen.
- Evtl. vorhandene 2-Faktor-Authentifizierung deaktivieren
- 2FA neu einrichten: Secret als Zeichenkette oder QR-Code auf beiden Keys simultan einrichten
Was die Challenge-Response-Funktion angeht, ist der Prozess je nach aktueller Nutzung mehr oder weniger aufwendig. Die schlechte Nachricht vorweg: Wer bereits einen Yubikey mit Challenge Response im Einsatz hat, muss den Mechanismus zuvor überall deaktivieren - zumindest gilt das für die meisten Anwendungen, da sie nur einen Key unterstützen.
Damit man beide Keys nutzen kann, muss das interne Secret bei beiden Keys nämlich dasselbe sein. Nun hat man natürlich nicht die Möglichkeit, einfach zu kopieren - das heißt: Wir müssen ein neues Secret für beide Schlüssel setzen. (Und deshalb kann man sich mit einem evtl. vorher genutzten Key nicht mehr einloggen!)
Das Yubikey Personalization Tool unterstützt die Einrichtung ein und desselben Secrets auf mehreren Schlüsseln. Eine Anleitung gibt es hier: https://www.yubico.com/wp-content/uploads/2016/06/YubiKey_Identical_Credentials_ConfigGuide_en.pdf
Sobald auf beiden Keys dasselbe Secret vorhanden ist, kann einer der Keys wieder mit allen Anwendungen verknüpft werden, die mit dem Challenge-Response-Verfahren arbeiten. Der zweite Key wird danach ebenso funktionieren.
Fazit
Mit meinem Yubikey kann ich mittlerweile meine wichtigsten Zugänge absichern. Vor allem die Kombination von KeePassXC und dem Yubikey im Challenge-Response-Modus gefällt mir gut. Ich würde mir jedoch noch mehr Support für die U2F-Anmeldung im Web wünschen. Alle modernen Browser sind bereits kompatibel - jetzt liegt es nur noch an den Web Services, U2F in ihren Loginsystem zu verankern.