MathLvl
Question transversaleMathsNSICryptographie et sécurité

Pourquoi un site ne doit-il jamais stocker nos mots de passe, et à quoi sert le « sel » ?

Un site stocke l'empreinte du mot de passe, pas le mot de passe. Sans sel, un attaquant qui vole un million d'empreintes les compare à un dictionnaire d'un million de mots en une seule passe ; avec un sel différent par compte, il doit refaire le travail pour chacun : 10¹² calculs au lieu de 10⁶.

Grand oral session 2027 : exposé de 10 minutes debout, puis 10 minutes d'échange, sans calculatrice. Plan prévu pour 9,5 min.

Pourquoi cette question : un modèle d'introduction

Le jury attend que vous expliquiez pourquoi vous avez choisi la question. Inspirez-vous de ce modèle, mais racontez votre propre parcours.

Lors d'une fuite de données très médiatisée, des millions de mots de passe ont été publiés en clair. J'ai voulu comprendre comment un site devrait les protéger, et pourquoi certains sites l'ont mal fait. J'ai découvert le hachage avec sel, une idée simple dont l'efficacité se mesure par un dénombrement.

L'enjeu et les notions du programme

Mesurer par un dénombrement le coût d'une attaque, et montrer qu'un aléa individuel multiplie ce coût par le nombre de victimes.

Mathématiques

  • Principe multiplicatif, dénombrement (terminale)
  • Puissances et ordres de grandeur (seconde)
  • Probabilités : équiprobabilité, événements rares (première)

Numérique et sciences informatiques

  • Fonctions de hachage, sécurité des données (terminale)
  • Bases de données : table des utilisateurs (terminale)

Le plan de l'exposé en 9,5 min

  1. 1. Introduction

    1 min

    Pour vérifier un mot de passe, un site n'a pas besoin de le connaître : il lui suffit de comparer des empreintes. Problématique : comment rendre une fuite de la base de données la moins grave possible ?

  2. 2. Mathématiques : compter le travail de l'attaquant

    4 min

    Le site stocke h( mot de passe ), où h est une fonction de hachage, facile à calculer mais impossible à inverser directement. Un attaquant qui vole la base doit deviner : il calcule l'empreinte de mots candidats et cherche des correspondances.

    Sans sel : supposons 10⁶ comptes et un dictionnaire de 10⁶ mots de passe courants. L'attaquant calcule 10⁶ empreintes une seule fois, puis cherche chacune dans la base volée. Il peut même avoir précalculé ces empreintes à l'avance : tous les comptes utilisant un mot du dictionnaire tombent d'un coup.

    Avec sel : chaque compte reçoit une chaîne aléatoire s (le sel), et le site stocke s et h(s+ mot de passe ). Deux utilisateurs ayant le même mot de passe ont des empreintes différentes. L'attaquant doit recommencer le dictionnaire pour chaque compte : 10⁶×10⁶=10¹² calculs. Le précalcul devient inutile : avec un sel de 128 bits, il y a 2¹²⁸ sels possibles.

  3. 3. NSI : ralentir volontairement

    3 min

    On choisit en plus une fonction de hachage lente (bcrypt, Argon2), qui demande par exemple 0,1 seconde par calcul. Pour l'utilisateur, c'est imperceptible ; pour l'attaquant, 10¹² calculs deviennent 10¹¹ secondes, plus de 3 000 ans sur une machine.

    Ce qui reste vulnérable : les mots de passe très courants, que l'attaquant teste en premier sur chaque compte. D'où l'importance de mots de passe longs et uniques. En SQL, la table des utilisateurs ne contient que l'identifiant, le sel et l'empreinte, jamais le mot de passe.

  4. 4. Conclusion

    1,5 min

    Stocker l'empreinte salée du mot de passe transforme une attaque collective en attaques individuelles : le travail est multiplié par le nombre de comptes. Le dénombrement mesure précisément ce gain. J'ouvre sur l'authentification à deux facteurs, qui ne dépend plus seulement d'un secret mémorisé.

Ce que j'écris au tableau

Pas de calculatrice ni de support numérique : un calcul clé écrit au tableau rend l'exposé concret et montre la solidité des connaissances.

stocké : (s, h(s+ mdp ))
sans sel : 10⁶ calculs avec sel : 10⁶×10⁶=10¹² 10¹²×0,1 s ≈3 000 ans

Conclusion : la réponse à la question

Un site ne doit stocker que des empreintes salées, calculées lentement. Le sel ne rend pas un mot de passe faible solide, mais il oblige l'attaquant à payer le prix fort pour chaque compte.

Les questions probables du jury

Pendant les 10 minutesd'échange, le jury vous fait préciser et approfondir, sur tout le programme de vos spécialités en lien avec la question.

Le sel doit-il être secret ?

Non, il est stocké à côté de l'empreinte. Son rôle est d'être différent pour chaque compte.

Pourquoi une fonction de hachage lente ?

Le coût est négligeable pour une connexion, mais multiplié par des milliards d'essais pour l'attaquant.

Convertissez 10¹¹ secondes en années.

10¹¹/3,16×10⁷≈3 200 ans.

Pourquoi ne pas chiffrer les mots de passe plutôt que les hacher ?

Un chiffrement est réversible : celui qui vole la clé retrouve tous les mots de passe.

Pourquoi le précalcul est-il inutile avec un sel de 128 bits ?

Il faudrait précalculer le dictionnaire pour chacun des 2¹²⁸ sels possibles.

Les pièges qui coûtent des points

  • Croire que le sel est une clé secrète.
  • Penser que le sel protège un mot de passe très courant.
  • Confondre hachage (irréversible) et chiffrement (réversible).

Revoir les notions

Autres questions : cryptographie et sécurité

Toutes les questions maths-nsi →

Préparer l'oral, pas seulement le contenu

Gestion des 20 minutes de préparation, usage du tableau, posture debout, réponses au jury : la méthode complète, conforme aux règles de la session 2027.

Méthode : traiter une question de Grand oral →