Quand on parle de sécurité des mots de passe, on parle principalement de robustesse et de stockage.
En cas d’attaque, ces deux critères vont agir conjointement pour ralentir la découverte du mot de passe. Ils vont, respectivement, augmenter le nombre combinaisons possibles et le temps de comparaison avec le mot de passe enregistré.
De plus, une politique de mots de passe conforme aux bonnes pratiques, en tant que facteur de connaissance, constitue aussi un pilier essentiel pour une authentification multifacteurs efficace.
Dans cet article, nous allons voir les questions à se poser afin de vérifier si les deux critères de conformité sont respectés.
Le schéma qui résume tout

Robustesse
La politique de mot de passe est-elle assez forte ?
En informatique, l’entropie est l’unité de mesure utilisée pour évaluer la force d’une politique de mots de passe.
De façon générale, la CNIL recommande un niveau d’entropie minimum de 80.
À titre d’exemple, ce niveau peut être atteint notamment par l’utilisation de :
- minimum 12 caractères, une majuscule, une minuscule, un chiffre et un caractère spécial
- minimum 17 caractères, uniquement des minuscule
La CNIL propose un outil afin de vérifier sa politique de mot de passe.
En cas de faible entropie, est-ce des mesures complémentaires sont mises en place ?
Un niveau d’entropie inférieur aux recommandations ne signifie pas nécessairement une non-conformité.
Si des mesures complémentaires sont en place, comme un blocage du compte après X tentatives infructueuses ou l’affichage d’un CAPTCHA, le niveau d’entropie requis peut être réduit à 50.
Stockage
Un algorithme est-il utilisé pour le stockage des mots de passe ?
Un mot de passe ne doit jamais, en aucun cas, être stocké en clair. Il est essentiel d’utiliser une fonction cryptographique non réversible pour le rendre illisible.
L’aspect “non-réversible” est très important. Un algorithme de chiffrement symétrique, telle que AES, utilise une clef pour chiffrer et déchiffrer le contenu. Par conséquent en cas de perte de confidentialité à la fois de la base de données et de cette clef, cela revient à un stockage en clair des mots de passes.
Cet algorithme est-il spécifique au stockage des mots de passe ?
Comme évoqué précédemment, il est important d’utiliser un algorithme cryptographe non-réversible. C’est le cas des algorithme de hachage, qui calcule des empreintes sans nécessiter d’éléments supplémentaires, hormis leurs propres paramètres.
La solution actuellement recommandée par l’ANSSI est d’utiliser une fonction de type Argon2 ou brcypt.
Utiliser une fonction de hachage simple est insuffisant. Par exemple, les fonctions de la famille SHA2 et SHA3 ne sont pas conçues spécifiquement au stockage des mots de passe. Leur utilisation ne ralentit pas suffisamment le processus de craquage.
Enfin, il faut aussi faire attention à l’utilisation d’algorithme ne comportant pas de faille de sécurité. L’utilisation de fonctions dépréciés telle que MD5, DES ou SHA1 peut mettre en péril votre système authentification.
Les paramètres utilisés par mon algorithme sont-il conformes aux recommandations ?
Une petite subtilité a connaître, même si l’on utilise un algorithme reconnu il est important de contrôler les paramètres utilisés par celui-ci.
Par exemple, l’OWASP recommande, pour bcrypt, d’appliquer un facteur de coût (work factor) d’au moins 10.
L’utilisation d’un élément supplémentaire, comme un sel de chiffrement, constitue toujours un atout. D’ailleurs, celui-ci est souvent intégré par défaut dans les algorithmes spécifiquement conçus pour le stockage des mots de passe.
Pour aller plus loin
- Wikipedia - Entropie de Shannon
- CNIL - Délibération recommandation politique de mot de passe
- CNIL - Mots de passe : recommandations pour maîtriser sa sécurité
- ANSSI - Recommandations relatives à l’authentification multifacteur et aux mots de passe
- OWASP - Password Storage Cheat Sheet
- Developpez.com - Arrêtez d'utiliser SHA-1 !