Tout sur un bon mot de passe

De nombreux articles, sur le Web, tentent de vous expliquer comment faire un bon mot de passe. Malheureusement, souvent, avec beaucoup de contrevérités.

Posté le
(Dernière modification le )
11 minutes
2318 mots

On va essayer, ici, de rassembler les informations correctes pour bien gérer ses mots de passe.

Le mot de passe pour les gouverner tous

Tout d’abord, comment faire un bon mot de passe qu’on puisse se rappeler ?

Remplacer les signes, c’est pas bien

Souvent, une fausse bonne idée ressort. Celle de remplacer des signes par d’autres.

Comme par exemple, utiliser « mot de p@sse » au lieu de « mot de passe ».

Cette idée vient du monde anglophone et part du fait que la plupart des mots de passe étaient composés de caractères de la table ASCII, c’est à dire des 26 lettres de l’alphabet latin plus quelques signes de ponctuations.

Cet article est rédigé en français et, donc, s’adresse à des francophones qui sont moins concernés par ce problème car le français contient des signes qui ne sont pas inclus dans la table ASCII de base. Les accents par exemple « à, é, è, ù… » sont inclus dans la table ASCII étendue, voire l’UTF-8 (une table qui contient tous les alphabets du monde : arabe, cyrillique, chinois…).

Cette technique donne des mots de passe beaucoup plus difficiles à mémoriser. Ayant du mal à les mémoriser, on a tendance à les faire assez courts, ce qui est aussi très mauvais.

La phrase de passe, c’est bien

Cette technique est connue grâce au comicstrip de xkcd souvent appelée « correct horse battery staple ».

Pour que cela soit efficace, il faut que la combinaison de mots soit la plus rare possible. Dans le comicstrip de xkcd, la rareté des combinaisons est évoquée par le caractère aléatoire.

Mais n’oublions pas que c’est un mot de passe à mémoriser. Nos cerveaux gèrent mal le caractère aléatoire. C’est pour ça qu’en fin du comicstrip, l’auteur insiste sur l’idée de se faire une image mentale de la phrase de passe.

En français, la fréquence des mots et de leurs combinaisons est moins élevée qu’en anglais car les utilisateurs francophones sont moins nombreux et le français contient des articles, déterminants, possessifs qui diminuent encore la probabilité d’apparition des combinaisons. La nécessité de l’aléatoire est moins forte qu’en anglais.

On peut donc utiliser des phrases de passe qui soient grammaticalement correctes comme mot de passe.

Rareté des mots dans les phrases de passe

Un petit éclairage sur les phrases de passe

Un exemple pour illustrer tout ça :

À votre avis, quel est le meilleur mot de passe :

« !Es_fr@mbo1ses »

ou

« L’Air de la reine de la nuit, la Flûte enchantée de Wolfgang Amadeus Mozart »

Si vous aimez Mozart, c’est certainement le deuxième. Il est facile à retenir, plus long que le premier et la possibilité que deux personnes aient ce même mot de passe est faible. De plus, il a des majuscules, une virgule, une apostrophe, un « û » et un « é ».

Le gestionnaire de mots de passe pour les amener tous

Avoir un mot de passe dont on puisse se rappeler, c’est bien. Mais ce qui est mieux encore c’est de pouvoir utiliser des mots de passe dont on ne puisse pas se rappeler (même soi-même). Cela diminue les risques de les divulguer, sans s’en rendre compte, au détour d’une conversation.

Jimmy Kimmel en fait un passage de son émission, disponible sur Youtube, en anglais.

Donc pour éviter ce risque, pour faire des mots de passe dont on ne se rappelle pas, il faut utiliser un gestionnaire de mots de passe.

C’est un logiciel ou un service web qui stocke les mots de passe et vous les affiche quand vous les lui demandez. Vous n’avez plus qu’à les copier-coller, ou utiliser des plugins qui le font pour vous, dans les pages de connexion. Il est la plupart du temps chiffré et on y accède donc avec un mot de passe maître, le seul dont vous devez vraiment vous rappeler.

Avec ce système, comme vous n’avez pas besoin de vous souvenir de vos mots de passe, allez-y à fond. Faites des mots de passe à 50 caractères générés aléatoirement avec pleins de signes bizarres. Utilisez l’UTF-8 en regardant la compatibilité de vos logiciels et services web (ils ne sont pas tous compatibles, ils n’affichent pas tous correctement l’alphabet cyrillique par exemple).

Logiciel ou service web

L’avantage du logiciel par rapport au service web, c’est que le risque d’attaque et de fuites est diminué.

Un service web de gestion de mots de passe attire les attaquants car le gain en cas de faille est plus important que le gain en cas de faille de votre logiciel (des milliers de comptes au lieu d’un).

Il y a aussi des conflits de droits entre les utilisateurs du service et l’environnement juridique du service. Par exemple, le RGPD européen et le Cloud Act américain. On reviendra sur ces notions de droits dans de futurs articles.

