Ludovic Frank - Développeur indépendant

Pourquoi ne pas utiliser plusieurs fois le même mot de passe ?

ionicons-v5-k Ludovic Frank 16/Feb/2021
Logo vague
39 lectures Niveau :

C’est une pratique très répandue, c’est compréhensible, des dizaines, voir des centaines de mots de passe différents c’est à retenir, c’est compliqué.

Néanmoins, il faut savoir que c’est une très mauvaise pratique qui peut un jour ou l’autre se retourner contre vous et, comme mon dit, il vaut mieux prévenir que guérir.

Comment sont entrgistrés les mots de passe sur les sites et applications ?

Avant de comprendre pourquoi c’est une mauvaise idée d’utiliser le même mot de passe partout il faut comprendre comment et/ou sont enregistrés vos mots de passe.

Que se passe-t-il lorsque l’on s’inscrit sur un site internet ?

Lors de l’inscription sur un site internet ou une application vous remplissez vos informations et il y a toujours le moment du mot de passe, vous fournissez le mot de passe que vous souhaitez, afin de vérifier que le mot de passe soit le bon lors de vos prochaines connexions il est nécessaire que le site l’enregistre dans sa base de données afin de vous reconnaitre plus tard.

Si le site est conçu correctement, il ne peut normalement pas connaitre votre mot de passe… mais ce n’est pas toujours le cas. Avant d’enregistrer votre mot de passe, un logiciel conçu correctement fait ce que l’on appelle du « hachage » avec votre mot de passe.

Qu’est-ce que le hachage de mot de passe ?

Le hachage consiste à utiliser un algorithme afin de transformer votre mot de passe de manière irréversible (et par conséquent destructive), le résultat de la transformation s’appelle un « hash » (oui c’est un mot anglais).

Grossièrement ça veut dire qu’il est possible de retrouver facilement le « hash » d’un mot, mais que si vous avez que son « hash » vous ne pouvez pas retrouver le mot.

Par exemple si l’on transforme le mot « Ludovic » en utilisant l’algorithme de hachage SHA-1, cela donne ça « 7eb3f2fd9d46241cc43fdea76bafc026a80f7b12 », c’est de toute beauté n’est-ce pas ?

Ici j’ai pris une méthode de hachage très simple, il en existe de bien plus évolués, mais cela vous permet de voir à quoi ressemble votre mot de passe enregistré dans une base de données.

Il n’est normalement pas possible de savoir que « 7eb3f2fd9d46241cc43fdea76bafc026a80f7b12 » correspond a « Ludovic » (bon, bah là, vous le savez maintenant … ) sauf qu’en fait s’il y a des méthodes …

Le hachage de mot de passe est-il infaillible ?

Non, voilà comme ça, c’est dit !
Pour hacher un mot de passe il y a plein de méthode (d’algorithme en fait), cela évolue avec le temps, par exemple dans les années 2000 le plus courant était l’algorithme md5, qui permettait de faire du hachage de mot de passe sauf qu’aujourd’hui il ne doit surtout plus être utilisé, en effet il est plus sûr du tout, car il est facilement possible de retrouver le mot auquel un « hash » md5 correspond, et cela de deux façons : le « brute-forcing » et les bases de données de  « hash ».

Qu’est-ce que le brute-forcing sur un « hash » ?

En fait, plus le temps passe, plus la puissance de calcul dont nous disposons évolue, lorsque le md5 était le standard nos ordinateurs et les serveurs étaient capables de faire bien moins d’opérations par seconde sauf qu’aujourd’hui les machines n’ont plus rien à voir avec ce qu’elles étaient a l’époque (imaginez, le smartphone dans votre poche est bien plus puissant que de gros serveurs des années 2000, c’est dingue, non ?).

La méthode de force brut est très simple, on connait le « hash », on cherche le mot d’origine, du coup on entre le « hash » dans un ordinateur et il teste toutes les combinaisons de lettres possibles, il pratique le « hachage » sur ces combinaisons, il regarde le résultat de l’opération et le compare au « hash » que nous connaissons. Si les deux correspondants … il a trouvé le mot de passe.

