Utilia

TOTP- und HOTP-Code-Generator

TOTP- und HOTP-Codes für die Zwei-Faktor-Authentifizierung aus einem Base32-Geheimnis oder einer otpauth://-URI erzeugen – mit Countdown und QR-Code.

Ein 2FA-Geheimnis ist so sensibel wie ein Passwort. Alles läuft lokal in Ihrem Browser: Geheimnis, Codes und QR-Code werden nirgendwohin gesendet.

Authenticator-App einrichten

Geben Sie einen Aussteller und einen Kontonamen ein und scannen Sie dann den QR-Code oder kopieren Sie den otpauth://-Link in Ihre Authenticator-App.

So erzeugen Sie TOTP-Codes

  1. Fügen Sie ein Base32-Geheimnis (zum Beispiel JBSWY3DPEHPK3PXP) oder einen vollständigen otpauth://-Link in das Feld Geheimnis (Base32) oder otpauth://-URI ein. Leerzeichen, Bindestriche, Kleinbuchstaben und fehlendes =-Padding werden akzeptiert.
  2. Die Codes erscheinen beim Tippen oder nach einem Klick auf „Codes anzeigen“. Eine eingefügte URI füllt die Felder Typ, Algorithmus, Stellen, Intervall (Sekunden), Aussteller und Konto automatisch aus.
  3. Lesen Sie den Aktuellen Code in der Mitte ab, links und rechts davon den Vorherigen Code und den Nächsten Code. Der Balken darunter zählt die Sekunden bis zum Codewechsel herunter, und „Code kopieren“ kopiert den Code ohne Leerzeichen.
  4. Für zählerbasierte Codes wählen Sie „HOTP (zählerbasiert)“, setzen den Zähler und gehen mit „Nächster Zähler“ weiter.
  5. Um ein neues 2FA-Geheimnis zu erstellen, klicken Sie auf „Neues Zufallsgeheimnis“. Füllen Sie Aussteller und Konto aus und scannen Sie dann den QR-Code mit einer Authenticator-App, nutzen Sie „URI kopieren“ oder „QR-Code herunterladen (PNG)“.

So funktionieren TOTP und HOTP

HOTP (RFC 4226) berechnet einen HMAC über einen 8-Byte-Zähler mit dem gemeinsamen Geheimnis und wendet dann die dynamische Kürzung (dynamic truncation) an: Die letzten vier Bits des HMAC bestimmen einen Offset, ab dem vier Bytes gelesen werden. Das höchste Bit wird gelöscht und die Zahl modulo 10^Stellen reduziert. Heraus kommt ein 6- bis 8-stelliger Code.

TOTP (RFC 6238) ist HOTP, bei dem der Zähler der aktuelle Zeitschritt ist: T = floor(Unix-Zeit / Intervall), standardmäßig mit einem Intervall von 30 Sekunden. Ihr Smartphone und der Server berechnen denselben Code unabhängig voneinander, weil sie dasselbe Geheimnis und (ungefähr) dieselbe Uhrzeit haben. Deshalb zeigt das Tool auch den Vorherigen Code und den Nächsten Code: Server akzeptieren meist einen Schritt davor oder danach, um Abweichungen der Uhr auszugleichen.

Der HMAC wird mit der Web-Crypto-API Ihres Browsers berechnet, wahlweise mit SHA-1, SHA-256 oder SHA-512. SHA-1 mit 6 Stellen und 30 Sekunden verwendet fast jeder Dienst. SHA-256 und SHA-512 sind nach RFC 6238 zulässig, werden aber von manchen Apps ignoriert – ändern Sie die Standardwerte also nur, wenn der Dienst es verlangt.

Die otpauth://-URI und der QR-Code

Authenticator-Apps werden mit einer URI wie otpauth://totp/Example:alice@example.com?secret=…&issuer=Example&algorithm=SHA1&digits=6&period=30 eingerichtet, die meist als QR-Code angezeigt wird. Dieses Tool liest solche URIs (auch mit prozentkodierten Bezeichnungen wie ACME%20Co) und erstellt neue. Der QR-Code wird lokal aus der URI gezeichnet, die unter otpauth://-URI steht.

Ein neues Zufallsgeheimnis ist 20 Byte (160 Bit) lang – die von RFC 4226 empfohlene Länge – und stammt aus crypto.getRandomValues.

Sicherheitstipps

  • Das Geheimnis ist der zweite Faktor selbst: Wer es kennt, kann Ihre Codes erzeugen. Fügen Sie Geheimnisse wichtiger Konten nicht auf gemeinsam genutzten Rechnern ein und teilen Sie nie Screenshots des QR-Codes.
  • Alles wird lokal berechnet, nichts wird über das Netzwerk gesendet. Schließen Sie den Tab, wenn Sie fertig sind.
  • Bewahren Sie die Backup-Codes des Dienstes auf: Ein verlorenes Geheimnis lässt sich nicht wiederherstellen.

Häufige Fragen

Warum stimmt mein Code nicht mit dem in meiner App überein?

Prüfen Sie zuerst die Uhr Ihres Geräts: TOTP-Codes wechseln mit jedem Intervall, eine Uhr, die mehr als etwa 30 Sekunden abweicht, liefert also andere Codes. Prüfen Sie danach, ob Algorithmus, Stellen und Intervall mit den Vorgaben des Dienstes übereinstimmen.

Ist das Tool mit Google Authenticator und ähnlichen Apps kompatibel?

Ja. Es folgt RFC 6238 und dem otpauth-URI-Format dieser Apps. Scannen Sie den QR-Code oder geben Sie das Base32-Geheimnis in der App ein – beide sollten denselben Aktuellen Code anzeigen.

Was ist der Unterschied zwischen TOTP und HOTP?

TOTP schreitet mit der Zeit voran, ein Code läuft also nach dem Intervall ab. HOTP schreitet mit einem Zähler voran, der bei jeder Nutzung eines Codes steigt; ein Code bleibt gültig, bis er verwendet oder ersetzt wird.

Kann ich das Tool als alltäglichen Authenticator nutzen?

Es ist für Tests, Entwicklung und Wiederherstellung gedacht. Eine Smartphone-App oder ein Hardware-Schlüssel ist im Alltag sicherer, weil das Geheimnis nicht jedes Mal in eine Webseite eingefügt werden muss.

Wurden die Berechnungen anhand der Standards geprüft?

Ja. Das Tool wird mit den HOTP-Werten aus Anhang D von RFC 4226 und den TOTP-Werten aus Anhang B von RFC 6238 für SHA-1, SHA-256 und SHA-512 getestet.