Brèves de sécurité

Un blog regroupant des articles courts, des brèves, des anecdotes, sur le thème de la sécurité informatique.

Thursday, November 10, 2005

Le hash en péril?

Pas de blagues sur la drogue svp, ce serait trop facile.

Les fonctions de hash font partie de la cryptographie utilisée couramment pour tout type d'applications informatique. L'authentification d'un mail, la vérification de mot de passe, la vérification d'intégrité, etc. sont autant d'applications dont la sécurité repose sur la sécurité des fonctions de hash.

Seulement cette confiance absolue dans le hachage commence à se fissurer. MD5 est depuis quelques temps un algorithme de hachage auquel on ne peut plus se fier. Pourtant il est encore utilisé pour des taches courantes dans nos OS. SHA-1, considéré comme le standard des fonctions de hash actuellement, est en passe de se retrouver dans la même situation.

MD5 est par exemple utilisé pour vérifier la validité des packages téléchargés. Depuis qu'on a trouvé des collisions dans MD5, on a pu créer des pages web différentes avec la même somme MD5 (regardez ça et ça, puis faites en la somme MD5 pour rire... plus de détails dans cette présentation[en]). Cette astuce a été modifiée pour s'appliquer à deux applications différentes qui ont la même somme MD5 (article[en]). Cette menace est à tempérer cependant : si on a deux applications au comportement différent (une normale, et une maligne) et qui ont la même somme, il n'en reste pas moins que ces deux applications doivent contenir à la fois le code normal et le code malin (lisez la présentation ou l'article, vous comprendrez ^^). Pour exploiter vraiment cette faille, il faudrait qu'une personne mal intentionnée publie un programme A (normal), gagne la confiance des utilisateurs, puis le change en un programme B (avec md5sum(A)==md5sum(B)) qui lui, serait un programme malin. Gageons qu'un programme répandu et sensible au niveau sécurité serait analysé et audité, et que la supercherie ne tiendrait pas longtemps (le programme A, censé être correct, contient le code malin, rappelons-le).

Quant à SHA-1, qui est déjà couramment utilisé pour l'authentification et la vérification d'intégrité des communications (la plupart des VPNs récents l'utilisent), sa robustesse aux attaques s'est vue considérablement réduite grâce à la recherche de cryptographes acharnés (article[compliqué]).

Enfin, des initiatives de base de données de hash des mots de passes les plus courants apparaissent pour exhiber la faiblesse de la protection habituelle par mot de passe (article[en]).