Utilia

Générateur de codes TOTP

Générez des codes 2FA TOTP et HOTP à partir d’un secret Base32 ou d’une URI otpauth://, en SHA-1, SHA-256 ou SHA-512, avec compte à rebours et QR code.

Un secret 2FA est aussi sensible qu’un mot de passe. Tout se passe dans votre navigateur : le secret, les codes et le QR code ne sont jamais envoyés.

Configurer une application d’authentification

Indiquez un émetteur et un nom de compte, puis scannez le QR code ou copiez le lien otpauth:// dans votre application d’authentification.

Comment générer des codes TOTP

  1. Collez un secret Base32 (par exemple JBSWY3DPEHPK3PXP) ou un lien otpauth:// complet dans Secret (Base32) ou URI otpauth://. Les espaces, les tirets, les minuscules et l’absence de remplissage = sont acceptés.
  2. Les codes s’affichent pendant la saisie, ou avec Afficher les codes. Une URI collée remplit automatiquement les champs Type, Algorithme, Chiffres, Période (secondes), Émetteur et Compte.
  3. Lisez le Code actuel au centre, entouré du Code précédent et du Code suivant. La barre indique le temps restant avant le changement de code, et Copier le code le copie sans l’espace.
  4. Pour des codes à compteur, choisissez HOTP (basé sur un compteur), réglez le Compteur puis avancez avec Compteur suivant.
  5. Pour créer un nouveau secret 2FA, cliquez sur Nouveau secret aléatoire. Renseignez l’Émetteur et le Compte, puis scannez le QR code avec une application d’authentification, utilisez Copier l’URI ou Télécharger le QR code (PNG).

Le fonctionnement de TOTP et HOTP

HOTP (RFC 4226) calcule un HMAC d’un compteur de 8 octets avec le secret partagé, puis applique une troncature dynamique : les quatre derniers bits du HMAC désignent une position, on y lit quatre octets, on efface le bit de poids fort et on garde le reste de la division par 10^chiffres. On obtient un code de 6 à 8 chiffres.

TOTP (RFC 6238) n’est autre que HOTP dont le compteur est le pas de temps courant : T = partie entière (heure Unix / période), avec une période de 30 secondes par défaut. Votre téléphone et le serveur calculent le même code chacun de leur côté, car ils partagent le secret et, à peu près, la même heure. C’est pourquoi le Code précédent et le Code suivant sont affichés : les serveurs acceptent en général un pas d’écart pour absorber une légère dérive d’horloge.

Le HMAC est calculé par l’API Web Crypto du navigateur, en SHA-1, SHA-256 ou SHA-512. SHA-1 avec 6 chiffres et 30 secondes est la configuration de presque tous les services ; SHA-256 et SHA-512 sont prévus par la RFC 6238, mais certaines applications les ignorent : ne changez les réglages que si le service le demande.

L’URI otpauth:// et le QR code

Les applications d’authentification se configurent avec une URI du type otpauth://totp/Exemple:alice@exemple.fr?secret=…&issuer=Exemple&algorithm=SHA1&digits=6&period=30, le plus souvent présentée sous forme de QR code. Cet outil lit ces URI (y compris les libellés encodés comme ACME%20Co) et en construit de nouvelles. Le QR code est dessiné localement à partir de l’URI affichée sous URI otpauth://.

Un nouveau secret aléatoire compte 20 octets (160 bits), la longueur recommandée par la RFC 4226, tirés avec crypto.getRandomValues.

Conseils de sécurité

  • Le secret est le second facteur lui-même : quiconque le possède peut produire vos codes. Ne collez pas les secrets de comptes importants sur un ordinateur partagé et ne diffusez jamais de capture du QR code.
  • Tout est calculé localement, rien ne transite sur le réseau. Fermez l’onglet une fois terminé.
  • Conservez les codes de secours fournis par le service : un secret perdu ne se récupère pas.

Questions fréquentes

Pourquoi mon code ne correspond-il pas à celui de mon application ?

Vérifiez d’abord l’horloge de votre appareil : un code TOTP change à chaque période, donc une heure décalée de plus d’une trentaine de secondes donne des codes différents. Contrôlez ensuite que l’algorithme, le nombre de chiffres et la période sont ceux du service.

Cet outil est-il compatible avec Google Authenticator et les applications similaires ?

Oui. Il suit la RFC 6238 et le format d’URI otpauth utilisé par ces applications. Scannez le QR code ou saisissez le secret Base32 dans l’application : les deux doivent afficher le même Code actuel.

Quelle différence entre TOTP et HOTP ?

TOTP avance avec le temps : un code expire à la fin de la période. HOTP avance avec un compteur qui augmente à chaque utilisation : un code reste valable tant qu’il n’a pas servi.

Puis-je m’en servir comme authentificateur au quotidien ?

Il est pensé pour les tests, le développement et le dépannage. Une application mobile ou une clé matérielle est plus sûre au quotidien, car le secret n’a pas à être collé dans une page web à chaque fois.

Les calculs ont-ils été vérifiés avec les normes ?

Oui. L’outil est testé avec les valeurs HOTP de l’annexe D de la RFC 4226 et les valeurs TOTP de l’annexe B de la RFC 6238, en SHA-1, SHA-256 et SHA-512.