2fa-(authentification-à-deux-facteurs)

L'authentification à deux facteurs (2FA) est un processus de sécurité qui oblige les utilisateurs à fournir deux formes d'identification distinctes pour vérifier leur identité avant d'accéder à un compte ou à un système.

L'authentification à deux facteurs (2FA) est une méthode d'authentification multifacteur (MFA) qui améliore la sécurité en exigeant deux facteurs d'authentification distincts pour vérifier l'identité d'un utilisateur. Ces facteurs sont généralement classés en trois types : quelque chose que l'utilisateur connaît (par exemple, mot de passe, code PIN), quelque chose que l'utilisateur possède (par exemple, un jeton physique, un smartphone, une carte à puce) et quelque chose que l'utilisateur est (par exemple, empreinte digitale, scan facial). Une implémentation courante implique un mot de passe (facteur de connaissance) combiné à un mot de passe à usage unique (OTP) généré par une application d'authentification ou envoyé par SMS (facteur de possession). Le processus commence par l'utilisateur qui saisit sa première identification, généralement un mot de passe. Après la validation réussie du premier facteur, le système demande le deuxième facteur. La validité du second facteur est ensuite vérifiée par rapport à une valeur pré-enregistrée ou à un algorithme basé sur le temps. Si les deux facteurs sont authentifiés avec succès, l'accès est accordé. Le principal avantage de la 2FA est sa résilience contre les vecteurs d'attaque courants tels que le phishing, le credential stuffing et les attaques par force brute, car la compromission d'un seul facteur est insuffisante pour obtenir un accès non autorisé. Cependant, les compromis incluent une friction accrue pour l'utilisateur, le risque de perte ou de vol du second facteur, et la dépendance à l'égard de la sécurité du mécanisme de livraison du second facteur (par exemple, interception de SMS). Les implémentations avancées peuvent impliquer une authentification basée sur les risques, où le système ajuste dynamiquement le nombre ou le type de facteurs requis en fonction du contexte, tel que la localisation, l'appareil ou l'heure de la journée.

        graph LR
  Center["2fa-(authentification-à-deux-facteurs)"]:::main
  Rel_authorization["authorization"]:::related -.-> Center
  click Rel_authorization "/terms/authorization"
  Rel_mfa_multi_factor_authentication["mfa-multi-factor-authentication"]:::related -.-> Center
  click Rel_mfa_multi_factor_authentication "/terms/mfa-multi-factor-authentication"
  Rel_single_sign_on_sso["single-sign-on-sso"]:::related -.-> Center
  click Rel_single_sign_on_sso "/terms/single-sign-on-sso"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 Explique-moi comme si j'avais 5 ans

C'est comme avoir besoin de deux clés pour ouvrir un coffre au trésor spécial : une clé que vous connaissez (comme un code secret) et une autre clé que vous possédez (comme un jouet spécial).

🤓 Expert Deep Dive

L'authentification à deux facteurs (2FA) augmente fondamentalement la sécurité en superposant un mécanisme de vérification supplémentaire sur l'identification principale (généralement un mot de passe ou une phrase secrète). Ce processus adhère au principe de l'authentification multifacteur (MFA), exigeant spécifiquement deux facteurs distincts parmi les catégories suivantes :

  1. Quelque chose que vous connaissez : Mots de passe, codes PIN, réponses aux questions de sécurité.
  2. Quelque chose que vous possédez : Jetons physiques (par exemple, YubiKey, RSA SecurID), smartphones exécutant des applications d'authentification (par exemple, Google Authenticator, Authy), ou cartes SIM pour les OTP basés sur SMS.
  3. Quelque chose que vous êtes : Données biométriques telles que les empreintes digitales, les scans faciaux ou les motifs de l'iris.

Une implémentation courante implique les mots de passe à usage unique basés sur le temps (TOTP), standardisés par la RFC 6238. Les algorithmes TOTP génèrent un nouveau code toutes les 30 à 60 secondes en fonction d'une clé secrète partagée (provisionnée lors de la configuration initiale) et de l'heure actuelle, souvent synchronisée via NTP. La validation côté serveur implique le recalcul des OTP attendus pour une fenêtre de temps donnée et leur comparaison avec le code fourni par l'utilisateur.

Une autre méthode prévalente est les mots de passe à usage unique basés sur HMAC (HOTP), définis dans la RFC 4226, qui génèrent des codes basés sur un compteur qui s'incrémente à chaque utilisation. Le serveur et le client doivent maintenir des compteurs synchronisés.

Les implémentations plus avancées utilisent Universal 2nd Factor (U2F) et son successeur, FIDO2, qui exploitent la cryptographie à clé publique. Lors de l'enregistrement, une paire de clés privée/publique unique est générée sur la clé de sécurité, et la clé publique est enregistrée auprès du service. L'authentification implique que le serveur envoie un défi que l'appareil FIDO signe avec sa clé privée, que le serveur vérifie ensuite à l'aide de la clé publique enregistrée, offrant une forte résistance aux attaques de phishing car la clé ne quitte jamais l'appareil et est liée à l'origine spécifique (domaine) du site Web.

📚 Sources