La question de confiance
Quand les gens entendent “générateur 2FA basé sur navigateur”, la première réaction est généralement du scepticisme. Et honnêtement, c’est le bon instinct. Si un site web génère vos codes d’authentification à deux facteurs, vos clés secrètes touchent une page web. Cela semble risqué.
Mais “basé sur navigateur” ne signifie pas automatiquement “peu sûr”. Cela dépend entièrement de la façon dont l’outil est construit. Certaines approches sont réellement dangereuses. D’autres sont à peu près aussi sûres qu’une application native. La différence vient de l’endroit où le traitement se produit.
Côté client vs côté serveur
C’est la distinction clé. Un outil TOTP web peut fonctionner de deux manières très différentes :
Le traitement côté serveur signifie que votre clé secrète est envoyée à un serveur distant, qui génère le code et le renvoie. C’est mauvais. Votre secret est maintenant stocké ou transmis vers l’infrastructure de quelqu’un d’autre. Vous faites confiance à l’opérateur du serveur, à leurs pratiques de sécurité, et à chaque logiciel entre les deux.
Le traitement côté client signifie que tout se passe dans votre navigateur. Le JavaScript s’exécute localement, génère le code sur votre machine, et votre clé secrète ne quitte jamais votre appareil. La page web est juste un mécanisme de livraison pour le code qui s’exécute sur votre ordinateur.
Un outil TOTP navigateur bien construit utilise exclusivement le traitement côté client. Vos secrets restent dans la mémoire de votre navigateur, servent à calculer un code, et c’est tout. Rien n’est envoyé nulle part.
Comment vérifier cela vous-même
Vous n’avez pas à prendre la parole de quelqu’un pour argent. Ouvrez les outils de développement de votre navigateur (F12 sur la plupart des navigateurs), allez dans l’onglet Réseau, et observez ce qui se passe quand vous saisissez une clé secrète et générez un code. Si aucune requête ne part, l’outil est côté client.
Vous pouvez aussi tester en vous déconnectant complètement d’Internet. Chargez la page, passez hors ligne, puis saisissez un secret et générez un code. Si cela fonctionne, rien n’est envoyé à un serveur.
Pour les outils open source, vous pouvez lire le code source directement. L’algorithme TOTP est court et bien documenté (il est basé sur la RFC 6238), donc ce n’est pas difficile de vérifier que l’implémentation correspond à la spécification et n’inclut aucune exfiltration de données.
L’API Web Crypto
Les navigateurs modernes incluent l’API Web Crypto, un ensemble intégré de fonctions cryptographiques qui s’exécutent nativement dans le navigateur. Cela signifie qu’un générateur TOTP web n’a pas besoin de s’appuyer sur des bibliothèques crypto tierces. Il peut utiliser les mêmes primitives cryptographiques éprouvées que le navigateur lui-même utilise pour les connexions HTTPS.
L’API Web Crypto fournit HMAC-SHA1 (la fonction de hachage utilisée par TOTP), et elle exécute les opérations d’une manière conçue pour résister aux attaques temporelles. C’est du même niveau d’implémentation cryptographique que vous trouveriez dans une application de bureau native.
Compromis de sécurité comparés aux applications natives
Soyons direct sur ce qui est différent entre un outil navigateur et une application d’authentification dédiée.
Ce que les applications natives font mieux
Stockage sécurisé persistant. Les applications d’authentification mobile stockent vos secrets dans l’enclave sécurisée du système d’exploissement ou le trousseau. Un onglet de navigateur n’a pas accès à ce niveau de protection matérielle. Quand vous fermez l’onglet, les données disparaissent (ce qui est en fait une fonctionnalité dans certains contextes, mais signifie que vous devrez ressaisir les secrets).
Isolation. Une application native s’exécute dans son propre bac à sable. Un onglet de navigateur partage le processus du navigateur avec d’autres onglets. Une extension de navigateur malveillante, en théorie, pourrait accéder au contenu de la page. C’est vrai de n’importe quelle application web, pas spécifique aux outils TOTP.
Disponibilité hors ligne. Vous pouvez toujours ouvrir une application mobile. Un outil web doit être chargé d’abord, bien que beaucoup prennent en charge l’utilisation hors ligne via des service workers après le chargement initial.
Ce que les outils navigateur font bien
Pas d’installation. Vous n’avez pas besoin de télécharger une application. Cela compte quand vous êtes sur un ordinateur partagé, une machine de travail où vous ne pouvez pas installer de logiciel, ou un appareil temporaire.
Transparence. Avec un outil web (surtout open source), vous pouvez inspecter exactement quel code s’exécute, directement dans le navigateur. Les applications natives sont des binaires compilés. Vous faites confiance au développeur dans les deux cas, mais les applications web sont plus faciles à auditer.
Jetabilité. Fermez l’onglet et les secrets disparaissent de la mémoire. Rien n’est persisté sur disque, aucune base de données à voler si votre appareil est compromis plus tard. Pour un usage temporaire ou ponctuel, c’est un avantage réel.
Multi-plateforme. Fonctionne sur n’importe quel appareil avec un navigateur. Pas de soucis de compatibilité, pas de restrictions de magasin d’applications.
Quand un outil basé sur navigateur a du sens
Un générateur TOTP navigateur ne cherche pas à remplacer votre application d’authentification quotidienne. Il comble différents besoins :
- Vous êtes sur un ordinateur où vous ne pouvez pas installer d’applications et vous devez générer un code
- Vous configurez la 2FA et vous voulez vérifier que votre clé secrète produit les bons codes avant de vous engager sur une application d’authentification spécifique
- Vous êtes un développeur testant l’intégration TOTP dans votre propre application
- Votre téléphone est mort et vous avez besoin d’accéder à un compte en utilisant une clé secrète de secours que vous avez stockée en sécurité
- Vous voulez une façon rapide, sans engagement, de voir comment fonctionnent les codes TOTP
Pour vos besoins primaires quotidiens en 2FA, une application d’authentification dédiée avec sauvegarde cryptée reste le choix le plus pratique. Mais un outil navigateur côté client est une option solide pour les situations ci-dessus.
Quoi chercher dans un outil TOTP basé sur navigateur
Si vous en évaluez un, voici ce qui compte :
Côté client uniquement. Aucune requête réseau quand vous générez des codes. Vérifiez cela avec les outils de développement.
Open source. Vous pouvez lire le code. D’autres peuvent l’auditer. Les bugs sont trouvés et corrigés publiquement.
Dépendances minimales. Moins de bibliothèques signifie une surface d’attaque plus petite. L’algorithme TOTP est assez simple pour être implémenté avec juste l’API Web Crypto.
Pas de comptes ou d’inscription. Si un outil TOTP vous demande de créer un compte, vos secrets sont probablement stockés côté serveur.
HTTPS. La page doit être servie via HTTPS pour que le code ne puisse pas être altéré en transit.
Essayez-le vous-même
2fa.zip est un générateur TOTP basé sur navigateur qui fonctionne entièrement côté client. Pas de comptes, pas de stockage serveur, open source. Saisissez une clé secrète, obtenez un code. Vous pouvez vérifier la promesse côté client vous-même en utilisant les méthodes décrites ci-dessus.