HOTP

HOTP (HMAC-based One-Time Password, RFC 4226) est la variante basée sur compteur de TOTP. Là où TOTP avance sur une horloge, HOTP avance sur un compteur partagé que le token et le serveur incrémentent à chaque code utilisé. HOTP est le mode canonique pour YubiKey OATH, les tokens matériels hérités et quelques flux bancaires où le serveur ne peut pas compter sur la synchronisation d'horloge.

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.

Ce que c'est

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, quand utiliser lequel

PropriétéHOTP (RFC 4226)TOTP (RFC 6238)
Avance surCompteurHorloge (toutes les 30 s)
Nécessite sync horlogeNonOui, dans ~30 s de dérive
Resynchronisation sur dériveLe serveur accepte les N valeurs de compteur suivantesLe serveur accepte ±1 fenêtre
Déploiement typiqueYubiKey, tokens matériels hérités, banque hors ligneTout 2FA grand public, Google, Microsoft, 1Password, Authy
Réutilisation du compteurCatastrophique, fuite du secret au fil du tempsN/A
Vulnérabilité si secret compromisTous les codes futurs prédictiblesTous les codes passés + futurs prédictibles

Vecteurs de test canoniques

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

Validateur de secret Base32 en direct

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.

Entrez un secret à valider.

Pièges courants

Compatibilité des apps d'authentification

App / tokenHOTPSHA256/5128 chiffresNotes
YubiKey Authenticator (iOS/Android/bureau)OuiOuiOuiHOTP est le mode canonique YubiKey OATH. Support RFC 4226 complet.
Google AuthenticatorOuiIgnoré (SHA1 uniquement)Ignoré (6 uniquement)La référence de facto. Sûr pour HOTP mais avec 6 chiffres SHA1 uniquement.
1PasswordOuiOuiOuiSupport RFC complet. Le compteur est stocké et exporté avec l'entrée.
BitwardenOuiOuiOuiSupport RFC complet.
Microsoft AuthenticatorOuiOuiOuiSupport RFC complet.
AuthyNon,,HOTP supprimé dans les versions récentes. TOTP uniquement.
Duo MobileNon,,Utilise son propre flux push ; fallback TOTP uniquement.
Tokens matériels OATH (Feitian, Token2, etc.)OuiVarieVarieMarché canonique HOTP matériel ; toujours 6 chiffres SHA1 sauf indication contraire dans la fiche technique.

Voir aussi

Spec references verified Références de spec vérifiées le