Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Chapitre 615 minDébutant

Mots de passe et authentification forte (MFA)

Par Josselyn C., prof de BTS SIO. Mis à jour le .

À la fin de ce chapitre, tu sauras

  • distinguer identification, authentification et autorisation ;
  • calculer l'entropie d'un mot de passe aléatoire ;
  • appliquer les seuils de la recommandation de la CNIL ;
  • choisir une méthode d'authentification multifacteur adaptée ;
  • stocker et vérifier un mot de passe correctement dans une application.

4 exercices corrigés1 schéma

L'authentification est l'étape où un système vérifie que tu es bien la personne que tu prétends être, avant de te donner accès. Le mot de passe en reste le moyen le plus répandu et le plus attaqué ; l'authentification multifacteur (MFA) le complète avec un second élément qu'un attaquant à distance ne possède pas. Ce chapitre explique comment on attaque un mot de passe, comment mesurer sa robustesse, ce que recommandent la CNIL et l'ANSSI, et comment choisir une méthode d'authentification forte.

Identification, authentification, autorisation

Trois étapes à ne pas confondre :

ÉtapeQuestionExemple
IdentificationQui prétends-tu être ?Saisir l'identifiant n.benali
AuthentificationProuve-leSaisir le mot de passe, puis valider la notification sur son téléphone
AutorisationÀ quoi as-tu droit ?Le compte n.benali peut lire le dossier Comptabilité, pas le dossier RH

L'authentification protège la confidentialité de tout le reste : une fois authentifié, l'attaquant hérite de tous les droits du compte. C'est pourquoi les comptes d'administration méritent la protection la plus forte.

Les trois facteurs d'authentification

FacteurCe que c'estExemples
ConnaissanceQuelque chose que tu saisMot de passe, phrase de passe, code PIN
PossessionQuelque chose que tu asTéléphone avec une application d'authentification, clé de sécurité USB ou NFC, carte à puce, badge
InhérenceQuelque chose que tu esEmpreinte digitale, reconnaissance du visage

L'authentification multifacteur combine au moins deux facteurs de catégories différentes. Un mot de passe plus une question secrète, ce sont deux éléments de la même catégorie (connaissance) : ce n'est pas de la MFA. Un mot de passe plus un code reçu sur le téléphone, oui.

Connaissancece que tu saismot de passe,phrase de passe, PINPossessionce que tu astéléphone, clé FIDO2,carte à puce, badgeInhérencece que tu esempreinte digitale,visageMFA = au moins deux facteurs de catégories différentesC'est de la MFAmot de passe + clé FIDO2mot de passe + code de l'applicationbadge + empreinte digitaleCe n'est pas de la MFAmot de passe + question secrètemot de passe + code PINdeux éléments de connaissance
Deux facteurs de catégories différentes : un mot de passe volé ne suffit plus.

Comment on attaque un mot de passe

AttaquePrincipeParade principale
Force bruteEssayer toutes les combinaisons possiblesMot de passe long, limitation des tentatives
DictionnaireEssayer les mots de passe les plus courants et leurs variantes (Soleil2026!, P@ssw0rd)Refuser les mots de passe courants, phrases de passe aléatoires
Pulvérisation (password spraying)Essayer un ou deux mots de passe très courants sur des centaines de comptes, pour ne pas déclencher le verrouillageListe de mots de passe interdits, MFA, détection des échecs répartis
Bourrage d'identifiantsRéutiliser des couples identifiant et mot de passe volés sur un autre siteUn mot de passe différent par service, MFA
HameçonnageFaire saisir le mot de passe sur un faux siteSensibilisation, MFA résistante à l'hameçonnage
Enregistreur de frappe, voleur d'informationsRécupérer le mot de passe sur la machine de la victimeAntivirus, droits limités, MFA
Cassage hors ligneVoler la base des mots de passe d'un site, puis tester des milliards de candidats par seconde sur ses propres machinesStocker les mots de passe hachés avec un algorithme lent et salé

Le cassage hors ligne explique pourquoi la façon dont un site stocke les mots de passe compte autant que leur robustesse. Une carte graphique récente teste des milliards de candidats par seconde contre un hachage rapide comme MD5 ou SHA-256, mais seulement quelques milliers par seconde contre un algorithme volontairement lent comme bcrypt ou Argon2id.

Mesurer la robustesse : l'entropie

