Aller au contenu
Télécharger Firefox 2

Histoire de graine : quand le MD5 ne suffit plus

Les temps changent. Il est fini l'époque où pour protéger les informations il suffisait de les crypter avec MD5 afin de les stocker en base de données.

Petit retour sur le sujet pour ceux qui n'étaient pas au Forum PHP et qui n'aurait pas pris connaissance des slides (et bientôt les résumés audio) de Louis et Nicolas.

Il existe des collections de hash couvrant plusieurs langues et correspondants à des mots les plus courts. Pour compliquer la tâche des personnes mal intentionnées il peut être utiliser d'utiliser ce que l'on appelle une graine.

L'utilisation en est simple, comme nous le rappelle cet article sur Nexen :

Pour corriger cela, il faut personnaliser le MD5, en ajoutant un grain de sel : au lieu de stocker md5( 'nexen' ), on peut ajouter une autre chaîne de caractère, et stocker md5( 'prefixe'.'nexen'.'suffixe' ); Comme vous choisissez le préfixe et le suffixe, vous rallongez le mot utilisé pour la signature (mais pas la signature), et vous pourrez ainsi échapper aux bases de données de MD5.

Alors, c'est une arme supplémentaire à ajouter à votre batterie de solutions. Elle ne vous garantira pas d'être à coup sûr protégé, car comme vous le savez tous, la sécurité est continuellement à remettre en question.

via.


Commentaires


[#1] Commentaire rédigé le Lundi 26 Novembre 2007 à 12:26 par giz404

Pas mal, l'idée ! Et assez simple à mettre en oeuvre :)

[#2] Commentaire rédigé le Lundi 26 Novembre 2007 à 12:49 par Damien

Il me semble que le CMS Spip utilise déjà un principe similaire, avec un "alea" pour chaque membre qui s'ajoute au pass. Il est même différent pour chaque auteur et change régulièrement :)

[#3] Commentaire rédigé le Lundi 26 Novembre 2007 à 14:11 par glooze

Attention, md5 ne crypte pas, il hashe. C'est pas tout à fait la même chose, hein.

Sinon, c'est comme d'habitude : une solution conne qui marche super bien. C'est pas comme si vous aviez l'habitude, avouez-le :)

[#4] Commentaire rédigé le Lundi 26 Novembre 2007 à 14:57 par Loïc

Meme commentaire que Glooze :
Le md5 n'a jamais servi a crypter mais à controler l'intégrité d'une donnée ;-)

[#5] Commentaire rédigé le Lundi 26 Novembre 2007 à 16:13 par Eric

Il faut surtout éviter de réinventer la roue.

Vous ne devriez *pas* utiliser md5 pour hacher les mots de passe. Il y a une super fonction nommée crypt(), qui fonctionne presque partout.

Elle comporte une graine aléatoire de base. Elle sait générer la graine aléatoire probablement mieux que vous pour éviter qu'elle soit prévisible ou identique chez tout le monde. Elle sait utiliser md5 en interne mais encore mieux elle a un système de fonctions interchangeables pour rester compatible avec les anciens systèmes DES tout en proposant un hachage sha1 chez ceux qui peuvent.

Tout est géré en interne, côté système. Le jour où un algo devient trop facilement cassable, la fonction de hachage par défaut sera changée sur le système, sans rien changer dans votre code ou dans votre configuration.

Mieux encore, votre base de mot de passe deviendra d'un coup compatible avec les bases de mots de passe unix (celles des .htpasswd, celle des mots de passe système, etc.).

[#6] Commentaire rédigé le Lundi 26 Novembre 2007 à 16:19 par Thanh

Merci Eric pour ces éclaircissements :)

[#7] Commentaire rédigé le Mardi 27 Novembre 2007 à 17:11 par Gérald

Sinon, le "SHA256" est implémenté en natif depuis PHP5.1.2 par l'intermédiaire de la méthode "hash". Cet algo est je crois le plus sécurisé du moment..... à en croire les outils de signature électronique que j'ai eu l'occasion de côtoyer dernièrement.

Dans le code PHP, ça donne
hash('sha256', 'Une chaine de hashage qu elle est bien');

[#8] Commentaire rédigé le Mardi 27 Novembre 2007 à 19:16 par Fred

Salut Thanh :-)

Pour ma part, j'ai retenu la leçon d'Antoine Caillau sur le md5.
http://antoine.media-box.net/index.php?post/quand-...
http://antoine.media-box.net/index.php?post/le-has...

et il existe aussi un, SHA256 pour PHP4 (faire une recherche Google pour avoir des liens actualisés sur 'SHA256 static class for PHP4')

Fred

L'ajout de commentaire a été désactivé pour ce billet.

Trackbacks

Pisteurs vers ce billet (trackbacks entrant)

Il n'y a pas encore de pisteurs pour ce billet.

Pistés par ce billet (trackbacks sortant)

Il n'y a pas encore de pisteurs effectué par ce billet.


A propos du billet

  • Auteur : Thanh
  • Thématique :
    Développement, PHP
  • Publié : Lundi 26 Novembre 2007 à 11h21
  • Nombre de lectures : 613
  • Nombre de commentaires : 8
  • Ping : Les trackbacks sont fermés.
  • Tags :
Avatar de Thanh

Raccourcis

Rechercher un billet

Sous Rubriques

Photo Pif

Photopif