cybercursus

Mots de passe : stockage, politiques, erreurs courantes

11 min · Intermédiaire · 7 août 2026

Sommaire
  1. Ce que le cours sur la cryptographie a déjà posé
  2. Longueur contre complexité : une comparaison chiffrée
  3. Trois erreurs courantes, au-delà du stockage

Ce que le cours sur la cryptographie a déjà posé

Un mot de passe ne doit jamais être stocké en clair, ni de façon réversible : seule une empreinte salée (chapitre 4 du cours sur la cryptographie appliquée) doit être conservée. Ce chapitre applique ce principe à des décisions concrètes : comment choisir une politique de mot de passe, et quelles erreurs évitent la plupart des applications qui se croient sûres.

Danger

Un service capable de te renvoyer ton mot de passe original par e-mail en cas d’oubli ne peut techniquement le faire que s’il l’a stocké en clair ou de façon réversible, jamais correctement haché. C’est un signal d’alarme immédiat sur la qualité de son stockage.

Longueur contre complexité : une comparaison chiffrée

Les politiques classiques imposent majuscule, chiffre et symbole. Une politique plus récente, recommandée notamment par le NIST, privilégie la longueur : une phrase de passe simple mais longue résiste souvent bien mieux qu’un mot de passe court mais « complexe ».

python
def espace_de_recherche(taille_alphabet, longueur):
  return taille_alphabet ** longueur

# Mot de passe "complexe" typique : majuscules, minuscules, chiffres, symboles
alphabet_complexe = 26 + 26 + 10 + 10  # environ 72 caracteres possibles
mdp_complexe = espace_de_recherche(alphabet_complexe, 8)   # ex: "P@ssw0rd"

# Phrase de passe simple : minuscules et espaces seulement
alphabet_phrase = 26 + 1  # 27 caracteres possibles
mdp_phrase = espace_de_recherche(alphabet_phrase, 28)  # ex: "le chat dort sur le canape"

vitesse = 10_000_000_000  # 10 milliards d'essais/seconde, materiel dedie realiste

print(f"Mot de passe complexe (8 car.)      : {mdp_complexe:.2e} combinaisons")
print(f"  temps estime : {mdp_complexe/vitesse/3600:.1f} heures")
print()
print(f"Phrase de passe (28 car., minuscules) : {mdp_phrase:.2e} combinaisons")
print(f"  temps estime : {mdp_phrase/vitesse/3600/24/365:.2e} annees")

La phrase de passe, pourtant composée d’un alphabet bien plus restreint, l’emporte largement grâce à sa longueur : l’espace de recherche croît de façon exponentielle avec chaque caractère ajouté, bien plus vite qu’avec un alphabet élargi.

Trois erreurs courantes, au-delà du stockage

  • Politique de complexité sans limite de longueur minimale généreuse : favorise des mots de passe courts mais « valides », au détriment de phrases longues naturellement plus robustes.
  • Aucune vérification contre les mots de passe déjà compromis : un mot de passe techniquement « complexe » mais présent dans une fuite connue reste un très mauvais choix, quelle que soit sa composition.
  • Aucune limite de tentatives : sans limitation, une attaque par dictionnaire ou force brute (cours sur la cryptographie, chapitre 3) peut s’exécuter directement contre le formulaire de connexion, pas seulement hors ligne contre une empreinte volée.
Pourquoi une politique qui exige une majuscule, un chiffre et un symbole est-elle souvent moins efficace qu'annoncé ?
Pourquoi un service qui propose de « te renvoyer ton mot de passe par e-mail » en cas d'oubli est-il un signal d'alerte ?

Pour aller plus loin

Commentaires

Recherche