De « azerty » à « pa$$word », une revue des pratiques de gestion des mots de passe

22 juillet 2021

Elément de sécurité essentiel, les mots de passe restent complexes à appréhender pour les individus, mais également pour les développeurs. Quels sont les comportements des utilisateurs en la matière ? Comment encourager les bonnes pratiques ? Quelles problématiques techniques rencontrent les développeurs ?

Les mots de passe restent aujourd’hui la principale modalité d’authentification à des services numériques. Dès lors, alors que chaque personne gère en moyenne 25 comptes, les utilisateurs accumulent les mots de passe au risque d’une plus grande vulnérabilité. En effet, les mots de passe sont à la fois des données ciblées par les attaques informatiques et le moyen le plus souvent utilisé pour compromettre un système d'information. Le site internet Have I Been Pwned (IHa21), qui permet au grand public de vérifier si un de ses comptes a été exposé et catalogue des informations sur les données compromises, comptabilise aujourd'hui plus de 600 millions de mots de passe dévoilés. De plus, d'après le rapport 2021 publié par Verizon sur les violations de données (Verizon, 2021), 81% des violations sont causées par des mots de passe compromis, faibles ou réutilisés. 

La sécurité des mots de passe, de leur création à leur stockage, est donc un sujet de recherche important et vivant dans le domaine de la cybersécurité. Cet article présente un ensemble d'articles académiques explorant les différents aspects de la sécurité des mots de passe : du comportement des utilisateurs aux problématiques techniques rencontrées par les développeurs.

 


Que dit la littérature sur les pratiques des utilisateurs ?

Les pratiques des utilisateurs en matière de mots de passe sont hétérogènes, comme l’illustre la revue de littérature réalisée en 2016 par les chercheurs Leah Zhang-Kennedy, Sonia Chiasson et Paul van Oorschot (Zhang-Kennedy, et al., 2016). Alors que les dispositifs numériques imposent le respect de règles de complexité, les contraintes de mémorisation de nombreux mots de passe conduisent à des pratiques jugées mauvaises du point de vue de la sécurité informatique. L’utilisateur tend à réutiliser des mots de passe entre plusieurs comptes (identique ou légèrement altéré), partager son mot de passe avec un proche ou un collègue, ou encore écrire ses mots de passe sur papier. À noter que ce dernier point n’est une mauvaise pratique que dans les cas où une personne « malintentionnée » a physiquement accès à ces papiers (ce qui inclut notamment l’environnement professionnel).

De manière générale, les utilisateurs tendent à sous-estimer la faiblesse de leurs mots de passe, partant de l’idée fausse que les attaques sont faites à la main par un humain. Pour le mémoriser plus facilement, l’utilisateur va souvent utiliser des mots ou chiffres ayant un sens pour lui, même s’il est conscient que cette pratique est moins sécurisée. Il le compose à partir d’informations personnelles (date de naissance, prénom), de substitution de caractères (@ pour a), de concaténation de mots et chiffres (motdepasse123), ou de mots de passe communs (azerty) : cela résulte en un mot de passe faible et facile à deviner.  La connaissance limitée de ce que constitue un mot de passe fort conduit les utilisateurs à rejeter les conseils de sécurité dès lors qu’ils jugent le ratio avantages/coûts trop faible.

Deux articles récemment publiés pour la conférence USENIX complètent la compréhension des pratiques en matière de gestion des mots de passe.  Mary Theofanos, Yee-Yin Choong et Olivia Murphy (Theofanos, et al., 2021) ont mené une étude sur le comportement des enfants de 8 à 18 ans dans leur gestion des mots de passe. Si ces jeunes connaissent les règles et leur importance, ils sous-estiment l’impact de leurs choix.  Ainsi, bien que sachant que cela va à l’encontre des règles habituellement conseillées, ils partagent facilement leurs mots de passe entre amis proches, les réutilisent d’un service à l’autre voire utilisent des informations personnelles dans leurs mots de passe.