Et là, vous vous dites « oui, mais il ne doit pas pouvoir faire beaucoup de tests à la seconde … » en fait, c’est là que c’est drôle, en 2008 un processeur graphique pouvait faire 350 … millions de teste par seconde, donc imaginez aujourd’hui…

De plus, les ordinateurs quantiques, de par leurs fonctionnements, feront dans le futur exploser le nombre de tests possible par seconde

Qu’est-ce qu’une base de données de « hash » ?

Avec le temps et technique de de brute force de grosse base de données d’une taille se comptant en dizaine voir centaines de giga-octets de correspondance « hash » et « mot de passe » se sont crée, l’utilisation des ces bases est très simple, il suffit de fournir le « hash » et si le résultat correspondant se trouve dans la base de données le mot de passe s’affiche en quelques millisecondes.

Comment mieux protéger les « hash » ?

Pour commencer les algorithmes de « hash » évoluent dans le temps, j’ai volontairement pris md5 comme exemple ci-dessus, car aujourd’hui il est clairement obsolète.

La méthode du grain de sable.

Et là, vous vous dites « C’est quoi ça, on met du sable sur le serveur ? », mais non pas vraiment en fait, mais c’est une idée comme une autre après tout.

L’idée est de complexifier le mot d’origine en y ajoutant des caractères, ces caractères, c’est ça le grain de sable.

Si par exemple on prend le mot « Ludovic » comme on l’a vu précédemment il est très facile de retrouver ce mot de passe.

Imaginons maintenant qu'avant de « hash » le mot on y rajoute des caractères avant et après, par exemple « $25b6_Ludovic_wC3bi# », on retrouve le mot de passe au milieu et avant et après nous rajoutons des caractères, ce qui rend « mot d’origine » bien plus complexe et donc bien plus difficile a retrouvé.

Maintenant que vous savez comment est enregistré un mot de passe, il faut passer à la seconde partie du problème, normalement, une base de données n’est pas publique … mais parfois il y a des « fuites de données »

Les fuites de bases de données.

Cela arrive et plus souvent qu’on ne le croit, à l’heure de l’écriture de cet article il y a beaucoup d’actualité sur internet sur une base de données de 3 milliards d’adresses e-mail et de mots de passe Gmail qui ont fuité.

Les fuites c’est souvent le résultat d’un piratage de site ou application.

Cela veut dire que la base de données des « hash » de ces mots de passe est dans la nature. Du coup en fonction de l’algorithme utilisé pour le « hash » il est plus ou moins facile pour des personnes non autorisées de retrouver les mots de passe.

Et si vous utilisez le même mot de passe à plusieurs endroits ?

Eh bien, c’est simple si une des bases de données contenant votre mot de passe (« haché » ou non, car certaines entreprises ont encore des mots de passe en clair dans leurs bases) finit par fuiter.

La ou les personnes qui auront accès à cette base auront votre adresse e-mail et votre mot de passe, voyez-vous le problème si vous l’utilisez ailleurs ? La ou les personnes qui auront accès à la base de données qui a fuité auront donc accès à un mot de passe que vous utilisez à plusieurs endroits et donc à plusieurs comptes.

Comment se souvenir de tous ses mots de passe ?

Avoir plein de mots de passe, c’est bien pour la sécurité comme cet article l’a expliqué.

Maintenant, comment faire pour se souvenir de tous ses mots de passe et en avoir un différend par service ?

C’est très simple, il existe ce que l’on appelle des gestionnaires de mot de passe et le truc cool c’est qu’il y en a des gratuits, comme Keepass, ce n’est pas cher du coup.

Un gestionnaire de mot de passe se souvient de vos mots de passe pour vous, vous utilisez ce que l’on appelle un mot de passe maitre, que seuls vous connaissez.

Ce mot de passe maitre est utilisé pour chiffrer votre base de données de mot de passe, du coup un mot de passe maitre fort est recommandé.

(Il est possible d’utiliser des clefs en plus du mot de passe maitre, mais je souhaite garder les choses simples dans cet article)

Conclusion

Dans cet article j’ai essayé de vulgariser un maximum afin de démontrer clairement pourquoi utiliser le même mot de passe à plusieurs endroits pose un vrai problème de sécurité, mais exposer un problème c’est bien, fournir la solution c’est mieux !