HOTP

HOTP (HMAC-based One-Time Password, RFC 4226) to oparty na liczniku odpowiednik TOTP. Tam gdzie TOTP postępuje według zegara, HOTP postępuje według wspólnego licznika, który zarówno token jak i serwer inkrementują przy każdym użytym kodzie.

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.

Co to jest

QR rejestracji HOTP to URL w schemacie otpauth:// z hotp jako typem. Zawiera wspólny tajny klucz HMAC oraz wartość licznika, którą obie strony muszą utrzymywać zsynchronizowaną. Format:

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

HOTP vs TOTP, kiedy używać którego

WłaściwośćHOTP (RFC 4226)TOTP (RFC 6238)
Postępuje naLiczniku (każde udane użycie)Zegarze (co 30 s)
Wymaga synchronizacji zegaraNieTak, w zakresie ~30 s dryfu
Resync przy dryfieSerwer akceptuje kolejne N wartości licznikaSerwer akceptuje okno ±1
Typyczne wdrożenieYubiKey, starsze tokeny sprzętowe, bankowość offlineKażde konsumenckie 2FA, Google, Microsoft, 1Password, Authy
Ponowne użycie licznikaKatastrofalne, z czasem ujawnia tajny kluczN/D
Podatność przy wycieku kluczaWszystkie przyszłe kody przewidywalneWszystkie przeszłe + przyszłe kody przewidywalne

Kanoniczne wektory testowe

RFC 4226 Dodatek D dostarcza referenyjne wartości HOTP dla tajnego klucza 12345678901234567890 (20 bajtów, Base32 GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ) z 6-cyfrowym wyjściem:

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

Minimalny payload QR do rejestracji przy liczniku 0:

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

Walidator tajnego klucza Base32 na żywo

Ten sam walidator co na stronie TOTP, tajne klucze HOTP używają identycznego alfabetu Base32 (RFC 4648 §6: A-Z, 2-7). Działa w przeglądarce, bez komunikacji z serwerem.

Wprowadź tajny klucz do walidacji.

Typowe pułapki

Kompatybilność autentykatorów

Aplikacja / TokenHOTPSHA256/5128 cyfrUwagi
YubiKey Authenticator (iOS/Android/desktop)YesYesYesHOTP jest kanonicznym trybem YubiKey OATH. Pełna obsługa RFC 4226.
Google AuthenticatorYesIgnorowane (tylko SHA1)Ignorowane (tylko 6)De facto baza. Bezpieczne dla HOTP ale tylko z 6-cyfrowym SHA1.
1PasswordYesYesYesPełna obsługa RFC. Licznik jest przechowywany i eksportowany z wpisem.
BitwardenYesYesYesPełna obsługa RFC.
Microsoft AuthenticatorYesYesYesPełna obsługa RFC.
AuthyNo,,Usunął HOTP w ostatnich wersjach. Tylko TOTP.
Duo MobileNo,,Używa własnego przepływu push; tylko TOTP jako awaryjny.
OATH hardware tokens (Feitian, Token2, etc.)YesVariesVariesKanoniczny rynek sprzętowego HOTP; zawsze 6-cyfrowy SHA1, chyba że dane techniczne mówią inaczej.

Zobacz też

Spec references verified 2026-04-19. RFC 4226 (2005), Google Key URI Format.