Tous les articles

TOTP : comment fonctionnent les codes à usage unique des applications d'authentification

Depuis l'entrée en application de la directive européenne DSP2 (PSD2) en 2019, les banques françaises doivent imposer une "authentification forte" (SCA) pour la plupart des paiements en ligne — deux facteurs parmi trois catégories (ce que l'on sait, ce que l'on possède, ce que l'on est). C'est ce qui a précipité l'abandon progressif des anciens systèmes de carte à puce lecteur autonome au profit d'applications bancaires mobiles, dont beaucoup reposent sur des variantes de TOTP.

Un secret partagé plus le temps

Lors de la configuration, le serveur et l'application d'authentification échangent une seule clé secrète partagée (c'est exactement ce qui est encodé dans le code QR). Ensuite, les deux parties calculent indépendamment un HMAC à partir de ce secret et de l'heure unix actuelle, arrondie à un intervalle de 30 secondes — obtenant ainsi le même code sans communiquer entre elles.

Pourquoi cela fonctionne sans internet

Comme le code est calculé localement à partir du secret et de l'horloge système de l'appareil, l'application d'authentification n'a besoin d'aucune connexion réseau pour générer un code. La seule exigence est que les horloges du serveur et du téléphone restent synchronisées dans une petite marge tolérée (généralement ±30–60 secondes).

Pourquoi le code change toutes les 30 secondes

L'intervalle de temps court limite la fenêtre pendant laquelle un code intercepté reste valide, réduisant le risque qu'un attaquant le réutilise. Le serveur accepte généralement l'intervalle actuel plus l'intervalle précédent pour compenser un petit délai réseau lors de la saisie du code.

Pourquoi c'est utile

  • Comprendre le fonctionnement de l'authentification à deux facteurs lors de la configuration ou du dépannage d'applications d'authentification.
  • Tester sa propre implémentation de TOTP lors du développement d'un système d'authentification.
  • Générer des codes pour des tests automatisés sans les saisir manuellement depuis un téléphone.

Ce que TOTP ne protège pas

TOTP protège efficacement contre le vol du mot de passe indépendamment du code, mais pas contre le phishing en temps réel : si la victime saisit à la fois 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, cryptographiquement liées à un domaine précis, protègent contre ce type d'attaque.

Essayer l'outil