L’avantage d’un service web est que, normalement, le risque de perte des mots de passe est plus faible et il bénéficie d’une équipe à plein temps pour repérer les failles et y remédier.

Et chez Limawi

Chez Limawi, nous utilisons le logiciel KeepassXC.

Il a l’avantage d’être opensource, donc le code peut être audité facilement.

Il est présent sur vos appareils et non en ligne, ce qui réduit les possibilités d’attaque sur des services centralisés.

Il chiffre les mots de passe avec le mot de passe maître.

Les conflits de droits possibles entre RGPD européen et Cloud Act américain sont évités, les mots de passe n’étant pas stockés sur des serveurs américains.

Il est, par contre, plus compliqué de partager le gestionnaire de mots de passe entre appareils. De plus, vous devez organiser vous-même le backup de votre base chiffrée de mots de passe.

keepassXC est une variante de KeepassX (dont le développement semble arrêté), lui-même une variante de Keepass qui n’est disponible que pour Windows. D’ailleurs, Keepass fera l’objet d’un audit de sécurité par la commission européenne.

Et dans les ténèbres les lier (les attaques en gros)

Les attaques de masse

Les attaques de masse visent à récupérer le plus grand nombre de mots de passe possible sans se soucier des personnes à qui ils appartiennent.

Dictionnaire

Les attaques les plus fréquentes de ce type sont les attaques par dictionnaire. Ce sont celles qui demandent le moins de capacité de calcul mais le plus de capacité de stockage (le compromis temps-mémoire). En effet, on teste les mots de passe connus les plus courants (provenant des attaques déjà réussies) et si ça passe pas on passe au compte suivant.

Une liste des mots de passe les plus courants est publiée chaque année dans l’espoir de modifier les comportements de gens mais, malheureusement, il n’y a pas d’évolution sensible.

Voici la liste des 25 mots de passe les plus utilisés de 2018, faite par Splashdata, avec, entre parenthèses, la comparaison de 2017 :

  • 123456 (position non changée)
  • password (position non changée)
  • 123456789 (a pris 3 places)
  • 12345678 (a perdu 1 place)
  • 12345 (position non changée)
  • 111111 (nouveau)
  • 1234567 (a pris 1 place)
  • sunshine (nouveau)
  • qwerty (a perdu 5 places)
  • iloveyou (position non changée)
  • princess (nouveau)
  • admin (a perdu 1 place)
  • welcome (a perdu 1 place)
  • 666666 (nouveau)
  • abc123 (position non changée)
  • football (a perdu 7 places)
  • 123123 (position non changée)
  • monkey (a perdu 5 places)
  • 654321 (nouveau)
  • !@#$%^&* (nouveau)
  • charlie (nouveau)
  • aa123456 (nouveau)
  • donald (nouveau)
  • password1 (nouveau)
  • qwerty123 (nouveau)

Le problème de cette liste, présente dans tous les articles sur « comment faire un bon mot de passe », c’est qu’elle vient du monde anglophone et ne reflète pas les mots de passe les plus fréquents de monde francophone. Si vous avez des sources pour les mots de passe francophones, je suis intéressé.

Bien sûr, il circule sur le Web des listes avec 100, 1000, 10000, 1 million, voire plus, de mots de passe.

Arc-en-ciel

Le deuxième type d’attaques est l’attaque par table arc-en-ciel (« rainbow table »). Elle est plus coûteuse en termes de calculs mais demande moins de capacité de stockage. Elle demande néanmoins que le tableau des hashes (c’est à dire le mot de passe chiffré, on parlera du « hash » dans un futur article) soit récupéré en hackant le service web, logiciel.

La table arc-en-ciel compare les hashes qu’elle a avec ceux du tableau hacké. Si les hashes correspondent, ça veut dire que c’est le même mot de passe.

Exemple :

L’attaquant a une table arc-en-ciel avec un mot de passe et son hash en md5 (c’est un type de hash, à ne jamais utiliser en vrai) :

  • password : 5f4dcc3b5aa765d61d8327deb882cf99
  • sdhfksdkfh : e2a1dbf388e7a7e87dc02943e3521036
  • framboise : 54a9fc48a5b664772e2ca06d1e0772d9

Il a hacké un tableau de hashs sur un site et a la liste suivante de noms et hashs :

  • Bob : 098f6bcd4621d373cade4e832627b4f6
  • Alice : 54a9fc48a5b664772e2ca06d1e0772d9
  • Lee : 190a16e29799b184d9900690ee04438a

Il voit que le deuxième hash de la liste correspond au troisième hash de sa table arc-en-ciel. Donc il sait que le mot de passe d’Alice est « framboise ».

Ces deux types d’attaques peuvent être contrés par la technique de la phrase de passe. Si la phrase de passe n’est pas dans la liste des mots de passe ou celle des hashs, alors ces attaques ne peuvent rien.

