Hachage/Crypto

TOTP Generator/Verifier

Mots de passe à usage unique basés sur le temps (TOTP, RFC 6238) — générer le code actuel à partir d'un secret et vérifier un code saisi avec tolérance au décalage d'horloge.

------


                    

TOTP (Time-based One-Time Password, RFC 6238) is a two-factor authentication algorithm that generates a one-time code from a secret and the current time. It's exactly what runs under the hood in Google Authenticator, Authy, and similar apps.

How to use it

Common uses

Things to keep in mind

A TOTP code is only valid for a short window (usually 30 seconds) — that time limit is the main protection, not the secret alone.

Code accuracy depends directly on the device's clock being synced; a noticeable clock drift is the most common cause of rejected 2FA codes.

Article sur cet outil: TOTP : comment fonctionnent les codes à usage unique des applications d'authentification

Questions fréquentes

Sur quelle norme repose le TOTP ?

TOTP est défini par la RFC 6238 : il dérive un code à usage unique à partir d'un secret partagé et de l'heure actuelle via HMAC, sur le même principe que Google Authenticator ou d'autres applications d'authentification à deux facteurs.

Pourquoi le code change-t-il toutes les 30 secondes ?

Le code est calculé sur une fenêtre de temps fixe (généralement 30 s), appelée pas de temps : à chaque nouvelle fenêtre, un nouveau code est généré. Cela limite la durée de validité d'un code intercepté.

Pourquoi un code TOTP peut-il être refusé alors qu'il semble correct ?

Si l'horloge de l'appareil qui génère le secret n'est pas synchronisée (via NTP) avec celle du vérificateur, les codes calculés ne correspondent plus, même à quelques secondes de décalage. La fenêtre de tolérance compense de petits écarts, mais pas un décalage important.

TOTP protège-t-il contre le phishing ?

Pas totalement. Si la victime saisit son mot de passe et le code TOTP actuel sur un site frauduleux, l'attaquant peut instantanément réutiliser les deux valeurs sur le vrai site tant que le code est encore valide. Seules les clés matérielles conformes au standard FIDO2/WebAuthn protègent contre ce type d'attaque en temps réel.

Pourquoi le serveur accepte-t-il aussi l'intervalle de temps précédent, et pas seulement l'actuel ?

Cela compense un léger délai réseau entre la génération du code sur le téléphone et le moment où le serveur le reçoit et le vérifie. Sans cette marge, des codes légitimes seraient parfois rejetés à cause d'un simple retard de quelques secondes.

Articles : Hachage/Crypto

Hash Generator : en quoi MD5, SHA-1 et SHA-256 diffèrent

Pourquoi MD5 sert encore à vérifier l'intégrité de fichiers, mais pas pour les mots de passe.

Checksum Verifier : comment vérifier qu'un fichier n'est pas corrompu

Pourquoi une somme de contrôle correspondante confirme l'intégrité d'un fichier, mais pas qui l'a créé.

HMAC : en quoi un hachage avec clé diffère d'un hachage classique

Pourquoi un simple SHA-256 ne protège pas contre la falsification d'un message, mais HMAC oui.

Bcrypt : pourquoi les mots de passe sont hachés lentement, pas rapidement

Pourquoi un SHA-256 rapide est un mauvais choix pour les mots de passe, et un bcrypt lent le bon choix.

UUID : comment générer des identifiants qui ne se répètent presque jamais

Pourquoi un UUID v4 peut être généré indépendamment sur des millions de machines sans risque de collision.

Générateur de mots de passe : ce qui rend vraiment un mot de passe solide

Pourquoi un long mot de passe fait de mots du dictionnaire est plus solide qu'un court avec symboles et chiffres.

AES : comment fonctionne le chiffrement symétrique

Pourquoi la même clé chiffre et déchiffre les données en AES, et en quoi cela diffère du chiffrement asymétrique.

Argon2 : pourquoi cet algorithme a remporté le concours de hachage de mots de passe

Comment Argon2 se défend mieux contre les attaques par GPU que les algorithmes de hachage de mots de passe plus anciens.

Scrypt : pourquoi l'algorithme a besoin d'autant de mémoire

Pourquoi scrypt exige volontairement beaucoup de mémoire pour compliquer le cassage sur des dispositifs ASIC.

PBKDF2 : le plus ancien standard d'étirement de clé

Pourquoi le nombre d'itérations recommandé pour PBKDF2 augmente chaque année.

X.509 : ce qu'il y a à l'intérieur d'un certificat SSL

Ce que le navigateur vérifie exactement dans le certificat d'un site avant d'afficher le cadenas vert.

PGP : comment fonctionne le chiffrement à clé publique et privée

Pourquoi on peut partager librement une clé publique PGP, mais jamais la clé privée.