Hirak Ray (Ray, et al., 2021) s’intéresse à l’utilisation de gestionnaire de mots de passe par les séniors et compare les résultats à une étude précédente qui s’intéressait à la population générale et aux plus jeunes (Pearman, et al., 2019). Ce groupe d’utilisateurs rencontre des difficultés différentes, presque contraire aux jeunes étudiés plus haut : il s’agit d’un groupe exprimant de fortes préoccupations de sécurité et de respect de la vie privée, mais qui éprouve des difficultés à évaluer, comprendre et manier les mécanismes qui leur permettraient d’atteindre un haut niveau de protection.  Par exemple, lorsqu’ils utilisent un générateur de mots de passe, les séniors utilisent un mot de passe maitre plutôt faible alors que les jeunes utilisant un tel dispositif choisissent un mot de passe aléatoire ou non signifiant. En même temps, les séniors utilisent la fonction de génération de mots de passe aléatoire pour obtenir des mots de passe distincts, alors que les plus jeunes préfèrent réutiliser des mots de passe.

 strip-motdepasse1.jpg

Source : CommitStrip

 

L’un dans l’autre, la conclusion à laquelle les auteurs arrivent est similaire : l’appréhension des risques est difficile pour les individus. Or, pour encourager l’utilisation de mots de passe plus forts, notamment via l’usage de solutions de gestionnaires de mots de passe, les utilisateurs doivent percevoir les risques effectifs liés à l’utilisation d’un mauvais mot de passe et savoir pourquoi (et quand) ils ont besoin d’un mot de passe fort. 

 

Comment aider les utilisateurs à adopter de bonnes pratiques ? 

Il ne faut pas toutefois blâmer trop rapidement les pratiques des individus. Celles-ci sont largement contraintes par les dispositifs techniques de création de mots de passe. Or, Leah Zhang-Kennedy, Sonia Chiasson et Paul van Oorschot (Zhang-Kennedy, et al., 2016) considèrent que les règles de mots de passe sont souvent conçues avec le seul objectif de sécurité, sans prendre en compte l’aspect humain et notamment la charge de mémorisation qu’elles représentent. 

Par leurs choix, les concepteurs de services (ou de politique de mots de passe) peuvent orienter les utilisateurs vers des pratiques plus vertueuses. En premier lieu, l’utilisation de listes noires qui empêchent le choix d’un mot de passe compris dans la liste des mots de passe les plus utilisés est recommandée. Pour éviter des mots de passe communs et prévisibles, même avec une liste noire de taille modérée, on observe une amélioration notable de la sécurité. À ce sujet, il faut noter que la complexité et la longueur n'assurent pas toujours un mot de passe fort. Par exemple, « Pa$$w0rd » semble beaucoup plus robuste que « wduopa ». Pourtant, il est lui aussi faible, car il est présent dans tous les dictionnaires de mots de passe que les attaquants testent.

En second lieu, une autre solution souvent citée est l’utilisation de phrases de passe pour créer un mot de passe fort et simple à retenir. Cependant la littérature, et notamment Joseph Bonneau (Bonneau, 2012; Bonneau, et al., 2012) ou encore Cynthia Kuo (Kuo, et al., 2006), alerte sur le fait que les utilisateurs ont les mêmes tendances dans le choix des phrases de passe que des mots de passe. Plutôt qu’une suite de mots, ils choisissent des phrases connues, qu’un dictionnaire composé des paroles de chansons, de citation de textes sacrés et de phrases présentes fréquemment dans les commentaires sur internet, permettra de retrouver aisément.  

Pour aider les utilisateurs à créer des phrases qui soient à la fois sûres et plus faciles à mémoriser, Nikola Blanchard et ses collègues (Blanchard, et al., 2018) proposent de choisir plusieurs mots parmi un tableau de mots aléatoires pour créer une phrase de passe. L'avantage de cette méthode est qu'elle permet à l'utilisateur de générer un mot de passe fort et facile à retenir, à partir d'un simple générateur et d'un dictionnaire.

 

password2.png

Source : CC BY NC

 

Enfin, de plus en plus d’études démontrent que les politiques qui forcent l’utilisateur à changer son mot de passe à une fréquence régulière ne sont pas vraiment efficaces, voire contre-productives. Selon Hana Habib (Habib, et al., 2018), les stratégies utilisées par les utilisateurs pour s'adapter aux politiques d'expiration de mots de passe sont prévisibles. La majorité des participants utilise une version légèrement modifiée de leur mot de passe précédent. Les bénéfices en termes de sécurité sont ainsi mineurs et largement contrebalancés par l'expérience utilisateur négative.

 

Le mauvais stockage des mots de passe : un problème de développeurs, mais aussi de managers

 

Le stockage des mots de passe est également un point de sécurité essentiel. En effet, de nombreux utilisateurs réutilisant leurs mots de passe sur plusieurs sites, lorsqu'un site, aussi peu sensible soit-il, voit sa base d'utilisateurs fuiter, les attaquants sont alors en mesure d'utiliser ces informations pour tenter d'accéder aux comptes détenus sur d'autres plateformes. Le danger n'est pas seulement la réutilisation des accès obtenus via d’autres sites : il suffit qu’un attaquant ait accès en lecture à la base utilisateurs, par exemple en utilisant une injection SQL, pour obtenir  les identifiants des administrateurs. Il pourra ensuite se connecter à leur place et  gagner de nouveaux accès. Il est donc primordial que le stockage des mots de passe empêche de retrouver le mot de passe d’origine tout en permettant de vérifier que la personne qui tente de s’authentifier le connaît. Ces méthodes existent depuis un certain temps et ont beaucoup évolué. Malheureusement, elles ne sont pas suffisamment utilisées.

Comme l'ont montré Chamila Wijayarathna et Nalin Arachchilage (Wijayarathna, et al., 2018), la complexité des API cryptographiques et le manque de documentation de ces dernières est une des raisons pour lesquelles les mots de passe ne sont pas stockés de manière sécurisée. Cela pousse les développeurs à se référer à des sources externes plus ou moins fiables. Toutefois, les explications aux erreurs commises sur le stockage des mots de passe sont multiples et dépendent notamment des managers et des chefs de projet. En effet, en l’absence d’une demande spécifique, et y compris lors de développement de briques logicielles relatives à la sécurité, l'accent est principalement mis sur le développement des fonctionnalités plutôt que sur la sécurité (Naiakshina, et al., 2017). Le niveau de sécurité des éléments développés en est alors directement impacté.

password3.jpg

Source : CommitStrip

Par exemple, afin de ne pas avoir à développer les mêmes fonctionnalités de base sans cesse, les développeurs ont recours à des outils tels que des CMS ou des cadriciels (frameworks) qui fournissent ces briques fondamentales. Or, le passage en revue de la manière dont les principaux CMS et cadriciels (frameworks) open-source gèrent l'authentification et le stockage de mots de passe par défaut démontre que, bien souvent, ces outils font usage de procédés dépassés, voire totalement obsolètes (Ntantogian, et al., 2019).

Les attendus d'une bonne fonction de hachage de mots de passe

Une nouvelle génération de fonctions spécialisées dans le stockage des mots de passe a émergé ces dernières années. Tenue entre 2013 et 2015, la compétition internationale Password Hashing Competition a débouché sur un éclaircissement des propriétés idéales pour de telles fonctions et, in fine, sur l'annonce de 5 fonctions de hachage de mots de passe reconnues comme particulièrement adaptées au stockage des mots de passe, dont l'une a été nommée gagnante de la compétition (voir ci-dessous).

 

ZOOM sur les critères des fonctions de hachage de mots de passe imposés lors de la compétition PHC

 

Dans son appel à soumissions, la Password Hashing Competition a défini plusieurs critères techniques auxquels devaient répondre les fonctions de hachage candidates et sur lesquels il est intéressant de revenir. 

Le premier d'entre eux est d'accepter des mots de passe dont la longueur est comprise entre 0 et 128 octets, le support de mots de passe plus longs étant optionnel. Si l'absence de limite basse est là pour ne pas contraindre les politiques de mots de passe qui peuvent varier suivant les cas d'usages, il est de prime abord peu intuitif de comprendre l’intérêt d’une limite haute. Après tout, les fonctions de hachage non spécialisées dans les mots de passe n'ont pas une telle limite. Dans le cas précis des mots de passe, il s’agit d’une nécessité, car, contrairement aux fonctions de hachage cryptographique génériques, les solutions spécialisées pour le stockage des mots de passe sont spécifiquement construites pour consommer beaucoup de ressources système. Des attaquants ont ainsi pu profiter de l'absence de limite haute pour provoquer un déni de service en soumettant des mots de passe d’une longueur démesurée, pouvant atteindre quelques méga-octets par mot de passe dans certains cas (CVE -2013-1443, CVE-2014-9016, CVE-2014-9034, CVE-2016-6630).   
 
Le second critère est d'accepter l’utilisation d’un sel d'une longueur de 16 octets, bien qu'il soit permis par paramétrage d’accepter d’autres longueurs de sels. Si l'ajout d'un sel unique pour chaque mot de passe est une mesure de sécurité standard depuis les années 1990, la question de sa longueur est souvent posée. Ici, le choix de PHC de demander 16 octets n'est pas anodin : cette valeur correspond à 128 bits et donc aux recommandations habituelles en termes de longueur de clé pour les mécanismes symétriques. On notera que cela permet, entre autres, de garantir qu’ils soient uniques, y compris s'ils sont générés de manière aléatoire, et ce, malgré le paradoxe des anniversaires.
 
Il existe un autre paramètre de taille que la PHC impose : les fonctions doivent pouvoir fournir (au minimum) des empreintes de 32 octets (256 bits). Lors de la compétition lancée par le NIST en 2008 pour choisir la nouvelle fonction de hachage cryptographique SHA3, les fonctions de hachages candidates devaient permettre de produire des hachés de 224, 256, 384 et 512 bits. Il s’agit donc d’une exigence classique pour toute fonction de hachage moderne.
 
Le dernier critère technique imposé par la PHC concerne la possibilité de paramétrer les coûts en temps et en espace mémoire de la fonction. La valeur de ces paramètres doit être calculée régulièrement en fonction des avancées technologiques et définie de manière à être suffisamment faible pour que le système d'authentification puisse fonctionner, mais également assez fort pour qu'un attaquant ayant obtenu les hachés doivent dépenser des ressources phénoménales pour tenter de retrouver les mots de passe.


Travaux cités

 

  • Blanchard Nikola K., Malaingre Clément and Selker Ted Improving security and usability of passphrases with guided word choice [Conference] // ACSAC '18: Proceedings of the 34th Annual Computer Security Applications Conference. - New York : [s.n.], 2018.
  • Bonneau Joseph [et al.] Linguistic Properties of Multi-word Passphrases [Conference] // Financial Cryptography and Data Security. - 2012.
  • Bonneau Joseph The Science of Guessing: Analyzing an Anonymized Corpus of70 Million Passwords. [Conference] // 2012 IEEE Symposium on Security and Privacy.. - 2012.
  • Habib Hana [et al.] User Behaviors and Attitudes Under Password Expiration Policies [Conference] // Proceedings of the 14th Symposium on Usable Privacy and Security-SOUPS. - Baltimore : [s.n.], 2018.
  • I Have Been Pwned [Online]. - 25 06 2021. - haveibeenpwned.com.
  • Kuo Cynthia, Romanosky Sasha and Cranor Lorrie Faith Human selection of mnemonic phrase-based passwords. [Conference] // SOUPS '06: Proceedings of the second symposium on Usable privacy and security. - 2006.
  • Naiakshina Alena [et al.] Why Do Developers Get Password Storage Wrong?: A Qualitative Usability Study [Conference] // CCS '17: Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security. - 2017.
  • Ntantogian ,Christoforos, Malliaros Stefanos and Xenakis Christos Evaluation of password hashing schemes in open source web platforms [Journal] // Computers & Security. - [s.l.] : Elsevier, July 2019. - Vol. 84.
  • Ray Hirak [et al.] Why Older Adults (Don’t) Use Password Managers [Conference] // 30th USENIX Security Symposium. - 2021.
  • Theofanos Mary, Choong Yee-Yin and Murphy Olivia Passwords Keep Me Safe' – Understanding What Children Think about Passwords [Conference] // 30th USENIX Security Symposium. - 2021.
  • Verizon DBIR -b 2021 Data Breach Investigations Report [Report]. - 2021.
  • Wijayarathna Chamila and Arachchilage Nalin A. G. Why Johnny Can't Store Passwords Securely?: A Usability Evaluation of Bouncycastle Password Hashing [Conference] // EASE'18: Proceedings of the 22nd International Conference on Evaluation and Assessment in Software Engineering 2018. - 2018.
  • Zhang-Kennedy Leah, Chiasson Sonia et van Oorschot Paul Revisiting password rules: facilitating human management of passwords [Conférence] // 2016 APWG Symposium on Electronic Crime Research (eCrime). - 2016. - pp. 1-10.

 


Cet article a été rédigé par Rodolphe Breard, Amandine Jambert et Iane Vallanzasca. 


Illustration - CC-BY Jim Pennuci