15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer
14.10.2024

Comment déterminer la force d’un mot de passe : Guide technique sur l’entropie, la résistance au craquage et la gestion sécurisée des identifiants

La robustesse d’un mot de passe est une mesure quantitative de sa résistance à la découverte non autorisée par des attaques par force brute, des attaques par dictionnaire, du credential stuffing et des devinettes statistiques. Elle est déterminée par trois variables cumulatives : la longueur, la diversité de l’espace de caractères et l’imprévisibilité (entropie). Un mot de passe obtenant plus de 60 bits d’entropie de Shannon et contenant au moins 16 caractères issus d’un jeu de caractères mixte est considéré comme cryptographiquement robuste selon les normes actuelles NIST SP 800-63B.

Comprendre la robustesse d’un mot de passe ne consiste pas simplement à suivre une liste de contrôle — cela nécessite de saisir la relation mathématique entre les pools de caractères, la longueur du mot de passe et le coût computationnel imposé à un attaquant. Ce guide couvre cette relation en termes techniques précis, explique comment les ingénieurs en sécurité professionnels évaluent les identifiants, et fournit des pratiques concrètes tant pour les utilisateurs individuels que pour les administrateurs système gérant des politiques d’authentification sur des serveurs et des infrastructures d’hébergement.

Ce que mesure réellement la robustesse d’un mot de passe

La robustesse d’un mot de passe est un indicateur du coût d’une attaque — plus précisément, le nombre de tentatives qu’un adversaire doit effectuer avant de trouver le bon identifiant. Ce coût est exprimé en bits d’entropie à l’aide de la formule :

H = L × log₂(N)

H est l’entropie en bits, L est la longueur du mot de passe en caractères, et N est la taille du pool de caractères (le nombre de symboles distincts que l’attaquant doit considérer).

Une valeur d’entropie plus élevée signifie un travail de devinette exponentiellement plus important. La différence entre 40 bits et 80 bits n’est pas deux fois plus difficile — c’est 2^40 fois plus difficile, ce qui se traduit par environ mille milliards de tentatives supplémentaires.

Le pool de caractères et son impact sur l’entropie

Jeu de caractèresTaille du pool (N)Entropie par caractère
Minuscules uniquement (a–z)264,70 bits
Minuscules + majuscules525,70 bits
Alphanumérique (a–z, A–Z, 0–9)625,95 bits
ASCII imprimable complet (avec symboles)956,57 bits
Phrase de passe Diceware (grande liste EFF)7 776 mots12,92 bits par mot

Ce tableau illustre pourquoi l’ajout d’un seul symbole à un mot de passe purement alphabétique produit un gain d’entropie mesurable, et pourquoi une phrase de passe Diceware de quatre mots peut surpasser un mot de passe complexe mais court.

Facteurs clés déterminant la robustesse d’un mot de passe

Longueur du mot de passe

La longueur est la variable la plus impactante dans la formule d’entropie. Doubler la longueur d’un mot de passe met au carré l’espace de recherche pour un pool de caractères fixe. Considérez le contraste :

  • Un mot de passe de 8 caractères utilisant l’ASCII imprimable complet : H = 8 × 6.57 = ~52.6 bits
  • Un mot de passe de 16 caractères utilisant le même jeu de caractères : H = 16 × 6.57 = ~105 bits

À 52,6 bits, les rigs de craquage modernes accélérés par GPU exécutant Hashcat sur des hachages MD5 peuvent épuiser l’espace en quelques heures. À 105 bits, le même matériel nécessiterait des échelles de temps géologiques. NIST SP 800-63B recommande un minimum de 8 caractères pour les mots de passe choisis par les utilisateurs, mais les administrateurs soucieux de la sécurité devraient imposer un minimum de 12 à 16 caractères, sans limite supérieure artificielle.

Variété de caractères et complexité

