de:sysadmin:tools:otp-tools

OTP-Tools

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


Linux Webcam -> QR-Code mit Secret Scannen

Ziel: OTP-Export per QR-Code mit der Webcam einlesen. Auftritt des Webcam-Barcode-Lesers zbarcam-qt.

Webcam-Scan vom Smartphone-Bildschirm

Aegis Authenticator

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.

Google Authenticator

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

Kommandozeile: vom Secret zum One-Time-Password

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:

  • Nicht alle Tools erlauben einen Export des Secrets (LastPass z.B.), wenn man es nur da speichert, wird es etwas mühsamer
  • Secrets sollte man im Zweifelsfall an anderer Stelle als das zugehörige Passwort aufbewahren - und natürlich so sicher wie möglich!
  • Linux/Mac/Windows:
    zbarcam-qt
    ist Bestandteil von zbar (eine Toolsammlung um Barcodes aus verschiedenen Quellen zu lesen, auch - wie hier - QR-Codes via Webcam): https://github.com/mchehab/zbar
    • in ausgesuchten Linuxdistributionen ist zbar auch einfach per Paketmanager installierbar
  • Android:
    Aegis Authenticator "Aegis Authenticator is a free, secure and open source app to manage your 2-step verification tokens for your online services." (FDroid, Google-Play)
  • Android/iOS:
    Google Authenticator - Kann nicht viel, ist dafür einfach sehr simpel (und viele halten diesen Anbieter für halbwegs vertrauenswürdig) Google Play, Apple App Store
  • Kommandozeile mit Go/Docker:
    otpauth: Google Authenticator migration decoder: https://github.com/dim13/otpauth(Installation mit go install)
  • Multi-Platform (bei mir einfach als Paket aus dem Repository):
    oathtool aus dem oath-toolkit
  • Linux (bei mir aus dem Repository installiert): otpclient https://github.com/paolostivanin/otpclient

de/sysadmin/tools/otp-tools.txt · Zuletzt geändert: 2024-12-17 10:58 von hella

Seiten-Werkzeuge

Mastodon Mastodon (old account)