L'authentification résistante à l'hameçonnage

FIDO2 / WebAuthn : la clé publique contre le phishing

TOTP améliore la sécurité mais laisse la porte de l'hameçonnage ouverte. FIDO2 et sa brique web WebAuthn la ferment, en remplaçant le secret partagé par de la cryptographie à clé publique.

L'idée : plus de secret partagé

Avec un mot de passe ou un code TOTP, le serveur connaît un secret que l'utilisateur doit prouver. Ce secret peut fuir, être rejoué, être hameçonné.

FIDO2 change de modèle. À l'inscription sur un site, votre appareil (clé de sécurité, téléphone, ordinateur) génère une paire de clés asymétriques propre à ce site :

  • une clé privée, qui ne quitte jamais l'appareil, souvent protégée par un composant matériel ;
  • une clé publique, envoyée au site et stockée dans votre compte.

Le serveur ne détient donc aucun secret réutilisable : juste une clé publique, inutile à un voleur.

La connexion : un défi à signer

À chaque connexion, le principe est celui de la signature numérique.

1. Le site envoie un DÉFI (nombre aléatoire) + son ORIGINE (domaine)
        serveur  ----  défi, origine  ---->  appareil

2. L'appareil SIGNE (défi + origine) avec la clé PRIVÉE
        appareil : signature = Signe_privée(défi, origine)

3. Le site VÉRIFIE la signature avec la clé PUBLIQUE stockée
        appareil  ----  signature  ---->  serveur (vérifie)

Seule la vraie clé privée peut produire une signature que la clé publique valide. Comme la clé privée ne sort jamais, il n'y a rien à voler côté serveur ni à intercepter sur le réseau.

Le point crucial : la signature est liée à l'origine

C'est ici que FIDO2 bat l'hameçonnage. La signature englobe l'origine de la requête, c'est-à-dire le domaine du site. Le navigateur fournit cette origine ; l'utilisateur ne la saisit pas.

Supposons un faux site banqu3.com imitant banque.com. L'appareil signe pour l'origine banqu3.com. Or la clé publique enregistrée l'a été pour banque.com, et la vraie banque attend une signature pour son propre domaine.

Vrai site   banque.com   : signature liée à "banque.com"   -> acceptée
Faux site   banqu3.com   : signature liée à "banqu3.com"   -> REJETÉE

L'attaquant ne peut pas rejouer la signature ailleurs : elle ne vaut que pour le domaine exact où elle a été produite. C'est une résistance structurelle à l'hameçonnage, non un simple conseil de prudence.

Ce que l'utilisateur voit

En pratique, l'expérience est simple : un effleurement de la clé de sécurité, une empreinte ou un visage sur le téléphone. Le geste débloque l'usage de la clé privée. Toute la cryptographie est invisible.

En résumé

  • FIDO2/WebAuthn remplace le secret partagé par une paire de clés ; la clé privée ne quitte jamais l'appareil.
  • La connexion consiste à signer un défi vérifié avec la clé publique.
  • La signature est liée au domaine : un faux site obtient une signature inutilisable, d'où la résistance à l'hameçonnage.