TOTP- und HOTP-Generator

Vergleichen Sie Einstellungen und Codes mit einem Base32-Testgeheimnis. TOTP nutzt die Uhrzeit, HOTP einen vorgegebenen Zählerstand.

Läuft lokal in deinem Browser
Geheimnisse und Einmalcodes bleiben in diesem Browser. Verwenden Sie Test-Secrets und teilen Sie niemals einen aktiven Seed.
Authenticator-EinstellungenRFC-4226-/RFC-6238-Parameter
Parameterprüfung
  • Parameter wählen und einen Code zur Prüfung berechnen.

Provisionierung vor der 2FA-Aktivierung testen

Vergleichen Sie mit einem Wegwerf-Secret. Uhrabweichung, Speicherung, Wiederherstellung und Limits benötigen Serverkontrollen.

So erzeugen Sie einen TOTP- oder HOTP-Code

Diese Werkbank macht aus einem Base32-Secret den Einmalcode, den eine Authenticator-App anzeigen würde — mit dem Algorithmus, der Stellenzahl und dem Zeitraum oder Zähler Ihrer Wahl. Sie erzeugt außerdem die otpauth://-URI, die ein QR-Code tragen würde.

Der HMAC entsteht im Tab über Web Crypto. Das Werkzeug selbst sendet während der Berechnung keine Anfrage, Secret und Code bleiben also im Browser.

  1. Fügen Sie das Base32-Secret ein oder drücken Sie Test-Secret erzeugen für ein zufälliges 160-Bit-Secret. Kleinbuchstaben, Leerzeichen und die =-Auffüllung werden ignoriert, ein aus einer Serverkonfiguration kopiertes Secret funktioniert also unverändert.
  2. Wählen Sie den Modus. TOTP zählt Zeitfenster — wählen Sie den Zeitraum, wobei 30 Sekunden der Standard und am weitesten verbreitet ist. HOTP zählt Ereignisse — tragen Sie den Zählerstand ein, auf dem der prüfende Server steht.
  3. Stellen Sie Hash und Stellenzahl auf das ein, was Ihr Server prüft (SHA-1 mit 6 Stellen ist der übliche Standard), und drücken Sie Code berechnen. RFC-Beispiel laden füllt das Test-Secret aus RFC 4226 mit Zähler 0 ein.
  4. Lesen Sie die Parameterprüfung: Sie wiederholt die Größe des dekodierten Secrets, den verwendeten Zähler und die Stellenzahl und markiert ein Secret unter 20 Bytes, einen Zeitraum ungleich 30 Sekunden und den Umgang mit dem HOTP-Zähler.
  5. Kopieren Sie den Code für einen schnellen Vergleich oder die otpauth://-URI zur Einrichtung einer App. Im TOTP-Modus wird der Code in jedem Zeitfenster neu berechnet; Leeren setzt alle Felder auf den Standard zurück.

Was der Code ist und wo die Grenzen liegen

RFC 4226 und RFC 6238 in einem Formular

Der Code ist ein HMAC über den verwendeten Zähler: Der Zähler wird mit dem Secret signiert, das letzte Byte der Signatur wählt ein 4-Byte-Fenster (dynamische Trunkierung), und dieser Wert wird modulo 10^Stellen reduziert. TOTP ist dieselbe Funktion mit einem Zähler aus der Unix-Zeit geteilt durch den Zeitraum; deshalb wechselt ein TOTP-Code von selbst, während ein HOTP-Code auf den nächsten Zähler wartet.

Das Werkzeug stimmt mit den veröffentlichten Testvektoren überein. Mit dem RFC-Secret liefern die HOTP-Zähler 0 bis 5 die Werte 755224, 287082, 359152, 969429, 338314 und 254676. Eine Uhr im Zeitfenster des RFC, das T=59 enthält, liefert 94287082 mit SHA-1 und 8 Stellen, und die späteren Vektoren (T=1111111109 und T=20000000000) liefern 07081804 und 65353130.

Was die Parameterprüfung sagen kann — und was nicht

Die Prüfung wiederholt die verwendeten Parameter und erinnert an zwei Serverpflichten: Ein HOTP-Zähler muss vom Prüfer atomar erhöht und gespeichert werden, und ein Secret mit weniger als 20 dekodierten Bytes ist für den Produktivbetrieb zu kurz. Ein Zeitraum ungleich 30 Sekunden und SHA-256 oder SHA-512 sind gültig, werden aber von weniger Apps und Servern akzeptiert.

Hier wird kein eingetippter Code validiert, keine Uhrabweichung des Servers gemessen und nicht bewiesen, dass das Secret zum eigenen Konto gehört. Vergleichen Sie einen erzeugten Code mit der Implementierung, die ihn prüfen soll, und behandeln Sie den Einrichtungsablauf des Authenticators als maßgeblich.

Lokale Verarbeitung und die Einrichtungs-URI

Die URI folgt dem otpauth://-Schlüsselformat — Secret, Aussteller, Algorithmus (SHA1, SHA256 oder SHA512), Stellen sowie Zeitraum oder Zähler — also der Zeichenfolge, die ein QR-Code kodiert. Das Secret wird ohne Leerzeichen und Auffüllung in Base32 zurückgeschrieben, und die Beschriftung verbindet Aussteller und Kontoname.

HMAC und URI entstehen im Tab, und das Werkzeug sendet keine Anfrage; Secret und Code verlassen den Browser also nicht. Verwenden Sie beim Vergleich von Implementierungen ein Wegwerf-Test-Secret und bewahren Sie Produktions-Seeds in Systemen auf, die sie speichern dürfen.

Zuletzt verwendet: