Dual Blog : DeFr's Weblog

Algorithmes de hashage : interet et petit point sur md5 | dimanche 17 avril 2005, 21h36

Mood: Goggle

Les personnes faisant beaucoup de téléchargement ( non, je ne vise personne en particulier :p ) auront sans doute déja rencontrés au moins une fois, offert en même temps que le telechargement du logiciel, un lien vers un fichier nommé md5sum, ou un nom approchant... Avec la grande interrogation : mais qu'est-ce que j'suis supposé en faire ? En effet, le fichier md5, s'il présente l'avantage de se télécharger très rapidement, n'a aucune utilisé en soit, il ne contient que du texte. Il n'est d'ailleurs pas utile au fichier que l'on veut télécharger non plus, puisqu'on peut parfaitement lancer ce qu'on a téléchargé sans avoir pris la peine de choper le md5, et ca fonctionne. Alors, quelle lubie a donc pris les informaticiens de distribuer deux fichiers quand un seul aurait suffit ?

En réalité, la réponse est simple : l'idée du fichier md5, c'est qu'il constitue en quelque sorte la signature du fichier qui a été mis en ligne par le webmaster. L'interet net pour le visiteur est donc situé à deux niveaux. Le premier est plus historique que réellement pratique : quand j'étais jeune ( ;-) ) il arrivait que, sans raison apparente, le téléchargement est un problème, et qu'un ou deux octets du fichier téléchargé ne soient pas les mêmes que ceux du serveur. La signature du fichier permet alors de se rendre compte du problème, et de recommencer le téléchargement. Cela dit, je dois avouer que ce genre de problème ne m'est plus arrivé depuis des lustres, et je ne pense pas être le seul dans ce cas. Comme la prolifération des signatures md5 est relativement récentes, il y a donc une autre explication : le deuxieme effet KissCool ( désolé pour ceux n'ayant pas vu la pub, j'sais pas si ca passe partout dans le monde ) de distribuer les signatures en même temps que les fichiers, c'est qu'on se previent alors en partie d'éventuelles attaques contre le serveur. Certes, ca ne va pas miraculeusement renforcer la sécurité d'Apache, mais la présence de la signature permet de vérifier que le fichier que l'on télécharge est celui prévu par le webmaster, et non pas un fichier qui aurait été placé là par un cracker mal veillant.

Cependant, d'une facon plus générale, md5 designe un algorithme, d'une catégorie bien particuliere, appellée algorithme de hashage. Le but d'un tel algorithme est de fournir, pour un fichier ou texte donné, une représentation quasi-unique sous la forme d'une chaine de caractère, de longueur tout à fait acceptable. C'est cette chaine de caractère qui constituera la signature obtenue, et qui, comme une signature traditionelle, doit théoriquement permettre d'être sur et certain que la personne que vous avez en face de vous est bien qui elle prétend être. Et, comme dans la vraie vie, la signature est beaucoup plus facile à traiter que l'individu tout entier : imaginer qu'au lieu de comparer votre signature à celle qui figure sur votre carte d'identité, ou n'importe quel papier, l'on doive, lorsqu'on veut vérifier votre identité, faire venir spéciallement des gens qui puissent formellement vous identifier ; certes, les différents points de ventes gagneraient alors en convivialité, mais on se retrouverait quand même séverement ralenti. La même chose s'applique aux fichiers electroniques : il est beaucoup plus simple de manipuler un texte de 50 caractères qu'un fichier qui fait 600Mo.

Si l'analogie s'arreterait là, les informaticiens seraient très contents, ayant un système leur permettant d'identifier de facon simple et unique leurs fichiers. Tout le monde croyait d'ailleurs que c'était le cas, jusqu'à ce que des chercheurs chinois viennent appuyer là ou ca fait mal, sur le quasi du quasi-unique énoncé précédement. Continuons de filer la métaphore : ce que ces chercheurs ont démontrés, c'est qu'ils pouvaient, sans trop de difficulté, trouver deux personnes distinctes capables d'effectuer la même signature. A priori, aussi bien d'un point de vue humain qu'informatique, l'information peut paraitre anodine. Ils ont cependant démontrer que ce n'était pas le cas, en exposant divers couples d'individus totalement antagonistes. Ainsi, vous pouviez très bien signer un contrat avec un individu tout à fait respectable, et vous retrouvez en fin de compte avec une personne inapte sur les bras, sans pouvoir démontrer la moindre fraude puisque ces deux là, aussi étrange que ca puisse paraitre, possède exactement la même signature.

L'impact reste toutefois, à mon sens, à relativiser. On entend parfois md5 a été cassé, il ne faut plus du tout l'utiliser, c'est pas sur !. Je n'irais nettement pas jusque là. Certes, les chercheurs ont montrés que l'algorithme était moins sur que ce que l'on pensait. Toutefois, le point important à bien considéré dans l'analyse, c'est que ce qu'ils ont trouvés, c'est qu'il était possible de trouver deux individus ayant la même signature, si on les cherche en même temps. Par contre, il est toujours impossible de trouver une personne pouvant contrefaire la signature d'une personne donné. L'analogie devenant un peu complexe, nous allons donc revenir dès le paragraphe suivant sur du concret, pour comprendre ce que ca signifie réellement.

Ce qui a été trouvé, c'est qu'il est possible, pour une personne, de créer deux documents PDF qui auront au final la même signature. C'est embettant dans le sens ou l'on peut alors faire approuver un des fichiers, puis le remplacer par le deuxieme fichier PDF... Cependant, ce qu'il n'est toujours pas possible de faire, c'est de se faire envoyer un document en PDF, dire "pas de problème" puis essayer de créer à partir de là un autre document PDF. Pour résumer en une phrase : on ne peut exploiter la faille découverte dans md5 que si on est l'auteur du document original.

Dans un bon nombre de cas, cette différence est cruciale. Exemple un peu simpliste, mais qui permet à mon sens de bien comprendre : un certain nombre de sites webs utilisent md5 pour crypter les mots de passes des utilisateurs. Dans ce cas, l'utilisation de md5 est encore une valeur sure. En effet, on se trouve typiquement dans un cas ou le fichier initial ( ici, le mot de passe de l'utilisateur ) a été défini à l'avance. Il est donc toujours - pour le moment du moins - impossible de trouver dans un temps raisonable un autre mot de passe qui aurait la même signature.

Pour conclure, je dois donc dire que si de nouvelles générations d'algorithme de hashage sont les bienvenues, l'utilisation de md5 reste encore possible pour quelques temps encore, à condition de bien avoir en tête dans quelles conditions on peut le considérer encore aujourd'hui comme un algorithme de hashage sur, et les conditions dans lesquels il faut commencer à se méfier beaucoup plus sérieusement de l'impact que l'algorithme pourrait avoir

Revenir au blog
Vous souhaitez ajouter un nouveau commentaire ? Faites donc, il vous suffit de remplir le petit formulaire ci-dessous.
Sites visités