Chapitre 216 minIntermédiaire
Facteurs d'authentification et MFA : l'authentification forte
Par Josselyn C., prof de BTS SIO. Mis à jour le .
À la fin de ce chapitre, tu sauras
- classer un facteur dans sa catégorie et reconnaître une vraie MFA ;
- expliquer le calcul d'un code TOTP ;
- comparer les seconds facteurs et leur résistance à l'hameçonnage ;
- dire ce que le RGPD impose pour la biométrie ;
- décider où déployer la MFA en priorité.
4 exercices corrigés
Un facteur d'authentification est un type de preuve d'identité : ce que tu sais (un mot de passe), ce que tu possèdes (un téléphone, une clé de sécurité) ou ce que tu es (ton empreinte digitale). L'authentification multifacteur, ou MFA, combine au moins deux facteurs de catégories différentes, si bien qu'un mot de passe volé ne suffit plus pour entrer. Ce chapitre présente les facteurs, leurs faiblesses, le fonctionnement des codes à usage unique et la façon de déployer la MFA dans une organisation.
Les trois catégories de facteurs
| Catégorie | Principe | Exemples | Faiblesse principale |
|---|---|---|---|
| Connaissance : ce que je sais | Un secret mémorisé | Mot de passe, phrase de passe, code PIN, réponse à une question secrète | Se devine, se vole (hameçonnage, fuite de base), se réutilise d'un site à l'autre |
| Possession : ce que je possède | Un objet qui contient un secret | Téléphone avec une application d'authentification, clé de sécurité FIDO2, carte à puce, badge, certificat installé sur le poste | Se perd ou se vole ; le SMS peut être détourné |
| Inhérence : ce que je suis | Une caractéristique du corps ou du comportement | Empreinte digitale, reconnaissance faciale, iris, voix | Ne se change pas si elle est compromise ; faux positifs et faux négatifs |
Certains systèmes ajoutent des signaux de contexte : l'adresse IP, le pays, l'heure, l'état du poste (est-il géré par l'entreprise, à jour ?). Ce ne sont pas des facteurs à proprement parler, mais ils permettent de demander un facteur supplémentaire quand la connexion paraît inhabituelle. Microsoft Entra ID appelle cela l'accès conditionnel.
Authentification simple, forte, multifacteur
L'authentification simple repose sur un seul facteur, presque toujours un mot de passe. L'expression authentification forte est plus floue qu'elle n'en a l'air : dans le langage courant, elle désigne la MFA ; dans les textes techniques, elle désigne une authentification qui résiste aux attaques connues, ce qui suppose en général un mécanisme cryptographique. L'ANSSI le rappelle dans son guide Recommandations relatives à l'authentification multifacteur et aux mots de passe (version 2.0, octobre 2021, publié avec la CNIL) : une MFA n'est pas automatiquement forte si l'un de ses facteurs est facile à intercepter.
Sa première recommandation est claire : privilégier l'authentification multifacteur. Une copie d'E7 qui propose « une authentification multifacteur, par exemple un mot de passe et une application d'authentification sur téléphone professionnel » est plus précise, donc meilleure, qu'une copie qui écrit « une authentification forte ».
Les mots de passe à usage unique : HOTP et TOTP
Un OTP (One-Time Password) est un code valable une seule fois. Les applications d'authentification (Microsoft Authenticator, Google Authenticator, FreeOTP, ou le gestionnaire de mots de passe) calculent ces codes avec deux algorithmes normalisés :
- HOTP (RFC 4226) : le code dépend d'un secret partagé et d'un compteur qui augmente à chaque utilisation ;
- TOTP (RFC 6238) : le compteur est remplacé par le temps, découpé en tranches de 30 secondes.
Le fonctionnement du TOTP tient en quatre étapes :
- À l'enrôlement, le serveur génère un secret aléatoire (160 bits recommandés, 128 au minimum selon la RFC 4226) et le transmet une seule fois au téléphone, en général par un QR code qui contient une adresse
otpauth://totp/...?secret=.... Le secret y est encodé en base32. - Le téléphone et le serveur calculent chacun le compteur
T = partie entière de (heure Unix ÷ 30). L'heure Unix est le nombre de secondes écoulées depuis le 1er janvier 1970 à 0 h UTC. - Chacun calcule
HMAC-SHA1(secret, T), en tire un nombre et garde les 6 derniers chiffres : c'est le code. - L'utilisateur recopie le code ; le serveur le compare au sien. Les deux codes sont égaux parce que les deux appareils partagent le même secret et la même heure.
Aucun code ne circule à l'avance et le secret ne transite qu'une fois. Un code intercepté ne sert que quelques dizaines de secondes, et le serveur doit refuser qu'il soit rejoué.
Voici le calcul complet en JavaScript (Node.js 22 ou plus récent), sans bibliothèque, pour voir qu'il n'y a rien de magique :
import crypto from 'node:crypto';
// Code HOTP (RFC 4226) pour un compteur donné
function hotp(secret, compteur, chiffres = 6) {
const message = Buffer.alloc(8);
message.writeBigUInt64BE(BigInt(compteur)); // compteur sur 8 octets
const h = crypto.createHmac('sha1', secret).update(message).digest();
const decalage = h[h.length - 1] & 0x0f; // « troncature dynamique »
const nombre = ((h[decalage] & 0x7f) << 24) | (h[decalage + 1] << 16)
| (h[decalage + 2] << 8) | h[decalage + 3];
return String(nombre % 10 ** chiffres).padStart(chiffres, '0');
}
// Code TOTP (RFC 6238) : le compteur est le numéro de la tranche de 30 secondes
function totp(secret, heureUnix = Math.floor(Date.now() / 1000)) {
return hotp(secret, Math.floor(heureUnix / 30));
}
// Le secret d'exemple de la RFC 6238, à l'heure Unix 59 : compteur 1
const secret = Buffer.from('12345678901234567890');
console.log(totp(secret, 59)); // 287082
La RFC 6238 donne le code à 8 chiffres 94287082 pour cet exemple ; les 6 derniers chiffres, 287082, sont ceux qu'affiche une application. En production, n'écris pas ton propre code : utilise une bibliothèque éprouvée, compare les codes en temps constant (crypto.timingSafeEqual), limite le nombre d'essais et chiffre les secrets stockés en base.
Les autres seconds facteurs
| Second facteur | Fonctionnement | Résiste à l'hameçonnage ? | Commentaire |
|---|---|---|---|
| SMS ou appel | Un code envoyé au numéro de téléphone | Non | Le plus faible : interception, détournement de la ligne par SIM swapping (l'attaquant se fait délivrer une nouvelle carte SIM à ton nom). Mieux que rien, à remplacer dès que possible |
| Code TOTP | Calculé par une application | Non | Un faux site peut demander le code et l'utiliser aussitôt. Bon rapport sécurité et coût |
| Notification push | L'application demande « Est-ce bien vous ? » | Non | Exposée à la fatigue MFA : l'attaquant, qui a le mot de passe, déclenche des dizaines de demandes jusqu'à ce que la victime accepte par lassitude. La parade : l'appariement de nombres (number matching), où l'utilisateur recopie un nombre affiché à l'écran de connexion |
| Clé de sécurité FIDO2, passkey | Signature cryptographique liée au nom du site | Oui | La signature ne fonctionne que pour le vrai site (chapitre 3) |
| Carte à puce, certificat | Le poste prouve qu'il détient une clé privée | Oui | Classique dans les administrations ; demande une infrastructure de certificats (PKI) |
| Biométrie | Le capteur compare une mesure à un gabarit enregistré | Selon l'usage | Sur un smartphone ou un PC, elle sert surtout à déverrouiller une clé stockée localement |
La biométrie : ce que dit le droit
Une empreinte digitale ou un visage permettent d'identifier une personne de façon unique : ce sont des données biométriques. Le RGPD les classe parmi les catégories particulières de données (article 9) quand elles servent à identifier une personne de manière unique : leur traitement est interdit par principe, sauf exceptions, et demande une analyse d'impact (AIPD) dans la plupart des cas.
La différence avec un mot de passe, que le sujet SLAM de 2024 (U6) demandait d'expliquer « d'un point de vue juridique » : un mot de passe est un secret que l'on peut changer, une caractéristique biométrique est une donnée personnelle sensible, liée au corps et impossible à changer si elle fuit. La solution la plus protectrice garde le gabarit sur l'appareil de la personne (comme Windows Hello ou Face ID), sans base centrale : c'est le dispositif que le sujet de 2024 décrivait (« un dispositif biométrique dont le gabarit est stocké dans l'appareil »).
Où déployer la MFA en priorité
Une organisation n'active pas la MFA partout le même jour. Elle commence par les accès dont la compromission coûte le plus cher :
- les comptes à privilèges : administrateurs du domaine, de l'hyperviseur, du pare-feu, de la console cloud ;
- les accès distants : VPN, bureau à distance exposé, webmail ;
- la messagerie et les applications en ligne : un compte de messagerie compromis sert à réinitialiser les mots de passe des autres services ;
- les applications qui traitent des données sensibles : paie, RH, données de santé ;
- puis le reste des utilisateurs.
Il faut aussi prévoir la récupération : que se passe-t-il quand un salarié perd son téléphone ? Des codes de secours à usage unique (stockés hachés côté serveur), une seconde clé de sécurité, une procédure de réinitialisation qui vérifie l'identité de la personne. Une récupération trop facile (« appelez le support, on désactive la MFA ») annule tout le bénéfice : c'est une technique d'ingénierie sociale classique.
Côté SISR : la MFA sur le VPN et le poste
Chez Sorbier Logistique, les commerciaux se connectent au VPN depuis l'extérieur. Moussa Diallo, technicien, ajoute un second facteur.
- Sur un pare-feu pfSense ou OPNsense, le VPN interroge un serveur RADIUS (FreeRADIUS, ou le serveur NPS de Windows Server) qui vérifie le mot de passe dans l'Active Directory, puis un code TOTP. Une variante consiste à confier le second facteur à un service cloud. Le fonctionnement de RADIUS est détaillé au chapitre 8.
- Sur les postes Windows 11, Windows Hello for Business remplace le mot de passe par une clé liée au TPM du poste, déverrouillée par un code PIN ou la biométrie : le PIN ne sort jamais de la machine, ce qui le rend bien plus sûr qu'un mot de passe réseau.
- Pour les comptes Microsoft 365 ou Entra ID, l'accès conditionnel impose la MFA aux administrateurs, aux connexions depuis l'étranger ou depuis un poste non géré.
Côté SLAM : ajouter le TOTP à une application
Pour une application web, l'ajout d'un second facteur TOTP suit toujours les mêmes étapes :
- l'utilisateur, déjà connecté, demande à activer la double authentification ;
- le serveur génère un secret aléatoire, l'enregistre chiffré et provisoirement inactif, puis affiche le QR code ;
- l'utilisateur scanne et saisit un premier code : le serveur le vérifie avant d'activer le second facteur (sinon, un utilisateur qui a raté le scan serait bloqué dehors) ;
- le serveur génère dix codes de secours, les affiche une seule fois et n'en garde que l'empreinte ;
- à chaque connexion, après le mot de passe, l'application demande le code. La session n'est considérée comme authentifiée qu'après cette seconde étape.
Comment l'E7 interroge la MFA
Le sujet SLAM de 2024 (U6) décrit des tablettes verrouillées par un code PIN à 4 chiffres et demande contre quel type d'attaque un mot de passe de 8 caractères est plus protecteur : la force brute. Un PIN de 4 chiffres n'offre que 10 000 combinaisons ; 8 caractères parmi les 62 lettres et chiffres en offrent plus de 218 000 milliards (chapitre 4 pour le calcul). Le même sujet demande ensuite en quoi la reconnaissance faciale se distingue d'un mot de passe d'un point de vue juridique.
Les questions types :
- SISR : proposer une solution pour sécuriser l'accès VPN des itinérants ; expliquer pourquoi le SMS n'est pas recommandé pour les administrateurs ; décrire le rôle du serveur RADIUS dans une MFA.
- SLAM : expliquer l'intérêt d'un second facteur face à une fuite de mots de passe ; compléter la méthode qui vérifie un code TOTP ; repérer qu'une page protégée est accessible avant la saisie du code.
- Tronc commun : distinguer les catégories de facteurs ; justifier qu'un code PIN déverrouillant une carte à puce constitue une MFA.
Pour aller plus loin. Le TOTP repose sur un HMAC, expliqué dans le chapitre HMAC et signature numérique du cours Cryptographie.
Exercices
Exercice 1 sur 4 MFA ou pas MFA ? Réussi À revoir
Pour chaque combinaison, dis s'il s'agit d'une authentification multifacteur. Justifie.
- Mot de passe, puis date de naissance.
- Carte bancaire insérée dans le terminal, puis code à 4 chiffres.
- Mot de passe, puis code reçu par SMS.
- Empreinte digitale qui déverrouille une passkey stockée dans le téléphone.
- Badge sans contact seul pour entrer dans la salle serveur.
Voir la réponseMasquer la réponse de l'exercice 1
- Non : deux facteurs de connaissance (et la date de naissance n'est même pas un secret).
- Oui : possession (la carte, qui contient une puce et une clé) et connaissance (le code).
- Oui : connaissance et possession du téléphone. C'est une MFA faible, le SMS pouvant être détourné.
- Oui : possession (le téléphone qui contient la clé privée) et inhérence (l'empreinte qui la déverrouille). C'est le principe des passkeys.
- Non : un seul facteur, la possession. Un badge perdu ou cloné suffit pour entrer.
Tu avais trouvé ?
Exercice 2 sur 4 Le compteur TOTP Réussi À revoir
Un serveur utilise des tranches de 30 secondes.
- Calcule le compteur T pour l'heure Unix 1 800 000 000.
- Un utilisateur saisit son code à l'heure Unix 1 800 000 029. Le compteur a-t-il changé ? Et à 1 800 000 030 ?
- Le téléphone de l'utilisateur retarde de 3 minutes. Pourquoi ses codes sont-ils refusés, alors que le serveur accepte la tranche précédente et la suivante ?
Voir la réponseMasquer la réponse de l'exercice 2
- 1 800 000 000 ÷ 30 = 60 000 000 exactement : T = 60 000 000.
- 1 800 000 029 ÷ 30 = 60 000 000,97 : la partie entière reste 60 000 000, le code est le même. À 1 800 000 030, le quotient vaut 60 000 001 : nouvelle tranche, nouveau code.
- 3 minutes = 180 secondes = 6 tranches de 30 secondes. Le téléphone calcule le code de la tranche T − 6 alors que le serveur n'accepte que T − 1, T et T + 1. Il faut resynchroniser l'heure du téléphone (réglage automatique).
Tu avais trouvé ?
Exercice 3 sur 4 Le PIN de la tablette Réussi À revoir
Une tablette est protégée par un code PIN à 4 chiffres, sans limite d'essais.
- Combien de codes différents existe-t-il ? Combien de bits d'entropie cela représente-t-il (log₂ 10 ≈ 3,32) ?
- Un attaquant essaie un code toutes les 5 secondes. Combien de temps lui faut-il au pire ?
- Quelle mesure rend ce PIN acceptable sans le rallonger ?
Voir la réponseMasquer la réponse de l'exercice 3
- 10⁴ = 10 000 codes, soit 4 × 3,32 ≈ 13,3 bits.
- 10 000 × 5 = 50 000 secondes, soit environ 13 h 53 min (50 000 ÷ 3 600 ≈ 13,9 h). En moyenne, il trouve au bout de la moitié : environ 7 heures.
- Bloquer après quelques essais (par exemple 3 ou 5, puis effacement ou déblocage par un administrateur). C'est ce que fait une carte bancaire : son PIN de 4 chiffres est acceptable parce que la carte se bloque après 3 erreurs. La CNIL retient d'ailleurs ce cas, 13 bits d'entropie avec un blocage après 3 essais, pour un secret stocké sur un matériel détenu par la personne.
Tu avais trouvé ?
Exercice 4 sur 4 Choisir le second facteur Réussi À revoir
Sorbier Logistique veut ajouter un second facteur à trois accès. Pour chacun, propose une solution et justifie en une phrase.
- Les trois administrateurs du domaine Active Directory.
- Les 14 salariés qui se connectent à la messagerie en ligne.
- Les commerciaux qui se connectent au VPN depuis des hôtels.
Voir la réponseMasquer la réponse de l'exercice 4
- Des clés de sécurité FIDO2 (deux par administrateur, l'une gardée en lieu sûr) : ce sont les comptes les plus critiques, il faut un facteur résistant à l'hameçonnage.
- Une application d'authentification avec appariement de nombres, ou des passkeys : coût nul, déploiement simple, bien meilleur que le SMS.
- Une application TOTP vérifiée par le serveur RADIUS du VPN, ou un certificat client installé sur le portable géré : le VPN expose le réseau interne, un mot de passe seul ne suffit pas.
Tu avais trouvé ?