Sha1 et md5 ne sont pas des algorithmes pour mot de passe, et ils sont beaucoup plus sensibles aux progrès en puissance des processeurs (et notamment des cartes graphiques) que Blowfish. L'article que tu cites date de 2007, entre temps on a découvert des problèmes dans l'algo de sha1 et la puissance des processeurs a énormément évolué. En 2007, l'informatique distribuée n'était pas encore aussi répandu, aujourd'hui tout le monde peut louer plusieurs centaines d'instances d'EC2 le temps d'effectuer les calculs de force brute... Et on ne sait pas ce qui va se passer dans 1 an, 5 ans ... L'intrus qui aura réussi à voler une base de données avec des mots de passes hashés et salés aujourd'hui pourra essayer de déchiffrer les mots de passe dans quelques années avec du matos encore plus puissant. Pourquoi ne pas utiliser dès maintenant un algorithme beaucoup moins sensible à la puissance du matos?
De plus, l'article conseille d'avoir un salt dépendant de l'utilisateur, ce qui est la chose à ne pas faire. Si on utilise sha1, il faut au moins que le salt soit généré de manière réellement aléatoire (comme tu le soulignes). Le problème c'est que générer un nombre aléatoire est extrêmement compliqué et que la plupart des fonctions de génération aléatoires de PHP ne sont pas réellement aléatoires. Donc, pour créer un bon salt, il faut déjà utiliser une bonne méthode de génération aléatoire.
Donc, stocker des mots de passe avec sha1 + salt exige beaucoup de savoir-faire, et la sécurité n'est pas garantie pour autant.
@Shinja: j'ai oublié ceci: quand tu dis "pour un site de petites annonces par exemple", cela sous-entend qu'il y a certains niveaux de sécurité acceptable pour certains sites et pas pour d'autres. Le problème est que la plupart des utilisateurs réutilisent les mêmes mots de passe un peu partout (ou utilisent des variantes de ces mots de passe), et on sait que les pirates vont toujours s'attaquer au maillon faible.
Partager