Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

HOTP / TOTP

general

Définition

HOTP (HMAC-based One-Time Password, RFC 4226) et TOTP (Time-based One-Time Password, RFC 6238) sont deux standards pour la génération de codes à usage unique (OTP) utilisés dans l'authentification à deux facteurs (2FA). Ce sont les algorithmes derrière les applications d'authentification comme Google Authenticator, Microsoft Authenticator, et Authy. HOTP génère un code OTP à partir d'une clé secrète partagée (K) et d'un compteur incrémental (C) via HMAC-SHA1 : HOTP(K,C) = Truncate(HMAC-SHA1(K,C)). Le compteur côté client et côté serveur doivent rester synchronisés — si l'utilisateur génère plusieurs codes sans les utiliser, une désynchronisation peut survenir. Pour tolérer ce décalage, les serveurs HOTP acceptent généralement plusieurs valeurs du compteur (fenêtre de look-ahead). TOTP est l'extension temporelle de HOTP : le compteur C est remplacé par l'heure Unix divisée par un interval de temps (généralement 30 secondes). TOTP(K,T) = HOTP(K,T/30). Un code TOTP est valide pendant 30 secondes, puis un nouveau est généré. Pour tolérer des décalages d'horloge entre client et serveur, les implémentations acceptent généralement ±1 code (soit une fenêtre de ±30 secondes). L'enrôlement se fait via un QR code contenant l'URI `otpauth://totp/issuer:account?secret=BASE32_SECRET&issuer=MyApp&algorithm=SHA1&digits=6&period=30`. La clé secrète en Base32 est partagée une seule fois lors de l'enrôlement — elle ne transite plus ensuite. Sa compromission permet de générer des codes valides indéfiniment. La principale limitation de HOTP/TOTP est leur vulnérabilité au phishing en temps réel : un attaquant peut créer un site de phishing qui collecte le code TOTP saisi par l'utilisateur et le rejoue immédiatement sur le vrai site (attaque de type EvilGinx2/Modlishka). Les codes TOTP ne sont pas résistants au phishing — contrairement à FIDO2/WebAuthn qui lie cryptographiquement l'authentification à l'origine du site.

Migration vers TOTP — Google Authenticator et alternatives

Google Authenticator est l'application TOTP la plus déployée (500M+ installations), mais historiquement sans sauvegarde cloud — perte du téléphone = perte de tous les TOTP. Depuis 2023, Google Authenticator sync les TOTP vers le compte Google. Authy propose depuis longtemps une sauvegarde chiffrée multi-appareils. Microsoft Authenticator synchronise via Azure AD. Pour les entreprises, les gestionnaires TOTP d'entreprise (1Password Teams, Bitwarden Business, Duo) permettent la gestion centralisée des enrôlements. La recommandation actuelle : utiliser FIDO2/Passkeys pour les services supportés (plus sécurisé) et TOTP comme fallback pour les services ne supportant pas FIDO2.

TOTP dans les applications — bibliothèques

L'implémentation de TOTP côté serveur est simple avec les bibliothèques disponibles. Python : `pyotp` (pip install pyotp) — `totp = pyotp.TOTP(secret); totp.verify(code)`. Node.js : `speakeasy` ou `otplib`. PHP : `spomky-labs/otphp`. Java : `dev.samstevens.totp`. La génération du QR code d'enrôlement : `totp.provisioning_uri(account_name, issuer_name=issuer)` fournit l'URI à encoder en QR. Le secret doit être généré aléatoirement : `pyotp.random_base32()` génère 16 caractères Base32 (80 bits d'entropie). Stocker ce secret chiffré en base de données (chiffrement AES-256, pas de hachage — nécessaire pour la vérification).

Limites du TOTP et transition FIDO2

TOTP présente des vulnérabilités au phishing que FIDO2 résout. Les outils EvilGinx, Modlishka, et Evilnginx2 créent des proxies transparents qui capturent à la fois le mot de passe et le code TOTP en temps réel, puis les rejouent immédiatement — l'attaquant obtient une session valide. Les campagnes de phishing ciblé (spear-phishing) utilisent activement ces techniques contre des organisations utilisant TOTP comme unique 2FA. La migration vers FIDO2/Passkeys pour les comptes critiques (administrateurs, accès aux systèmes sensibles) est la seule protection définitive contre ce type d'attaque. Les comptes moins critiques peuvent rester en TOTP — le risque résiduel est acceptable si la formation anti-phishing est assurée.

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis