#!/coding/blatt
Sammelsurium mit Schwerpunkten Linux & IT-Sicherheit

YubiKey: TOTP-Schlüssel für 2FA sicher speichern

Im Rahmen einer 2-Faktor-Authentisierung bieten viele Online-Dienste das weit verbreitete TOTP-Verfahren zur Absicherung des Benutzerkontos an. Die meisten Benutzer speichern den zum Generieren der Einmalkennwörter (OTPs) notwendigen geheim sowie sicher aufzubewahrenden TOTP-Schlüssel auf Ihrem mobilen Endgerät und nutzen hierfür OTP-Apps, wie z.B. Google Authenticator, FreeOTP etc. Im Gegensatz dazu speichere ich meine TOTP-Schlüssel auf meinem YubiKey. Für mich hat das den Vorteil, dass ich meine TOTP-Schlüssel nicht auf all meinen (mobilen) Endgeräten, wie z.B. Notebook, Smartphone und Tablet synchroniseren bzw. speichern muss und trotzdem auf all meinen Geräten Zugriff auf die TOTP-Schlüssel habe. Zudem lassen sich die auf dem YubiKey gespeicherten TOTP-Schlüssel nachträglich nicht mehr auslesen (Funktionsweise siehe Yubico-Doku: OATH). In diesem Beitrag zeige ich euch, wie das Ganze funktioniert.

Folgende Software bzw. Hardware wurde verwendet:
  • YubiKey 5C NFC (Firmware: v5.4.3)
  • Sony Xperia X Compact mit LineageOS v18.1
  • Yubico Authenticator v6.0.1 (F-Droid-Version)

Yubico Authenticator installieren

Für Android-Geräte gibt es die quelloffene Yubico Authenticator-App, die es zu installieren gilt. Ich verwende hierfür immer die Version aus dem quelloffenen F-Droid-App-Store.

Startet dann die App:

Yubico Authenticator starten
Hinweis Quelloffene YubiKey-Alternativen

Es sollte erwähnt sein, dass der YubiKey leider nicht mit einer quelloffenen Firmware läuft. Quelloffene Alternativen wären z.B. SoloKey und Nitrokey. Normalerweise ziehe ich quelloffene Systeme bzw. Open-Source-Software immer vor, aber bisher konnte mich keiner der Alternativen, was Funktionsumfang und Qualität im Vergleich zum YubiKey anbelangt, vollends überzeugen.

Passwortschutz einrichten

Standardmäßig könnte jeder der im Besitz meines YubiKeys ist, sich mithilfe des Yubico Authenticators Einmalkennwörter für die gespeicherten TOTP-Schlüssel generieren lassen. Aus Sicherheitsgründen ist es deshalb ratsam den Zugriff per Passwort zu schützen. Dazu verbindet euren YubiKey mit eurem Android-Gerät. Ich nutze hierfür immer NFC, wobei alternativ auch eine Verbindung per USB möglich ist, und halte meinen YubiKey einfach an mein Smartphone. Nachdem die App den YubiKey erkannt hat, klickt in der App oben rechts auf das YubiKey-Menü-Icon und klickt dann auf Set password:

YubiKey mit App verbinden

In dem folgenden Dialog vergebt nun ein sicheres Passwort:

YubiKey: Sicheres Passwort für OTP-App festlegen

Klickt auf Save und verbindet dann entsprechend der Aufforderung euren YubiKey wieder mit der App bzw. mit eurem Android-Gerät:

YubiKey: Sicheres Passwort für OTP-App festlegen

Anschließend ist der Passwortschutz aktiv. Jedes mal wenn ihr euch zukünftig Einmalkennwörter generieren lassen möchtet und euren YubiKey mit der App verbindet, werdet ihr zuerst nach dem gerade eingerichteten Passwort gefragt. Das Passwort selbst ist auch auf dem YubiKey gespeichert und wird unabhängig vom jeweiligen Gerät, mit dem ihr auf die TOTP-Schlüssel zugreifen wollt, immer abgefragt.

TOTP-Schlüssel speichern

Zum Speichern eines TOTP-Schlüssels klickt in der App wieder auf das YubiKey-Menü-Icon und dann auf Add account. Die App ermöglicht es euch nun einen QR-Code, der den geheimen TOTP-Schlüssel repräsentiert, einzuscannen. Alternativ könnt ihr diesen aber auch manuell eingeben. Als Beispiel verwende ich hierfür die Webseite https://otptest.de.

YubiKey: TOTP-Schlüssel per QR-Code einscannen

Bei Bedarf könmnt ihr jetzt noch die Einstellungen des TOTP-Schlüssels bzw. der dazugehörigen Daten anpassen:

YubiKey: TOTP-Schlüssel hinzufügen

Klickt dann auf Save und verbindet wieder euren YubiKey:

YubiKey: TOTP-Schlüssel hinzufügen

Wenn alles geklappt hat, ist der TOTP-Schlüssel nun sicher auf eurem YubiKey gespeichert.

Hinweis max. Anzahl speicherbarer TOTP-Schlüssel

Der YubiKey 5 ermöglicht das Speichern von bis zu 32 TOTP-Schlüsseln.

TOTP-Einmalkennwörter generieren

Beendet und startet die App erneut, so dass wieder der bekannte leere Startbildschirm der App zu sehen ist. Zum Generieren der Einmalkennwörter für eure auf eurem YubiKey gespeicherten TOTP-Schlüssel, verbindet den YubiKey wieder mit eurem Android-Gerät. Ihr solltet nun aufgerfordert werden, euer Passwort einzugeben:

YubiKey: Einmalkennwörter generieren - Passwort eingeben

Nach Eingabe des korrekten Passworts werden euch für alle gespeicherten TOTP-Schlüssel die zum Zeitpunkt des Abrufs geültigen Einmalkennwörter angezeigt:

YubiKey: Einmalkennwörter generieren - Übersicht

Klickt ihr auf einen Eintrag, gelangt ihr zu erweiterten Optionen, wie z.B. der Möglichkeit zum Löschen eines TOTP-Schlüssels.

Fazit

Ein Hardware-Security-Token, wie z.B. einen YubiKey, eignet sich als portable und sichere Alternative zum Aufbewahren von TOTP-Schlüsseln.