La robustesse d'un mot de passe tiré au hasard se mesure par son entropie, en bits : le nombre de combinaisons possibles, exprimé en puissance de 2. Pour un mot de passe de L caractères choisis au hasard parmi N symboles possibles :

entropie = L × log₂(N) bits, et le nombre de combinaisons vaut N^L = 2^entropie.

Chaque bit supplémentaire double le nombre de combinaisons à essayer. Quelques valeurs :

Mot de passe aléatoireSymboles possibles (N)Entropie
Code PIN de 4 chiffres1013,3 bits
8 lettres minuscules2637,6 bits
8 caractères parmi minuscules, majuscules, chiffres6247,6 bits
8 caractères parmi environ 90 (avec caractères spéciaux)9051,9 bits
12 caractères parmi 99 (26 + 26 + 10 + 37 spéciaux)9979,6 bits
14 caractères parmi minuscules, majuscules, chiffres6283,4 bits
Phrase de passe de 7 mots tirés au hasard dans une liste de 7 776 mots7 776 par mot90,5 bits

Le cas des 12 caractères donne 79,6 bits : la CNIL l'arrondit à 80 bits dans ses exemples.

Pour une phrase de passe, chaque mot tiré au hasard dans une liste de 7 776 mots (la taille des listes Diceware) apporte log₂(7 776) ≈ 12,9 bits.

Ce que cela change pour un attaquant qui teste 10 milliards (10^10) de candidats par seconde contre un hachage rapide : un mot de passe aléatoire de 47,6 bits (8 caractères alphanumériques) est épuisé en 2^47,6 / 10^10 ≈ 21 300 secondes, soit moins de 6 heures. À 80 bits, il faudrait environ 3,8 millions d'années.

Les recommandations de la CNIL

La CNIL a publié en 2022 une recommandation sur les mots de passe (délibération n° 2022-100 du 21 juillet 2022). Elle ne fixe plus une longueur minimale mais un niveau d'entropie à atteindre, qui dépend des autres protections en place.