Mélanger les classes de caractères élargit N et augmente donc l’entropie par caractère. Un mot de passe robuste doit puiser dans :

  • Lettres majuscules (A–Z)
  • Lettres minuscules (a–z)
  • Chiffres (0–9)
  • Caractères spéciaux (!, @, #, $, %, ^, &, *, etc.)

Cependant, une nuance critique que de nombreux guides omettent : les règles de complexité obligatoires peuvent paradoxalement affaiblir les mots de passe. Lorsque les utilisateurs sont contraints d’inclure un symbole, ils ajoutent de manière prévisible ! ou 1 à la fin d’un mot. Ce schéma est bien connu des crackers et est encodé dans les ensembles de règles utilisés par des outils comme Hashcat. La vraie complexité vient du caractère aléatoire, pas du fait de cocher une case.

Imprévisibilité et résistance aux attaques par motifs

Le craquage de mots de passe moderne n’est pas purement par force brute. Des outils comme Hashcat et John the Ripper utilisent des attaques basées sur des règles qui appliquent des transformations aux mots du dictionnaire — mettre en majuscule la première lettre, substituer a par @, ajouter des années, etc. Un mot de passe comme P@ssw0rd!23 semble complexe mais est trivialement cracké car il suit un schéma de substitution bien connu.

La vraie imprévisibilité signifie :

  • Aucun mot du dictionnaire, même avec des substitutions leetspeak
  • Aucune séquence de clavier (qwerty, zxcvbn)
  • Aucune information personnelle (noms, dates de naissance, noms d’animaux)
  • Aucun motif prévisible au début ou à la fin (suffixe !, préfixe 1)

La source la plus fiable d’imprévisibilité est un générateur de nombres aléatoires cryptographiquement sécurisé (CSPRNG), qui est ce qu’utilisent en interne les gestionnaires de mots de passe réputés.

Unicité entre les comptes

La réutilisation des identifiants transforme une seule violation en compromission systémique. Lorsqu’un service stockant des mots de passe en texte clair ou avec un MD5 faible est violé, les attaquants testent immédiatement ces identifiants contre d’autres cibles de grande valeur — une technique appelée credential stuffing. Les services comme Gmail, les portails bancaires et les panneaux de contrôle d’hébergement sont des cibles principales.

Chaque compte doit avoir un mot de passe distinct. Cela est opérationnellement impossible sans un gestionnaire de mots de passe pour la plupart des utilisateurs gérant plus d’une poignée de comptes.

Méthodes pour évaluer la robustesse d’un mot de passe

Calcul de l’entropie

La formule d’entropie H = L × log₂(N) est la mesure la plus objective. Voici des valeurs de référence pour une évaluation pratique :

Exemple de mot de passeLongueurPool de caractèresEntropie (bits)Résistance
`password`826~37,6Négligeable
`P@ssw0rd`895~52,6Heures (GPU)
`Tr0ub4dor&3`1195~72,3Mois
`correct-horse-battery-staple`2826+1~130+Siècles
16 caractères ASCII aléatoires complets1695~105Astronomique

Notez que correct-horse-battery-staple — la célèbre phrase de passe XKCD — atteint une entropie extraordinaire grâce à la longueur malgré l’utilisation uniquement de lettres minuscules et de traits d’union. C’est la puissance de la longueur sur la complexité.

Outils de craquage de mots de passe utilisés par les professionnels de la sécurité

Les ingénieurs en sécurité et les testeurs de pénétration utilisent les outils suivants pour tester empiriquement les politiques de mots de passe :

Hashcat est l’outil de récupération de mots de passe accéléré par GPU standard de l’industrie. Il prend en charge plus de 300 types de hachage et peut exécuter des attaques par dictionnaire, par force brute, basées sur des règles et hybrides. Sur une RTX 4090 moderne, Hashcat peut tester environ 164 milliards de hachages MD5 par seconde — un contexte qui rend les chiffres d’entropie ci-dessus viscéralement réels.

John the Ripper est un cracker basé sur CPU avec de solides capacités d’attaque basées sur des règles et une large prise en charge des formats de hachage. Il est couramment utilisé dans les contextes forensiques et d’audit.

zxcvbn est un estimateur de robustesse de mot de passe côté client développé par Dropbox. Contrairement aux simples calculateurs d’entropie, il modélise le comportement réaliste des attaquants en vérifiant les dictionnaires, les motifs courants, les séquences de clavier et les formats de date. C’est le compteur de robustesse le plus précis pour les applications orientées utilisateur.

Pour tester un hachage de mot de passe hors ligne en utilisant Hashcat en mode benchmark :

hashcat -b -m 0

Pour exécuter une attaque par dictionnaire avec des règles contre un fichier de hachage MD5 :

hashcat -a 0 -m 0 hashes.txt /usr/share/wordlists/rockyou.txt -r /usr/share/hashcat/rules/best64.rule

Outils de test de mots de passe en ligne

Plusieurs outils basés sur navigateur fournissent une évaluation rapide de la robustesse :

  • Have I Been Pwned (HIBP) Password Check — vérifie le préfixe du hachage SHA-1 d’un mot de passe par rapport à une base de données de plus de 800 millions de mots de passe compromis en utilisant un modèle k-anonymat, ce qui signifie que le mot de passe complet n’est jamais transmis.
  • Bitwarden Password Strength Tester — utilise zxcvbn en arrière-plan pour une estimation réaliste du temps de craquage.
  • Kaspersky Password Checker — fournit une analyse de la longueur, de la complexité et des motifs.

Avertissement opérationnel critique : N’entrez jamais un vrai mot de passe en cours d’utilisation dans un outil en ligne. Utilisez un identifiant de test structurellement similaire mais distinct. Même les outils utilisant des modèles k-anonymat ne devraient pas recevoir vos vrais mots de passe de production.

Compteurs de robustesse de mots de passe dans les applications

Les compteurs de robustesse intégrés varient considérablement en qualité. Beaucoup utilisent des heuristiques simplistes (seuils de longueur, présence de classes de caractères) qui peuvent être contournées. Un compteur qui évalue P@ssw0rd1! comme « Fort » est trompeur — cette chaîne apparaît dans tous les principaux dictionnaires de violations. Préférez les applications qui intègrent zxcvbn ou des estimateurs équivalents sensibles aux motifs.

Vecteurs d’attaque sur les mots de passe : ce contre quoi vous vous défendez réellement

Comprendre le modèle de menace affine chaque décision concernant la politique de mots de passe.

Les attaques par force brute essaient systématiquement toutes les combinaisons possibles dans un espace de caractères. Elles sont limitées computationnellement et deviennent impraticables au-dessus de ~80 bits d’entropie avec le matériel actuel.

Les attaques par dictionnaire utilisent des listes de mots dérivées de vrais mots de passe divulgués lors de violations. Le jeu de données RockYou (14 millions de mots de passe) et ses successeurs couvrent la grande majorité des mots de passe choisis par les humains. Si votre mot de passe apparaît dans le langage naturel, il est dans un dictionnaire.

Les attaques basées sur des règles appliquent des règles de transformation aux mots du dictionnaire — mise en majuscule, ajout de chiffres, substitution de symboles. Elles craquent la majorité des mots de passe « complexes » que les utilisateurs construisent en modifiant des mots simples.

Le credential stuffing utilise des paires nom d’utilisateur/mot de passe d’une violation pour attaquer d’autres services. Cela est entièrement contrecarré par l’unicité des mots de passe.

Les attaques par table arc-en-ciel utilisent des correspondances hachage-texte clair précalculées. Elles sont contrecarrées par un hachage de mot de passe approprié avec un sel unique (bcrypt, Argon2, scrypt) côté serveur — une responsabilité de l’application, pas de l’utilisateur.

L’ingénierie sociale et le phishing contournent entièrement la robustesse du mot de passe. L’authentification multi-facteurs est la principale défense ici.

Meilleures pratiques pour créer et gérer des mots de passe robustes

Utiliser un gestionnaire de mots de passe

Un gestionnaire de mots de passe est la seule amélioration de sécurité à fort levier disponible pour la plupart des utilisateurs et administrateurs. Des outils comme Bitwarden (open-source, audité), 1Password et KeePassXC (hors ligne, stockage local) génèrent des mots de passe aléatoires cryptographiquement et les stockent dans un coffre-fort chiffré. Cela élimine la charge cognitive de la mémorisation et rend pratiques des mots de passe aléatoires uniques de 20+ caractères pour chaque compte.

Pour les administrateurs système gérant des identifiants sur des serveurs — y compris les environnements VPS Hosting et les Serveurs Dédiés — un gestionnaire de mots de passe orienté équipe avec contrôle d’accès basé sur les rôles (tel que Bitwarden Teams ou HashiCorp Vault) est une infrastructure essentielle.

Générer des mots de passe avec un CSPRNG

Ne construisez jamais des mots de passe manuellement. Utilisez le générateur de votre gestionnaire de mots de passe, ou sur Linux/macOS :

# Generate a 20-character random password using /dev/urandom
LC_ALL=C tr -dc 'A-Za-z0-9!@#$%^&*()-_=+' < /dev/urandom | head -c 20; echo
# Generate a Diceware-style passphrase using OpenSSL
openssl rand -base64 32

Mettre en œuvre l’authentification multi-facteurs (MFA)

La MFA est une couche non négociable pour tout compte ayant une valeur significative. Même un mot de passe compromis ne peut pas accorder l’accès sans le second facteur. Préférez les applications d’authentification TOTP (Authy, Google Authenticator, Aegis) à la 2FA par SMS, qui est vulnérable aux attaques de SIM-swapping. Pour les environnements à haute assurance, utilisez des clés de sécurité matérielles (YubiKey, FIDO2) qui sont résistantes au phishing par conception.

Sur les serveurs exécutant des applications web ou des panneaux de contrôle — y compris les environnements gérés via les Panneaux de contrôle VPS — imposez la MFA au niveau de la couche applicative et envisagez l’authentification SSH basée sur des clés comme remplacement de la connexion SSH par mot de passe.

Appliquer des politiques de mots de passe robustes au niveau système

Pour les administrateurs gérant des serveurs Linux, PAM (Pluggable Authentication Modules) fournit une application granulaire des politiques de mots de passe. Installez et configurez libpam-pwquality :

apt install libpam-pwquality

Puis éditez /etc/security/pwquality.conf :

minlen = 16
minclass = 3
maxrepeat = 2
gecoscheck = 1
dictcheck = 1

Cela impose une longueur minimale de 16 caractères, exige des caractères d’au moins 3 classes, interdit plus de 2 caractères identiques consécutifs, et vérifie les mots du dictionnaire et le champ GECOS de l’utilisateur (nom).

Pour la politique de vieillissement des mots de passe, éditez /etc/login.defs :

PASS_MAX_DAYS   90
PASS_MIN_DAYS   1
PASS_WARN_AGE   14

Surveiller les violations d’identifiants

Intégrez la surveillance des violations dans vos opérations de sécurité. Have I Been Pwned offre une API gratuite pour vérifier les adresses e-mail par rapport aux bases de données de violations connues. Pour une utilisation organisationnelle, des services comme SpyCloud ou Enzoic fournissent une surveillance des identifiants en temps réel et peuvent déclencher des réinitialisations forcées de mots de passe lorsque les identifiants d’un employé apparaissent dans un jeu de données de violation.

Hachage sécurisé des mots de passe côté serveur

Si vous exploitez des applications web qui stockent des identifiants utilisateur — que ce soit sur un Hébergement Web Mutualisé ou un environnement dédié — ne stockez jamais les mots de passe en texte clair ou avec des algorithmes de hachage faibles (MD5, SHA-1, SHA-256 sans sel). Utilisez une fonction de hachage de mots de passe dédiée :

  • Argon2id — vainqueur du Password Hashing Competition ; recommandé par OWASP pour les nouvelles applications
  • bcrypt — largement pris en charge, éprouvé ; utilisez un facteur de travail de 12 ou plus
  • scrypt — à mémoire intensive ; bonne résistance aux attaques basées sur GPU

Exemple utilisant la bibliothèque argon2-cffi de Python :

from argon2 import PasswordHasher

ph = PasswordHasher(time_cost=2, memory_cost=65536, parallelism=2)
hash = ph.hash("user_supplied_password")
# Verify:
ph.verify(hash, "user_supplied_password")

Les phrases de passe comme alternative pratique

Pour les mots de passe qui doivent être mémorisés (mot de passe maître du gestionnaire de mots de passe, clé de chiffrement de disque complet), une phrase de passe Diceware offre le meilleur équilibre entre entropie et mémorabilité. Lancez un dé physique cinq fois pour sélectionner chaque mot de la grande liste de mots EFF. Cinq mots donnent environ 64,6 bits d’entropie ; six mots donnent 77,5 bits.

Example: "clam-unmasked-revival-stunt-dagger"
Entropy: ~64.6 bits (5 words × 12.92 bits)

C’est plus robuste que la plupart des mots de passe « complexes » choisis par les utilisateurs et bien plus mémorable.

Protéger les identifiants dans toute votre infrastructure d’hébergement

La sécurité des mots de passe s’étend au-delà des comptes individuels à l’ensemble de la pile d’infrastructure. Les administrateurs gérant des environnements d’hébergement doivent appliquer des contrôles d’identifiants en couches :

  • Accès SSH : Désactivez entièrement l’authentification par mot de passe ; utilisez des paires de clés Ed25519 ou RSA-4096. Stockez les clés privées avec une phrase de passe robuste.
  • Identifiants de base de données : Utilisez des mots de passe longs et générés aléatoirement pour les utilisateurs de base de données. N’utilisez jamais les comptes de base de données root pour les connexions d’applications.
  • Comptes de panneau de contrôle : Imposez des mots de passe robustes et la MFA pour toutes les connexions au panneau de contrôle. Les plateformes accessibles via VPS avec cPanel doivent avoir l’application de la robustesse des mots de passe de cPanel définie à un score minimum de 65.
  • Comptes e-mail : Les mots de passe e-mail faibles sont un vecteur d’attaque principal pour la prise de contrôle de compte. Si vous gérez un Hébergement E-mail, appliquez des politiques de mots de passe robustes au niveau du serveur de messagerie et activez DMARC, DKIM et SPF pour réduire l’exposition au phishing.
  • Clés privées SSL/TLS : Protégez les clés privées associées aux Certificats SSL avec des permissions de système de fichiers (chmod 600) et, dans la mesure du possible, stockez-les dans un module de sécurité matérielle (HSM) ou un gestionnaire de secrets.

Robustesse des mots de passe vs politique de mots de passe : une comparaison

DimensionResponsabilité de l’utilisateurResponsabilité de l’administrateur
Génération de mots de passeUtiliser un gestionnaire basé sur CSPRNGImposer des exigences minimales d’entropie
StockageCoffre-fort chiffré (gestionnaire de mots de passe)Argon2id/bcrypt avec sels uniques
Prévention de la réutilisationMot de passe unique par compteImposer via le paramètre PAM `remember`
Détection de violationsSurveiller HIBPIntégrer l’API de violation dans le flux d’authentification
MFAActiver sur tous les comptesImposer au niveau application/serveur
RotationChanger en cas de compromission suspectéeDéfinir une expiration pilotée par politique (90–180 jours)
Accès SSHUtiliser des paires de clésDésactiver `PasswordAuthentication yes` dans `sshd_config`

Matrice de décision et points clés techniques

Utilisez cette liste de contrôle pour évaluer et renforcer votre posture actuelle en matière de mots de passe :

  • Cible d’entropie : Visez un minimum de 80 bits pour les comptes généraux ; 100+ bits pour les accès privilégiés (root serveur, mot de passe maître du gestionnaire de mots de passe, clés de chiffrement).
  • Plancher de longueur : N’acceptez jamais des mots de passe de moins de 12 caractères dans tout système que vous contrôlez ; préférez 16–20 pour les comptes utilisateurs, 32+ pour les comptes de service et les clés API.
  • Pool de caractères : Utilisez l’ASCII imprimable complet pour les mots de passe générés aléatoirement ; utilisez Diceware pour les phrases de passe mémorisées.
  • Unicité : Tolérance zéro pour la réutilisation des identifiants. Déployez un gestionnaire de mots de passe pour rendre cela opérationnellement faisable.
  • Algorithme de hachage : Argon2id est l’étalon-or actuel pour le stockage des mots de passe côté serveur. Migrez depuis bcrypt uniquement si Argon2id est disponible dans votre stack.
  • Couche MFA : TOTP minimum ; FIDO2/WebAuthn pour les comptes privilégiés et administratifs.
  • Durcissement SSH : Désactivez la connexion SSH par mot de passe sur tous les serveurs. Utilisez PasswordAuthentication no dans /etc/ssh/sshd_config.
  • Surveillance des violations : Abonnez-vous aux notifications HIBP pour tous les domaines e-mail organisationnels.
  • Cadence d’audit : Exécutez des audits de mots de passe sur votre propre base de données de hachages en utilisant Hashcat trimestriellement pour identifier les identifiants faibles avant que les attaquants ne le fassent.
  • Application des politiques : Utilisez PAM pwquality sur les systèmes Linux ; appliquez des contrôles équivalents sur Windows via la stratégie de groupe (politiques de mots de passe à granularité fine).

Foire aux questions

Quelle est la longueur minimale de mot de passe recommandée par NIST en 2024 ?

NIST SP 800-63B fixe le minimum absolu à 8 caractères pour les mots de passe choisis par les utilisateurs, mais recommande explicitement que les vérificateurs autorisent des mots de passe d’au moins 64 caractères. Les praticiens de la sécurité devraient imposer un minimum pratique de 12 à 16 caractères et encourager des phrases de passe de 20+ caractères pour les comptes sensibles.

Un mot de passe de 12 caractères avec des symboles est-il plus robuste qu’une phrase de passe de 20 caractères en minuscules ?

Pas nécessairement. Une phrase de passe de 20 caractères en minuscules générée aléatoirement a environ 94 bits d’entropie (20 × 4,70), tandis qu’un mot de passe ASCII mixte de 12 caractères a environ 78,8 bits (12 × 6,57). La phrase de passe plus longue l’emporte sur l’entropie malgré l’utilisation d’un pool de caractères plus petit — la longueur se compose plus vite que la diversité des caractères.

Quelle est la différence entre une attaque par dictionnaire et une attaque par force brute ?

Une attaque par force brute essaie toutes les combinaisons de caractères possibles dans un espace défini — elle est exhaustive mais limitée computationnellement. Une attaque par dictionnaire utilise une liste de mots organisée de vrais mots de passe, de mots courants et de motifs connus. Les attaques par dictionnaire craquent la grande majorité des mots de passe choisis par les humains en quelques secondes ; la force brute est réservée aux mots de passe courts où l’espace de recherche complet est tractable.

Dois-je changer régulièrement mes mots de passe même s’il n’y a pas de violation ?

Les directives actuelles du NIST (SP 800-63B) recommandent explicitement de ne pas imposer une rotation périodique obligatoire des mots de passe sans preuve de compromission, car la rotation forcée amène les utilisateurs à faire des changements prévisibles et incrémentiels (par exemple, Password1 vers Password2). Changez les mots de passe immédiatement en cas de violation confirmée ou suspectée, et faites tourner les identifiants des comptes de service selon un calendrier défini (90–180 jours) comme pratique de gestion des risques.

Comment puis-je vérifier si mon mot de passe a déjà été exposé dans une violation de données sans l’envoyer à un serveur tiers ?

Utilisez l’API Have I Been Pwned Pwned Passwords avec son implémentation k-anonymat. Votre client calcule le hachage SHA-1 du mot de passe, envoie uniquement les 5 premiers caractères de ce hachage à l’API, et reçoit en retour tous les suffixes de hachage correspondants. Le hachage complet — et donc le mot de passe — ne quitte jamais votre machine. Cela peut être scripté directement :

PASSWORD="YourTestPassword"
HASH=$(echo -n "$PASSWORD" | sha1sum | awk '{print toupper($1)}')
PREFIX="${HASH:0:5}"
SUFFIX="${HASH:5}"
curl -s "https://api.pwnedpasswords.com/range/$PREFIX" | grep "$SUFFIX"

Si la commande retourne un résultat, le mot de passe a été vu dans une violation et ne doit pas être utilisé.

15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer