TOTP (Time-based One-Time Password)
generalDéfinition
Le TOTP (Time-based One-Time Password — Mot de Passe à Usage Unique Basé sur le Temps) est un algorithme de génération de codes d'authentification temporaires standardisé par la RFC 6238. Il constitue le mécanisme sous-jacent des applications d'authentification mobile comme Google Authenticator, Microsoft Authenticator, et Authy, générant des codes à 6 chiffres renouvelés toutes les 30 secondes. TOTP est basé sur HOTP (HMAC-based One-Time Password, RFC 4226) en substituant le compteur par le temps Unix divisé par l'intervalle (30 secondes par défaut). Le calcul est TOTP(K, T) = HOTP(K, T0) où T0 est le nombre d'intervalles de 30 secondes écoulés depuis l'epoch Unix. La clé secrète K est partagée entre le serveur et l'application cliente lors de l'inscription (via un QR code encodant une URL otpauth://). La sécurité de TOTP repose sur le partage d'un secret et la synchronisation temporelle. Un attaquant ayant intercepté un code TOTP ne peut pas le réutiliser (il expirera dans 30 secondes maximum) et ne peut pas en déduire le prochain code sans connaître la clé secrète. Cependant, TOTP n'est pas résistant au phishing en temps réel : un site de phishing peut relayer en temps réel le code TOTP saisi par la victime vers le service légitime avant son expiration — une attaque Adversary-in-the-Middle (AiTM) que contournent les passkeys et FIDO2. Les meilleures pratiques pour TOTP incluent : stocker les seeds TOTP dans un gestionnaire de mots de passe sécurisé (Bitwarden, 1Password) et non seulement sur un seul smartphone (risque de perte d'accès), sauvegarder les codes de récupération lors de l'inscription, ne pas accorder de confiance excessives aux apps d'authentification avec synchronisation cloud non chiffrée de bout en bout, et préférer les passkeys/FIDO2 quand disponibles pour une résistance au phishing. TOTP est un facteur "something you have" (possession du smartphone ou de la seed) qui protège contre la réutilisation de mots de passe volés mais pas contre le phishing sophistiqué. Sa large adoption (disponible pour pratiquement tous les services) en fait un excellent second facteur par rapport au SMS (vulnérable au SIM swapping).
TOTP vs SMS — comparaison des facteurs MFA
Les SMS OTP sont vulnérables au SIM swapping (un attaquant persuade l'opérateur de transférer le numéro sur une nouvelle SIM) et à l'interception SS7. Les TOTP applicatifs (Google Authenticator, Authy) sont nettement plus sûrs : pas de dépendance au réseau téléphonique, pas de SIM swapping possible. Cependant, les deux sont vulnérables au phishing AiTM. L'ordre de préférence MFA recommandé par l'ANSSI et le NIST est : Passkeys/FIDO2 hardware (plus sécurisé) > TOTP applicatif > SMS > pas de MFA. La migration des comptes critiques des SMS vers TOTP ou FIDO2 est une priorité de sécurité.
Implémentation côté serveur
L'implémentation TOTP côté serveur nécessite : génération d'une clé secrète aléatoire de 160 bits minimum lors de l'inscription, stockage chiffré de cette clé en base de données, génération du QR code otpauth://totp/Issuer:user@domain?secret=BASE32SECRET&issuer=Issuer pour l'enrollment, et vérification des codes avec une fenêtre de tolérance temporelle (±1 intervalle de 30s pour compenser les dérives d'horloge). Les bibliothèques pyotp (Python), speakeasy (Node.js), et google-authenticator-libpam facilitent l'implémentation. Attention : la seed TOTP doit être traitée comme un credential et stockée avec le même niveau de protection que les mots de passe — chiffrée au repos, accès audité.
TOTP et phishing AiTM — limites connues
Les attaques Adversary-in-the-Middle (AiTM) utilisant des outils comme Evilginx2, Modlishka, ou Muraena ont démontré que le TOTP n'est pas résistant au phishing en temps réel. Ces outils de phishing proxifient la connexion vers le service légitime, relayant en temps réel le code TOTP saisi par la victime, et récupérant le cookie de session authentifié. La solution est l'adoption de WebAuthn/FIDO2 (passkeys) dont le défi cryptographique est lié à l'origine du domaine — impossible à relayer vers un domaine de phishing différent. Microsoft Entra ID, Google, GitHub, et de nombreux services adoptent les passkeys comme alternative supérieure au TOTP.
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés. 2.1.7
Un projet cybersécurité ?
Expert dispo · Réponse 24h