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.
À 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 |
Ce qu’est un code TOTP
Un TOTP (Time-based One-Time Password) est le code à six chiffres, renouvelé toutes les trente secondes, employé dans l’authentification à deux facteurs pour ajouter une vérification par-dessus l’identifiant et le mot de passe. Il se calcule à partir d’une clé partagée appelée secret, enregistrée au préalable, combinée à l’heure courante : c’est pourquoi le serveur et l’application d’authentification que vous avez en main aboutissent au même code sans jamais communiquer. Google Authenticator, Microsoft Authenticator, Authy et les autres applications majeures suivent toutes la même norme, la RFC 6238.
Collez la clé de configuration affichée sous le QR code lors de l’activation de l’authentification à deux facteurs – le secret, au format Base32 – et cet outil reproduit dans le navigateur le même code à six chiffres que votre application afficherait. Le décodage du secret Base32 et le calcul du HMAC passent par l’API Web Crypto, et rien n’est transmis à un serveur. Pratique pour reconfigurer une application, contrôler un code ou vérifier le comportement sur plusieurs appareils.
Comment produire un code
- Saisissez le secret Collez dans le champ du secret la clé de configuration en Base32 délivrée lors de l’activation (par exemple JBSWY3DPEHPK3PXP).
- Vérifiez l’algorithme de hachage La plupart des services utilisent SHA-1. Si le code ne correspond pas, essayez de basculer sur SHA-256 ou SHA-512.
- Lisez le code à six chiffres Le code correspondant à l’instant présent est calculé au fil de la saisie et s’affiche avec une barre indiquant les secondes restantes.
- Copiez-le au besoin Le bouton de copie le place dans le presse-papiers. Évitez de l’utiliser dans les derniers instants avant son renouvellement.
Astuces pour en tirer le meilleur parti
- 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.
Quand ce générateur est utile
Contrôler ou migrer une application d’authentification
Avant de changer d’appareil et de vous réinscrire, vous pouvez confirmer ici que le secret conservé est correct, sans avoir à le découvrir sur le nouveau téléphone.
Tester des connexions en environnement de développement
Lorsque vous ajoutez l’authentification à deux facteurs à votre propre service, produisez des codes à partir du secret d’un compte de test chaque fois que vous devez éprouver la logique d’authentification.
Vérifier un secret sauvegardé
Confirmez rapidement qu’un secret rangé dans un gestionnaire de mots de passe fonctionne toujours, sans ouvrir l’application du téléphone.
Renforcer plus largement la sécurité du compte
Si vous souhaitez aussi revoir la robustesse du mot de passe lui-même, le générateur de mots de passe et le générateur de phrases de passe mémorisables méritent un détour.
Explorer le hachage sous-jacent
Si le HMAC et les fonctions de hachage sur lesquels repose le TOTP vous intéressent, le calculateur d’empreinte SHA-256 montre cette brique isolément.
Termes liés au TOTP
- TOTP (Time-based One-Time Password)
- Procédé (RFC 6238) produisant un mot de passe à usage unique à partir d’un compteur dérivé de l’heure courante. Le code change automatiquement à intervalle fixe, en général trente secondes.
- HOTP (HMAC-based One-Time Password)
- Norme antérieure (RFC 4226) sur laquelle le TOTP s’appuie. Au lieu de l’horloge, elle emploie un compteur qui s’incrémente à chaque usage.
- Secret (clé partagée)
- Clé privée détenue à la fois par le service et par votre application d’authentification. Elle est délivrée sous forme de chaîne Base32 lors de l’inscription, et le code se calcule à partir d’elle et de l’heure.
- Authentification à deux facteurs (2FA)
- Méthode de connexion associant ce que l’on sait, le mot de passe, à ce que l’on possède, le plus souvent une application d’authentification sur téléphone. Même si l’un des deux fuite, l’accès frauduleux reste bien plus difficile.
- Pas de temps
- Intervalle au terme duquel un code TOTP change. La RFC 6238 fixe trente secondes par défaut, valeur reprise telle quelle par la plupart des services et applications.
- Base32
- Codage représentant une suite d’octets à l’aide des seuls 32 caractères A–Z et 2–7. Les secrets TOTP sont diffusés sous cette forme parce qu’elle se lit et se recopie aisément.
- Troncature dynamique
- Étape qui prélève quatre octets dans la longue sortie du HMAC selon une règle fixe et les convertit en un nombre à six chiffres. Définie par la RFC 4226, elle est commune à HOTP et TOTP.
FAQ
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.