Stand 2022-11-15
Fast überall kann oder muss man inzwischen nicht nur ein Passwort sondern zusätzlich auch einen zusätzlichen zweiten Faktor zur Authentifizierung hinterlegen. Häufig ist das ein "One-Time-Passwort" - aus einer mittellangen geheimen Zeichenkombination und der genauen Uhrzeit wird ein kurzfristig gültiger Zahlencode (meistens 6stellig) generiert.
Auf der Webseite wird einem meistens ein QR-Code angeboten, den scannt man üblicherweise mit einer App auf seinem Smartphone und ab da kann man immer die nötigen Zahlencodes abrufen.
Funktioniert super, blöd nur, wenn das Gerät mit der App gerade keinen Strom hat, kaputt ist, man es vergessen (oder verloren) hat. Hoffentlich hat man sich die zusätzlichen Sicherheitscodes auch noch abgespeichert … (ja, das sollte man).
Erst mal gut zu wissen: Mit Secret und der korrekten Uhrzeit kann natürlich auch ein zweites Gerät (zweites Telefon, ein Computer) die selben One-Time-Passwords generieren.
Für Mobiltelefone gibt es eine sehr große Anzahl von Authenticator Apps. Ich würde da eine App wählen, die keine speziellen Zugriffrechte auf dem Gerät braucht (außer beim Scannen die Kamera, Internetzugriff oder das Lesen vom Adressbuch o.ä. ist hier nicht nötig) … und vielleicht auch (garantiert) von einem bekannten Anbieter kommt. Und die nicht nur Import sondern auch Export der Secrets per QR-Code erlaubt.
Den QR-Code kann man dann wieder mit einem Authenticator Tool (z.B. auf einem anderen Telefon) importieren.
Man kann den QR-Code aber auch mit der Webcam vom Computer importieren …
Wie also ich ein One-Time-Password vom Mobiltelefon auf meinen Computer? Und wie kann ich es dann auf der Kommandozeile verwenden?
getestet und notiert mit OpenSuse Tumbleweed, einem Android-Telefon, und dem üblichsten TOTP Format: 30 Sekunden Livetime, SHA1, 6 Stellen
Die hier beschriebenen Tools gibt es aber auch für andere Plattformen
Ziel: OTP-Export per QR-Code mit der Webcam einlesen. Auftritt des Webcam-Barcode-Lesers zbarcam-qt.
Eintrag auswählen (antippen), QR-Symbol oben rechts klicken.
QR-Export-Code mit zbarcam-qt und der Webcam einscannen. Ergebnis:
QR-Code:otpauth://totp/example.org%3Aexample?period=30&digits=6&algorithm=SHA1&secret=ABCDEFGHIJKLMNOP&issuer=example.org
Diese Daten sind dann gleich Klartext, Secret=ABCDEFGHIJKLMNOP
Vorteil beim Aegis Authenticator: Man kann ihn mit extra PIN sichern, wer viele solche Codes hat, schätzt das man in Gruppen einteilen und anzeigen kann.
3-Punkte-Menü oben rechts → Konten übertragen → Konten exportieren → Pin eingeben → Nur ein Konto auswählen
QR-Export-Code mit zbarcam-qt und der Webcam einscannen. Ergebnis:
QR-Code:otpauth-migration://offline?data=CjQKCgBEMhTHQlS2Nc8SE2V4YW1wbGUub3JnOmV4YW1wbGUaC2V4YW1wbGUub3JnIAEoATACEAEYASAAKLnO7fUF
Die vom Google Authenticator exportierte Daten sind kodiert.
Decodieren mit otpauth
$ otpauth -link otpauth-migration://offline?data=CjQKCgBEMhTHQlS2Nc8SE2V4YW1wbGUub3JnOmV4YW1wbGUaC2V4YW1wbGUub3JnIAEoATACEAEYASAAKLnO7fUF otpauth://totp/example.org:example?algorithm=SHA1&digits=6&issuer=example.org&period=30&secret=ABCDEFGHIJKLMNOP
Mit dem Secret kann man dann mit dem passenden Tool One-Time-Passwords generieren.
Kommandozeile: oathtool
$ oathtool -b --totp ABCDEFGHIJKLMNOP 221042
ganz groß und immer wieder neu in einem xterm-Fenster:
xterm -fa 'Monospace' -fs 40 -geom 10x5 -e watch oathtool -b --totp ABCDEFGHIJKLMNOP
Natürlich kann man auch ein beliebiges anderes OTP-Grafikprogramm verwenden: Auf Linux z.B. OTPClient (Grafische Oberfläche mit passwort-geschützter Datenbank, mit der dazugehörenden Kommandozeile otpclient-cli
)
Einige Passwort-Manager (1Password, LastPass) beinhalten auch OTP-Generatoren.
Hinweise:
gilt für alle Tipps, Tricks & Spickzettel:
dies sind einfache, teils banale Notizen für meinen persönlichen Gebrauch,
die hier eher zufällig auch öffentlich lesbar sind
(vielleicht hilft es ja jemandem weiter). Verwendung auf eigene Gefahr
Fehler-Hinweise, Dankesschreiben , etc. bitte an: web.25@unixwitch.de
weitere Tools / Spickzettel