HOTP

HOTP (HMAC-based One-Time Password, RFC 4226) ist die zählerbasierte Variante von TOTP. Wo TOTP auf einer Uhr voranschreitet, schreitet HOTP auf einem gemeinsamen Zähler voran, den sowohl der Token als auch der Server mit jedem verwendeten Code inkrementieren. HOTP ist der kanonische Modus für YubiKey OATH, ältere Hardware-Tokens und einige Banking-Flows, bei denen der Server nicht auf Uhrsynchronisation vertrauen kann.

Canonical spec:RFC 4226, HOTP: An HMAC-Based One-Time Password Algorithm (2005).
URI scheme:Google Authenticator Key URI Format, the otpauth:// scheme every authenticator agrees on.
Sibling spec:TOTP (RFC 6238), time-based variant that builds on HOTP.

Was es ist

An HOTP enrolment QR is a URL in the otpauth:// scheme with hotp as the type. It carries the shared HMAC secret plus a counter value that both sides must keep in sync. Format:

otpauth://hotp/LABEL?secret=SECRET&issuer=ISSUER&counter=N&digits=N&algorithm=ALG

HOTP vs TOTP, wann welches verwenden

EigenschaftHOTP (RFC 4226)TOTP (RFC 6238)
Schreitet fort aufZählerUhr (alle 30 s)
Erfordert UhrsynchronisationNeinJa, innerhalb ~30 s Abweichung
Resync bei DriftServer akzeptiert nächste N ZählerwerteServer akzeptiert ±1 Fenster
Typisches DeploymentYubiKey, ältere Hardware-Tokens, Offline-BankingJede Consumer-2FA, Google, Microsoft, 1Password, Authy
Zählerwiederverwend.Katastrophal, leckt den Schlüssel mit der ZeitN/A
Anfälligkeit bei SchlüsselleckAlle zukünftigen Codes vorhersagbarAlle vergangenen + zukünftigen Codes vorhersagbar

Kanonische Testvektoren

RFC 4226 Appendix D provides reference HOTP values for the secret 12345678901234567890 (20 bytes, Base32 GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ) with 6-digit output:

CounterHOTP (6-digit)
0755224
1287082
2359152
3969429
4338314
5254676
6287922
7162583
8399871
9520489

Minimal QR payload for enrolment at counter 0:

otpauth://hotp/Example:test?secret=GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ&issuer=Example&counter=0

Live Base32-Schlüssel-Validator

Same validator as the TOTP page, HOTP secrets use the identical Base32 alphabet (RFC 4648 §6: A-Z, 2-7). Runs in your browser, no server round-trip.

Geben Sie einen Schlüssel zur Validierung ein.

Häufige Fallstricke

Authenticator-Kompatibilität

App / TokenHOTPSHA256/5128 StellenHinweise
YubiKey Authenticator (iOS/Android/Desktop)JaJaJaHOTP ist der kanonische YubiKey-OATH-Modus. Volle RFC-4226-Unterstützung.
Google AuthenticatorJaIgnoriert (nur SHA1)Ignoriert (nur 6)Die De-facto-Baseline. Sicher für HOTP, aber nur mit 6-stelligem SHA1.
1PasswordJaJaJaVollständige RFC-Unterstützung. Zähler wird gespeichert und mit dem Eintrag exportiert.
BitwardenJaJaJaVollständige RFC-Unterstützung.
Microsoft AuthenticatorJaJaJaVollständige RFC-Unterstützung.
AuthyNein,,HOTP in neueren Versionen entfernt. Nur TOTP.
Duo MobileNein,,Verwendet eigenen Push-Flow; nur TOTP als Fallback.
OATH-Hardware-Tokens (Feitian, Token2, etc.)JaVariiertVariiertKanonischer Hardware-HOTP-Markt; immer 6-stellig SHA1, sofern das Datenblatt nichts anderes sagt.

Siehe auch

Spec references verified Spec-Referenzen verifiziert am