Projet IDAPA

Accueil > Ressources > SPIP > Mots de passe

Mots de passe

lundi 28 septembre 2009, par GUIGUE, SOULENQ

Nous allons vous exposer ce que nous avons appris sur les mots de passe.

Rédigé par Guigue Quentin et Soulenq Bastien.

On remarque tout d’abord que les mots de passe enregistrés dans SPIP sont cryptés et stockés dans la table "SPIP_auteurs", champ `pass`. Ce mot de passe est codé en MD5, moyen simple de sécuriser les mots de passe.

Le codage MD5 (Message Digest 5) à été créé par le cryptologue Ronald RIVEST. L’algorithme du MD5 a pour but de créer un résultat de 128 bits. Il n’est donc pas possible de trouver une fonction inverse du MD5 qui permettrait de le décoder.

Lorsqu’un mot de passe est crypté en MD5, il est stocké dans une base de données et lorsque l’utilisateur souhaite se connecter, le mot de passe qu’il rentre est converti en MD5. Ensuite, la chaine MD5 est comparée a celle de la base de données.

Nous sommes en droit de nous poser la question pourquoi ce codage et non pas celui du SHA-1. En effet, ce dernier créé un résultat de 160 bits, ce qui est donc plus difficile a décrypter.

Les mots de passe ne sont pas récupérables pour des raisons de sécurité. Si votre mot de passe ne fonctionne plus, si vous l’avez oublié, vous devez créer un nouveau profil.

Si l’on créer 2 profils avec le même mot de passe, la chaine MD5 est différente, ce qui permet donc de pouvoir connecter plusieurs utilisateurs avec le même mot de passe.

Cependant, des défaillances existent. En effet, les pirates utilisent des dictionnaires de chaine MD5 permettant de retrouver les mots de passe les plus courants

Comment casser un mot de passe :

Plus un mot de passe est simple, plus il est facile de le casser :
Si par exemple votre mot de passe est "bonjour" ou "542154", il sera plus facile à trouver que si c’est "gheghde5456hjgGGF !!!."

pourquoi ? :

Le premier ne contient qu’un seul type de caractères : que des lettres minuscules, que des chiffres et en plus le mot de passe a un sens. Alors que si il contient plusieurs types de caractères (minuscules, majuscules, chiffres, caractères spéciaux) il est plus difficile à retenir certes, mais plus sur. D’autant plus s’il n’a aucun sens logique.

Comment casser un mot de passe md5 ? :

Les mots de passes md5 étant crypté, dans la bases de données, on pourrait néanmoins, en déchiffrer certain si l’on possède leurs chaines md5 en les comparant. Pour cela il existe plusieurs méthodes.

La chaine MD5 étant irréversible, c’est à dire qu’il n’existe pas d’algorithme ou de fonction permettant de retrouver la chaîne d’origine à partir de sa chaine md5.

La seule méthode le déchiffrer, c’est de crypter un ensemble de chaînes de caractères. Ainsi, chaque chaîne cryptée sera comparée a celle recherché jusqu’à trouver la correspondance. Il existe principalement 3 méthodes qui sont la comparaison par :

- Brut force, qui consiste à générer toutes les combinaisons possible d’une chaîne pour une longueur donnée. Cette méthode est très longue.

- Dictionnaire, qui consiste à utiliser les mots d’un dictionnaire. C’est beaucoup plus pertinent, mais ça demande beaucoup d’espace et de temps.

- Rainbow table, qui consiste à la recherche d’empreintes. c’est un bon compromis entre le temps et l’espace, mais cela reste tout de même très long. Plusieurs tables peuvent être produites pour améliorer les chances de réussite. Les tables contiennent une grande quantité de chaînes qui proposent en alternance un mot de passe suivi de son empreinte.
Le but est de couper le mot de passe crypté de 128 bits en petites césures qui sont plus simples à déchiffrer à l’aide de la Rainbow-table. Ainsi, on déchiffre les petites césures puis on les recolle afin d’avoir le mot de passe entier déchiffré.

C’est pour cela qu’un mot de passe n’ayant aucune signification est un peu plus sûr.

Les relations dans la base de données

Nous remarquons que les logins et les mots de passe sont stockés dans la même table (spip_auteurs). Cela permet de ne pas avoir deux logins identiques. A contrario, il est possible d’avoir deux mots de passe identiques mais associés à deux logins différents. En effet, le fait que ces deux champs soient dans la même table les associent l’un à l’autre obligatoirement.

GUIGUE QUENTIN & SOULENQ BASTIEN