IT & Engineering
Les indicateurs de force de mot de passe ne sont pas pour les humains
Nous sommes déjà à quelques mois de la nouvelle année et, comme toujours, la lutte contre les personnes malveillantes continue.
Mailgun prend la sécurité des comptes de sa base d’utilisateurs très au sérieux, et lorsqu’un compte est compromis, ce n’est une partie de plaisir pour personne. Face aux nombreux éléments pouvant entraîner la compromission d’un compte, nous avons pris du recul pour examiner les différents vecteurs d’attaque utilisés par les personnes malveillantes cherchant à y accéder.
À la base de tout cela se trouve l’une des premières choses que l’on configure lors de la création d’un compte : son mot de passe. Un mot de passe fort est essentiel pour garantir une bonne sécurité, mais en trouver un peut s’avérer fastidieux, ce qui pousse de nombreuses personnes à se rabattre sur des mots de passe simples et/ou faibles. Pour les protéger contre les compromissions, nous devons les orienter dans la bonne direction.
Indicateurs de force de mot de passe
Lorsque nous avons cherché un nouveau moyen d’atténuer les compromissions en encourageant les internautes à faire de meilleurs choix lors de la création de mots de passe, nous avons pensé qu’ajouter un indicateur de force de mot de passe sur le formulaire d’inscription était une bonne solution.
À partir de là, nous avons examiné un bon nombre d’exemples existants pour voir ce qui se fait dans le secteur et, les indicateurs de force de mot de passe n’étant pas nouveaux, ce qui pourrait être amélioré. Les indicateurs de mots de passe reposent généralement sur les règles ou exigences suivantes : Votre mot de passe :
- Doit comporter au moins huit caractères
- Doit inclure au moins une lettre majuscule
- Doit inclure au moins une lettre minuscule
- Doit inclure au moins un chiffre
- Doit inclure au moins un caractère spécial parmi une sélection de symboles autorisés
Les règles ci-dessus sont assez standard, mais elles ne fonctionnent pas bien.
Chaque fois que l’on parle de mots de passe, on trouve généralement une référence à une bande dessinée bien précise sur le sujet (celle-ci ici si vous ne la connaissez pas). Il existe beaucoup de contenus de ce type qui illustrent parfaitement ce que nous essayons de démontrer ici :
Les humains ne sont pas doués pour créer des mots de passe forts.
Même si l’inclusion de toutes les règles ci-dessus dans votre mot de passe donne l’impression de vous orienter dans la bonne direction, cela ne signifie pas qu’il sera plus difficile à déchiffrer pour un ordinateur. C’est parce que le cerveau humain est un très mauvais générateur de données aléatoires. Tout d’abord, les gens utilisent généralement des mots qui ont une signification particulière pour eux. De plus, le cerveau humain peut être conditionné à utiliser des mots associés lorsqu’il est exposé à un environnement spécifique. L’analyse suivante de la fuite de données de LinkedIn en est un parfait exemple :

Critères d’évaluation
Dans cette optique, nous devions maintenant déterminer comment évaluer la force du mot de passe créé par une personne.
Pour commencer, nous avons découvert que le moyen le plus efficace d’atténuer le piratage de comptes dû à des mots de passe non sécurisés est de les comparer à une base de données d’identifiants exposés hachés. Celle que nous utilisons nous-mêmes provient de https://haveibeenpwned.com

Si une personne tente de définir un mot de passe déjà compromis, elle ne devrait pas pouvoir poursuivre la procédure. Autre avantage, cela devrait l’encourager à modifier ce mot de passe si elle l’utilise pour d’autres services.
C’est pourquoi nous signalons également les mots de passe de moins de dix caractères ou qui incluent des informations préalablement fournies dans le formulaire d’inscription : nom de domaine, nom réel, nom de l’entreprise, etc.
Mais que se passe-t-il si le mot de passe ne figure pas dans la liste des hachages de mots de passe exposés et répond à toutes les autres exigences, mais qu’il est aussi simple que « Password0001! » ?
Entropie
Une autre façon de mesurer la force d’un mot de passe est de calculer son entropie. « L’entropie d’un mot de passe est une mesure de son imprévisibilité. [Elle est] basée sur l’ensemble de caractères utilisés… ainsi que sur la longueur du mot de passe » [1].
Généralement mesurée en « bits », l’entropie du mot de passe peut être calculée en trouvant l’entropie de chaque caractère, avec un log en base 2 du nombre de caractères de l’ensemble utilisé, multiplié par le nombre de caractères de la chaîne du mot de passe elle-même.
Si l’on tient compte des mots de passe faibles qui n’ont pas encore été divulgués ou piratés, utiliser l’entropie des mots de passe pour envoyer un message à l’utilisateur via un indicateur de force est utile pour lui montrer qu’il devrait envisager d’utiliser un mot de passe plus robuste.
Cependant, évaluer la force d’un mot de passe uniquement sur la base de son entropie présente des failles.
Prenons par exemple le mot de passe « Password01! », qui est assez courant et pourrait être facilement deviné. Nous constatons qu’un indicateur de force de mot de passe basique affirme le contraire :

Il s’agit d’un indicateur de force de mot de passe qui montre que ce mot de passe est « Très fort ». Cependant, tel quel, ce mot de passe a été vu sur haveibeenpwned.com plus de 400 fois :