SituationEntropie minimaleConditions
Mot de passe seul80 bitsAucune autre mesure : il doit résister seul au cassage
Mot de passe avec restriction d'accès50 bitsAu moins un mécanisme qui freine les essais : temporisation après plusieurs échecs, nombre de tentatives limité dans le temps, CAPTCHA, ou verrouillage du compte après 10 échecs au plus
Mot de passe avec un matériel détenu par la personne13 bitsUne carte bancaire, une carte SIM, un certificat sur une carte, et un blocage après 3 échecs (c'est le code PIN)

Pour le cas « mot de passe seul » (80 bits), la CNIL donne trois exemples équivalents :

  • au moins 12 caractères mêlant majuscules, minuscules, chiffres et caractères spéciaux (pris dans une liste d'au moins 37 caractères spéciaux) ;
  • au moins 14 caractères mêlant majuscules, minuscules et chiffres, sans caractère spécial obligatoire ;
  • une phrase de passe d'au moins 7 mots.

Elle recommande aussi :

  • de ne plus imposer de renouvellement périodique pour les comptes ordinaires (cela pousse à des mots de passe prévisibles : Printemps2026!, puis Ete2026!), tout en le gardant pour les comptes à privilèges ;
  • de forcer le changement dès qu'une compromission est suspectée ;
  • de ne jamais stocker un mot de passe en clair, mais de le transformer avec une fonction cryptographique non réversible, avec un sel, comme scrypt ou Argon2 ;
  • d'encourager l'usage d'un gestionnaire de mots de passe.

L'ANSSI, dans son guide sur l'authentification multifacteur et les mots de passe (2021), va dans le même sens : privilégier l'authentification multifacteur, des mots de passe longs plutôt qu'une composition compliquée, un mot de passe différent pour chaque service, et un gestionnaire de mots de passe pour tous les retenir.

Le gestionnaire de mots de passe

Retenir un mot de passe différent et long pour chacun des dizaines de services qu'on utilise est impossible. Un gestionnaire de mots de passe le fait pour toi : il génère des mots de passe aléatoires, les stocke dans un coffre chiffré et les remplit automatiquement. Tu ne retiens qu'un seul mot de passe maître, qui doit être très robuste (une phrase de passe), et que tu protèges par la MFA si le gestionnaire la propose.

Exemples : KeePassXC (logiciel libre, coffre stocké localement), Bitwarden, ou le gestionnaire intégré au navigateur ou au système. Un gestionnaire a un autre avantage : il ne remplit pas automatiquement les identifiants sur un faux site dont le domaine ne correspond pas, ce qui aide à repérer un hameçonnage.

Choisir une méthode d'authentification multifacteur

Toutes les méthodes de MFA ne se valent pas.

MéthodeFonctionnementFaiblesse
Code par SMSUn code envoyé sur le téléphoneDétournement de la ligne (échange frauduleux de carte SIM), interception, hameçonnage en temps réel
Code à usage unique (TOTP)Une application (Microsoft Authenticator, Google Authenticator, FreeOTP…) affiche un code qui change toutes les 30 secondesLe code peut être saisi sur un faux site et relayé en temps réel
Notification à validerLe téléphone demande « Est-ce bien vous ? »Bombardement de notifications jusqu'à ce que la victime, lassée, valide ; mieux protégé quand il faut recopier un nombre affiché à l'écran
Clé de sécurité FIDO2Une clé USB ou NFC signe un défi envoyé par le siteIl faut la distribuer et prévoir une clé de secours
Clé d'accès (passkey)Une paire de clés cryptographiques stockée sur le téléphone ou l'ordinateur, débloquée par empreinte, visage ou PINRécente : tous les services ne la proposent pas encore

Les clés FIDO2 et les clés d'accès sont dites résistantes à l'hameçonnage : la clé est liée au nom de domaine du vrai site, et elle refuse tout simplement de répondre à soleane-medical.fr.account-verify.example. C'est la méthode à privilégier pour les comptes d'administration.

Le même raisonnement en SLAM et en SISR

En SLAM, c'est le développeur qui décide comment l'application stocke et vérifie les mots de passe. En PHP, password_hash() et password_verify() font le travail correctement :

php
// À l'inscription : hachage lent et salé (sel généré automatiquement)
$hash = password_hash($motDePasse, PASSWORD_ARGON2ID);

// À la connexion : comparaison sûre avec le hachage stocké
if (password_verify($saisie, $hash)) {
    // authentification réussie
}

Si ton PHP n'a pas été compilé avec Argon2, la constante PASSWORD_ARGON2ID n'existe pas : PASSWORD_DEFAULT (bcrypt) est alors un choix correct.

Le développeur limite aussi le nombre de tentatives, renvoie un message générique (« identifiant ou mot de passe incorrect », sans dire lequel des deux est faux), refuse les mots de passe les plus courants ou déjà apparus dans des fuites, et propose la MFA. Le cours SQL montre comment stocker un mot de passe haché dans la base.

En SISR, la politique de mots de passe du domaine se règle par stratégie de groupe dans Active Directory : longueur minimale, historique, seuil et durée de verrouillage. Pour respecter le cas « 50 bits avec restriction d'accès » de la CNIL, on combine une longueur suffisante et un verrouillage après 10 échecs au plus. Les comptes d'administration reçoivent une politique plus stricte (stratégies de mots de passe affinées), la MFA pour l'accès à distance, et les mots de passe administrateur locaux des postes sont rendus uniques et renouvelés automatiquement par Windows LAPS (cours Windows Server).

Pour aller plus loin. Le cours Authentification détaille la politique de mots de passe selon la CNIL et l'ANSSI et les facteurs et la MFA ; le stockage des mots de passe (sel, bcrypt, Argon2) est dans le chapitre Stocker un mot de passe du cours Cryptographie.

Exercices

Exercice 1 sur 4 Calculer une entropie Réussi À revoir

Pour chaque mot de passe généré au hasard, calcule l'entropie et dis s'il atteint 80 bits.

  1. 10 caractères parmi les 26 minuscules et les 10 chiffres.
  2. 16 caractères parmi les 26 minuscules.
  3. Une phrase de passe de 5 mots tirés au hasard dans une liste de 7 776 mots.

Données : log₂(36) ≈ 5,17 ; log₂(26) ≈ 4,70 ; log₂(7 776) ≈ 12,92.

Voir la réponseMasquer la réponse de l'exercice 1
  1. 10 × 5,17 ≈ 51,7 bits : non. Il suffirait pour le cas « avec restriction d'accès » (50 bits), pas pour un mot de passe seul.
  2. 16 × 4,70 ≈ 75,2 bits : non, il manque environ 5 bits. Il faudrait 18 minuscules (18 × 4,70 ≈ 84,6 bits).
  3. 5 × 12,92 ≈ 64,6 bits : non. Il faut 7 mots (7 × 12,92 ≈ 90,4 bits), ce qui correspond à l'exemple de la CNIL.

Tu avais trouvé ?

Exercice 2 sur 4 Auditer une politique de mots de passe Réussi À revoir

La politique actuelle de l'extranet de Soléane, pour les comptes des pharmacies, est la suivante : 8 caractères minimum dont une majuscule, un chiffre et un caractère spécial ; changement obligatoire tous les 60 jours ; aucune limitation du nombre de tentatives ; mots de passe stockés avec SHA-256 sans sel.

Relève les écarts avec les recommandations de la CNIL et propose une politique corrigée.

Voir la réponseMasquer la réponse de l'exercice 2

Écarts :

  • Aucune restriction d'accès : le mot de passe doit donc atteindre seul 80 bits. Or 8 caractères parmi environ 90 symboles donnent au mieux 51,9 bits, et bien moins si l'utilisateur choisit Pharma01!.
  • Renouvellement périodique imposé à des comptes ordinaires : déconseillé par la CNIL, il pousse à des mots de passe prévisibles.
  • Stockage en SHA-256 sans sel : fonction rapide, sans sel ; deux comptes avec le même mot de passe ont la même empreinte et un attaquant qui vole la base teste des milliards de candidats par seconde.

Politique corrigée (une possibilité) : ajouter une restriction d'accès (temporisation croissante après 3 échecs et verrouillage après 10, avec déblocage par lien envoyé par courriel), ce qui permet un objectif de 50 bits, par exemple 12 caractères minimum sans règle de composition imposée mais avec refus des mots de passe courants ; ou viser 80 bits sans restriction (14 caractères alphanumériques ou phrase de 7 mots). Supprimer le renouvellement périodique, sauf compromission. Stocker les mots de passe avec Argon2id (ou bcrypt), salés. Proposer la MFA, et l'imposer aux comptes d'administration.

Tu avais trouvé ?

Exercice 3 sur 4 MFA ou pas MFA ? Réussi À revoir

Ces combinaisons sont-elles de l'authentification multifacteur ? Justifie.

  1. Un mot de passe et un code PIN.
  2. Un badge sans contact et une empreinte digitale.
  3. Un mot de passe et un code reçu par SMS.
  4. Un mot de passe et la réponse à « Quel est le nom de votre premier animal ? ».
Voir la réponseMasquer la réponse de l'exercice 3
  1. Non : deux éléments de connaissance.
  2. Oui : possession (badge) et inhérence (empreinte).
  3. Oui : connaissance et possession (le téléphone), même si le SMS est la méthode la plus faible.
  4. Non : deux éléments de connaissance, et la réponse se trouve souvent sur les réseaux sociaux.

Tu avais trouvé ?

Exercice 4 sur 4 Revue de code Réussi À revoir

Un développeur a écrit ce code de connexion pour l'extranet. Relève trois problèmes de sécurité et corrige-les.

php
$sql = "SELECT * FROM client WHERE email = '$email'";
$client = $pdo->query($sql)->fetch();
if (!$client) {
    echo "Adresse inconnue";
} elseif ($client['mdp'] !== md5($mdp)) {
    echo "Mot de passe incorrect";
} else {
    $_SESSION['id'] = $client['id'];
}
Voir la réponseMasquer la réponse de l'exercice 4
  1. Injection SQL : l'adresse est collée dans la requête. Il faut une requête préparée.
  2. MD5 : hachage rapide, cassé, sans sel. Il faut password_hash() à l'inscription et password_verify() à la connexion.
  3. Messages différents selon que l'adresse existe ou non : un attaquant peut savoir quelles adresses ont un compte (énumération). Il faut un message unique.

On ajoute aussi une limitation des tentatives et la régénération de l'identifiant de session après connexion.

php
$stmt = $pdo->prepare('SELECT id, mdp FROM client WHERE email = ?');
$stmt->execute([$email]);
$client = $stmt->fetch();
if ($client && password_verify($mdp, $client['mdp'])) {
    session_regenerate_id(true);
    $_SESSION['id'] = $client['id'];
} else {
    echo 'Identifiant ou mot de passe incorrect';
}

Tu avais trouvé ?

Chapitre terminé !

Fais les 4 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : Hygiène informatique : les règles de l'ANSSIRevoir le sommaire du cours