MD5 semble avoir des vulnérabilités bien documentées et pourtant il reste répandu dans son utilisation. Quelqu'un a-t-il des raisons pour qu'il reste une option viable lorsque d'autres alternatives (par exemple SHA-2) semblent être plus robustes?
MD5 semble avoir des vulnérabilités bien documentées et pourtant il reste répandu dans son utilisation. Quelqu'un a-t-il des raisons pour qu'il reste une option viable lorsque d'autres alternatives (par exemple SHA-2) semblent être plus robustes?
Réponses:
Il est rapide à générer, et souvent le fait que les collisions sont théoriquement possibles n'est pas un problème énorme. c'est-à-dire vérifier si un fichier mis en cache a changé afin d'éviter de télécharger une nouvelle copie.
Un benchmark rapide réalisé en 1996 montre ce qui suit:
Digest Performance in MegaBytes per Second
Pentium P5 Power Mac SPARC 4 DEC Alpha
90 MHz 80 MHz 110 MHz 200 MHz
MD5 13.1 3.1 5.1 8.5
SHA1 2.5 1.2 2.0 3.3
Pour une utilisation moderne - sur des puces intégrées, le MD5 peut être 2 à 3 fois plus rapide à produire que le SHA1 pour les mêmes informations.
Un hachage MD5 est "assez bon" pour la plupart des tâches subalternes. Rappelez-vous qu'il est toujours incroyablement difficile de produire des collisions significatives dans le même nombre d'octets.
Par exemple, supposons que vous téléchargiez le nouveau Ubuntu 9.10 la semaine prochaine à partir d'un miroir de confiance. Vous souhaitez vérifier que le fichier a été téléchargé correctement et complètement. Lancez simplement MD5 et hachez l'ISO. Comparez le hachage avec le hachage publié. Si les hachages correspondent, vous pouvez être sûr que l'ISO a été copié correctement et complètement.
et la sécurité peut être améliorée en la salant.
MD5 est largement utilisé comme fonction de hachage de somme de contrôle car il est rapide et présente un taux de collision extrêmement faible. Une somme de contrôle MD5 est composée de 32 chiffres hexadécimaux qui fournissent ensemble une chance de collision de 1 à ~ 3,42e34. Vous pourriez théoriquement hacher tous les fichiers de tous les ordinateurs d'un pays de la taille des États-Unis et ne pas produire de collision (*).
Pour la cryptographie, MD5 est une alternative valable si la sécurité n'est qu'une préoccupation modérée. C'est une option très viable pour hacher les mots de passe de base de données ou d'autres champs nécessitant une sécurité interne principalement pour sa vitesse, mais aussi parce que MD5 offre un niveau de sécurité raisonnable où un cryptage fort n'est pas un problème.
(*) pour la plupart des objectifs de somme de contrôle, une collision n'a de sens que si elle se produit entre deux objets d'origines similaires et de même taille. Malgré une forte probabilité d'unicité MD5, des collisions pourraient éventuellement se produire entre deux fichiers très distincts. Disons, un fichier de base de données de 1,5 Mo et un fichier gif de 35 Ko. Dans la plupart des cas, il s'agit d'une collision dénuée de sens. D'autant plus que MD5 n'est qu'un élément de l'indexation des fichiers. La taille du fichier étant un autre important.
MD5 est largement utilisé car il a été largement utilisé, et les ruptures ne sont pas encore suffisamment importantes pour être un problème évident dans les systèmes existants.
sha256sum filename.iso
au lieu demd5sum filename.iso
?