Générateur de mot de passe à usage unique (TOTP)

Générez le même mot de passe à usage unique à 6 chiffres (RFC 6238) que Google Authenticator et les applications similaires, à partir d'un secret TOTP au format Base32, entièrement dans votre navigateur. Votre secret n'est jamais transmis.

Cet outil n'envoie jamais votre secret à un serveur. Le décodage Base32 et le calcul HMAC s'effectuent entièrement dans votre navigateur (API Web Crypto), ce qui vous permet de saisir vos identifiants d'authentification en toute sécurité.

À propos de l'algorithme TOTP

Le TOTP (Time-based One-Time Password) est un algorithme de mot de passe à usage unique basé sur le temps, défini dans la RFC 6238. Il convertit un secret partagé et l'heure actuelle en un compteur qui avance à intervalles fixes, puis dérive un code numérique à l'aide du même algorithme de troncature dynamique que HOTP (RFC 4226).

Algorithme HMAC Choix entre SHA-1 (par défaut), SHA-256 ou SHA-512
Longueur du code 6 chiffres (la même longueur standard utilisée par Google Authenticator et la plupart des applications 2FA courantes)
Intervalle de rafraîchissement Un nouveau code est généré toutes les 30 secondes

Astuces

  • Le secret est la chaîne de caractères de la « clé de configuration » affichée sous le code QR lors du premier enregistrement de l'authentification à deux facteurs (2FA). Si vous l'avez déjà enregistrée dans une application d'authentification sur votre smartphone, saisissez le même secret ici pour vérifier le code.
  • Certains services utilisent un algorithme de hachage autre que SHA-1 (SHA-256 ou SHA-512). Si le code généré ne correspond pas à celui de votre application, essayez de changer d'algorithme.
  • Le code se rafraîchit automatiquement toutes les 30 secondes, avec une barre de progression indiquant le temps restant. Faites attention en copiant un code juste avant son expiration, car il pourrait devenir invalide avant d'atteindre le service d'authentification.
  • La fermeture de cet onglet du navigateur efface définitivement le secret, qui n'est jamais enregistré nulle part. Si vous souhaitez le conserver comme sauvegarde, stockez le secret lui-même dans un endroit sûr, comme un gestionnaire de mots de passe.

FAQ

Oui. Le décodage Base32 et le calcul HMAC s'exécutent entièrement dans votre navigateur via l'API Web Crypto et ne sont jamais envoyés à un serveur. Vous pouvez le vérifier vous-même en observant le trafic réseau : le secret saisi n'est jamais transmis.

Cela vient généralement d'un algorithme de hachage différent (la plupart des services utilisent SHA-1, mais certains utilisent SHA-256 ou SHA-512) ou d'une horloge désynchronisée. Essayez d'abord de changer d'algorithme ; si le code ne correspond toujours pas, vérifiez que l'horloge de votre appareil est réglée pour se synchroniser automatiquement.

Le TOTP est généralement considéré comme plus sûr. Les SMS peuvent être interceptés via un détournement de numéro de téléphone (fraude par échange de carte SIM), alors que le TOTP est calculé entièrement sur l'appareil et n'est pas vulnérable à ce type d'attaque.

La plupart des services délivrent des « codes de récupération » lors de la configuration initiale de la 2FA. Si vous avez perdu le secret lui-même, vous devrez repasser par la procédure de récupération de compte du service (vérification d'identité) pour reconfigurer l'authentification à deux facteurs.
ツールくん

Anecdote — Pourquoi les codes à deux facteurs se sont fixés à 6 chiffres

L'OATH (Initiative for Open Authentication), qui a rédigé la spécification TOTP (RFC 6238), a simplement repris l'algorithme de troncature dynamique de HOTP (RFC 4226) et laissé la longueur du code au choix de chaque implémentation. Si six chiffres sont devenus la norme de facto de l'industrie, c'est surtout parce que Google Authenticator a adopté cette longueur dans sa mise en œuvre initiale de 2010, et que de nombreux autres services et bibliothèques ont suivi cet exemple.

Six chiffres constituent aussi un compromis idéal. Avec un million de combinaisons possibles (10^6) et une courte fenêtre de validité de 30 secondes, une attaque par force brute devient pratiquement impossible, tandis qu'un code plus long serait peu pratique à mémoriser et à saisir pour un humain. Ce n'est pas un hasard si la plupart des codes de vérification par SMS comptent également 6 chiffres : c'est la longueur vers laquelle le secteur a convergé pour tout « code numérique éphémère à usage unique ».

Le prédécesseur du TOTP, le HOTP (RFC 4226, 2005), utilisait un compteur qu'il fallait incrémenter d'une unité à chaque utilisation d'un code. En pratique, cela provoquait de fréquents problèmes de synchronisation — un utilisateur oubliant d'appuyer sur un bouton, ou le compteur de l'appareil se désynchronisant de celui du serveur. Le TOTP, normalisé en 2011, a remplacé ce compteur par l'heure actuelle, une valeur de référence sur laquelle tout le monde peut s'accorder, simplifiant ainsi considérablement son fonctionnement.