Voici un autre exemple : utilisons un mot de passe composé de cinq mots SÉLECTIONNÉS ALÉATOIREMENT, d’une longueur de trois à quatre lettres chacun ; sans majuscule, sans symbole spécial et sans chiffre :

Si vous n’arrivez pas à déchiffrer, les mots sont « fit », « heat », « scale », « pot » et « kneel ». En termes d’entropie, ce mot de passe possède un jeu de caractères plus restreint, mais regardez ceci :

Bien qu’il soit considéré comme un mot de passe « faible » en fonction de sa complexité, il n’a pas été piraté (d’après la réponse de haveibeenpwned.com ci-dessus). Si l’on prend en compte le nombre de permutations et de combinaisons possibles en choisissant au hasard cinq mots parmi ceux de trois, quatre et cinq lettres de la langue anglaise, par exemple, cela peut s’avérer très complexe. Analysons cela de plus près :

Ne prenez pas cela trop au sérieux pour autant. Comme le suggère HaveIBeenPwned, ce n’est pas parce qu’il n’a pas été piraté qu’il s’agit d’un bon mot de passe. Ce mot de passe est du même type que ceux mentionnés dans la bande dessinée précédente. Il fait partie des mots de passe du type « correcthorsebatterystaple », qui laissent entendre que ces formats sont plus faciles à retenir pour les humains tout en étant plus difficiles à déchiffrer pour les ordinateurs en raison du point évoqué plus haut.
Globalement : peu impressionnant
Où veux-je en venir ? Nous sommes conscients que les exigences courantes ne fonctionnent pas bien, et nous savons que l’entropie des mots de passe pour déterminer leur force présente quelques failles, alors que devons-nous faire ?
Nous créons un indicateur de force de mot de passe qui n’est tout simplement jamais impressionné par ce que vous lui proposez, un point c’est tout.

Même si notre petit indicateur de force de mot de passe, grincheux et difficile à impressionner, semble encore balbutier par rapport à ce qu’il pourrait devenir, je pense que c’est un bon début pour faire passer un message.
Le renforcement positif excessif de la plupart des indicateurs de force de mots de passe constitue un autre problème. Si un indicateur vous réprimande lorsque vous ne respectez pas les exigences, dès que vous les atteignez, vous recevez des réponses positives concernant vos choix, vous laissant presque explicitement entendre que votre mot de passe est excellent et qu’il n’y a rien d’autre à faire pour assurer la sécurité de votre compte. En d’autres termes, vous n’avez pas à vous inquiéter, vous ne serez jamais victime de compromission.
Les indicateurs de force de mot de passe habituels fonctionnent un peu comme les deux premières courbes en cloche de l’image ci-dessous :

Généralement, une fois que vous répondez aux exigences d’un indicateur, vous êtes classé dans les catégories « Passable » ou « Assez bon », et cela s’arrête là, ce qui n’est en fait ni bon ni passable.

Ce que nous cherchons à accomplir, c’est de ressembler à la troisième courbe en cloche que vous voyez ci-dessus. Où nous sommes opposés à votre choix de mot de passe la plupart du temps, et indifférents le reste du temps. La raison en est qu’un simple mot de passe ne suffit plus aujourd’hui pour garantir la sécurité. L’indicateur de mot de passe ne devrait donc pas être impressionné.
Conclusion
Dans l’ensemble, concevoir un bon indicateur de force de mot de passe est complexe et peut amener les utilisateurs à créer des mots de passe plus faibles au lieu d’en choisir des meilleurs et plus robustes. De plus, l’utilisation de ressources telles que haveibeenpwned.com pour vérifier les mots de passe exposés est bien plus fiable que d’inventer et d’utiliser vos propres algorithmes de vérification de la force.
Utiliser un gestionnaire de mots de passe capable de les générer à partir d’un ensemble de caractères suffisamment vaste pour atteindre un niveau d’entropie souhaité est l’une des meilleures options actuelles pour créer des mots de passe forts et uniques. Malgré cela, vous devriez tout de même envisager d’utiliser toutes les autres options de sécurité à votre disposition, telles que les clés de sécurité, les applications d’authentification ou toute autre méthode d’authentification multifacteurs disponible, au-delà du simple mot de passe.
En résumé, si vous vous demandez s’il est pertinent d’intégrer un indicateur de force de mot de passe sur votre (vos) site(s), je dirais non, à moins que vous ne vouliez l’utiliser pour faire passer un message. Un indicateur de mot de passe n’est, en réalité, qu’un artifice visuel, car nous avons rendu la création d’un mot de passe véritablement aléatoire presque impossible et peu pratique pour les humains, si tant est que cela soit possible.
Et bien que nous ayons conçu ces indicateurs pour évaluer les mots de passe que nous imaginons, ils sont plus efficaces face à ceux qu’un ordinateur peut créer, car les êtres humains sont tout simplement trop prévisibles, même lorsqu’ils font de leur mieux pour ne pas l’être.
Références :
https://xkcd.com/936/
https://whatis.techtarget.com/definition/password-entropy
http://securitynirvana.blogspot.com/2012/06/linkedin-password-infographic.html
https://haveibeenpwned.com/Passwords
https://passwordmeter.com/