Dans un prochain article, on verra des techniques pour renforcer cette table de hashs si vous concevez votre site web.

Dans l’article sur le hash, on verra aussi comment réduire le besoin de stockage des tables arc-en-ciel.

Force brute (groumfff)

La dernière technique est celle de la force brute. On essaie toutes les combinaisons possibles. C’est la plus coûteuse en termes de calculs mais la moins coûteuse en termes de stockage.

Cette technique est la plus ancienne et c’est elle qui est à l’origine de l’idée de mettre des signes particuliers dans les mots de passe.

En effet, si l’attaquant utilise uniquement l’ASCII classique (c’est à dire l’alphabet latin plus des signes de ponctuations), avec les signes particuliers on est tranquille.

Mais, cela fait longtemps que les attaquants utilisent l’ASCII étendu (avec les majuscules et les accents) ou l’UTF-8 (tous les alphabets du monde : arabe, cyrillique, chinois…) pour tester tous les choix.

On contre cette technique en faisant des phrases de passe plus longues et bien sûr en utilisant l’alphabet complet (pas de « aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa »).

Cela augmente l’entropie (on expliquera ce qu’est l’entropie dans un prochain article) de votre mot de passe. Le français ayant des signes (lettres avec accents) en plus de l’anglais, l’entropie monte aussi grâce à eux.

Exemple :

« !Es_fr@mbo1ses » a une entropie de 72,1 bits ce qui le place comme fort (c’est pas mal pour la plupart des cas)

et

« L’Air de la reine de la nuit, la Flûte enchantée de Wolfgang Amadeus Mozart » a une entropie de 475,8 bits ce qui le place comme ultra-fort (inutile de préciser si c’est pas mal).

Plus l’entropie est grande, plus l’attaque prend de temps. Et le but c’est de faire perdre du temps à l’attaquant (pas en secondes, mais en années ou en siècles). Et bien sûr, avec le gestionnaire de mots de passe, profitez-en. Utilisez l’UTF-8 en prenant garde à la compatibilité.

L’attaque ciblée

L’attaque ciblée consiste à essayer de hacker un utilisateur spécifique.

Keylogger

Cette technique consiste à infecter l’appareil de l’utilisateur avec un outil qui récupère toutes les touches du clavier que l’utilisateur utilise. Donc si l’utilisateur tape son mot de passe, celui-ci est récupéré par l’outil.

Ce dispositif et le moyen de s’en défendre, sont en hors le sujet de cet article et ils seront le thème de plusieurs autres articles.

Ingénierie sociale

Par de l’ingénierie sociale, le hackeur peut récupérer votre mot de passe auprès de vos amis, votre famille ou vous-mêmes. Rappelez-vous, Jimmy Kimmel en anglais.

Tout d’abord, j’insiste. Ne partagez jamais votre mot de passe avec qui que ce soit. Beaucoup de services (y compris les emails) ont des outils pour partager des comptes sans partager des mots de passe.

Ensuite, c’est là que le gestionnaire de mots de passe intervient. Si vous-même ne connaissez pas votre mot de passe, le hackeur ne pourra pas le retrouver par cette technique.

Pour votre mot de passe maître, essayez des combinaisons de mots, une phrase que personne ne connaît.

Des outils pour les trouver

Oui, je sais. Pour ceux qui ont compris la référence dans les titres, j’ai du inverser des titres pour la cohérence de l’article.

Enfin, une fois que vous avez des mots de passe dans des services en ligne ou des appareils, il faut les surveiller, suivre leur cycle de vie.

Il faut vous assurer que votre mot de passe supprimé l’est réellement.

Durée de vie

Vous pouvez mettre une durée de vie à votre mot de passe. Je déconseille cette technique si vous n’êtes pas sûr de votre coup car cela va souvent à l’encontre du comportement naturel humain.

En effet, rapidement, vous mettez des mots de passe très peu différents des précédents ou vous ne les changez plus. Le comportement du service web, logiciel en cas de non renouvellement du mot de passe n’étant pas standardisé, des failles de sécurité peuvent apparaître.

Veille de failles

Il faut vous assurer aussi que votre mot de passe n’a pas été piraté. Dans ce cas, mettez en place des veilles.

Un bon service existe pour ça, il s’agit de haveibeenpwned de Troy Hunt. Vous pouvez faire une veille sur vos adresses email et si elles apparaissent dans des failles, le service vous le signale.

Ce service a même des outils pour l’intégrer dans votre site web/logiciel. Cependant, j’ai de sérieuses interrogations concernant le respect du RGPD (à voir dans un futur article).

Enfin, voici un compte Twitter à suivre en anglais, qui montre encore les difficultés à faire comprendre aux services web, logiciels, le bon fonctionnement des mots de passe :

https://twitter.com/PWTooStrong

Bon, j’ai annoncé pleins de futurs articles. Super, je me suis ajouté du boulot. Pfff…

Pour les développeurs, voici quelques conseils pour implémenter vos mots de passe.