web-dev-qa-db-fra.com

Deux fichiers de firmware différents peuvent-ils avoir la même somme md5?

Deux fichiers binaires différents peuvent-ils avoir la même somme md5? Un fichier de micrologiciel binaire a un numéro de version différent et est marqué comme étant révisé, petit bogue corrigé. Mais les deux fichiers ont la même somme md5, je suppose que le fichier révisé ne peut pas avoir la même somme md5 - cela peut-il être une erreur?

7
minto

Ce que les réponses existantes ne soulignent pas, c’est pourquoi une collision est considérée comme absolument infaillible dans ce cas.

Comme tout algorithme de hachage, MD5 a été délibérément conçu pour éviter les collisions si vous ne modifiez que quelques caractères. Vous devez changer la plupart sinon la totalité pour pouvoir revenir au même hash. En effet, l’intérêt d’un hachage est de détecter les erreurs d’un bit (ou de quelques bits); dans ce domaine problématique, vous voulez que les plus petites modifications déclenchent définitivement un changement de hachage. Bien que nous sachions maintenant que le MD5 est défectueux, cette propriété est valable à ce jour.

Donc, à moins que la nouvelle version du micrologiciel soit complètement différente , et à moins que vous ne veniez d'assister à un événement unique phénomène, les chances sont énormes que vous avez simplement reçu l'ancienne version à nouveau. Félicitations, car il s’agit du processus de contrôle de hachage qui fonctionne exactement comme prévu. :)

Bien sûr. La vulnérabilité de collision de MD5 est bien connue (voir Crypto.SE , Wikipedia ). Même s'il s'agit toujours d'un événement à faible probabilité, cela peut être fait. Cependant, dans votre cas, je suspecterais une erreur dans la copie des fichiers.

19
muru

Généralement, deux fichiers peuvent avoir le même hash md5 uniquement si leur contenu est exactement le même. Même un seul bit de variation générera une valeur de hachage complètement différente.

Il y a cependant une mise en garde: Une somme de md5 est de 128 bits (16 octets). Étant donné que le nombre de contenus de fichiers différents possibles est infini et que le nombre de sommes différentes md5 possibles est fini, il existe une possibilité (bien que de faibles probabilités dans la plupart des cas) de collision de hachages. En d'autres termes, deux fichiers différents peuvent produire la même somme lorsqu'ils sont hachés avec md5.

Pour cette raison, il est parfois préférable d’utiliser un hachage plus élevé (plusieurs sorties possibles), afin de réduire la probabilité (déjà faible) de collision accidentelle de hachage et d’accroître la difficulté de créer une collision délibérée de hachage par la force brute.

Les exemples de hachages de bits supérieurs incluent la famille de hachages SHA-2, en particulier sha256, sha384 ou sha512 (qui est le meilleur.) Le nombre après shaindique le nombre de bits générés par l'algorithme de hachage correspondant.

11
heemayl

Comme d'autres l'ont déjà dit, une collision MD5 est hypothétiquement possible mais extrêmement invraisemblable (1 chance sur 2128 est seulement une chance sur 340 282 366 920 463 473 473 473 473 473 473 473 473 473 473 473 473).

Je vous recommande de faire une comparaison octet par octet des deux fichiers, en utilisant l'une des nombreuses méthodes décrites ici: https://superuser.com/questions/125376/how-do-i-compare- binary-files-in-linux .

Ou simplement diff file1 file2 - et sauf si vous obtenez le message "Les fichiers binaires fichier1 et fichier2 diffèrent", les fichiers sont identiques.

3
Dewi Morgan

Toutes les réponses ci-dessus ignorent le détail le plus important:

Une somme de contrôle MD5 est définie comme ayant 128 bits. Cela signifie qu'il n'y a que 2 ^ 128 valeurs MD5 différentes. Combien d'images de firmware différentes sont possibles? Cela dépend de leur taille et du pourcentage de séquences d’octets aléatoires pouvant être considéré comme un microprogramme valide. Les chances sont cependant, il y a plus de 2 ^ 128 images de firmware possibles.

Un lot plus, ce qui signifie qu'il doit être dupliqué.

Mais, la chance de toute donnée image du firmware correspondant à une donnée somme de contrôle MD5 est seulement 1 sur 2 ^ 128, ce qui est un très petit nombre.

TRÈS petit.

Par exemple, la probabilité que deux développeurs créent accidentellement des images différentes ayant le même total de contrôle MD5 à tout moment de l'existence de la civilisation humaine est trop petite pour vous. se préoccuper de.

C'est accidentellement . Délibérément est une question différente. Si vous travaillez pour la NSA, 128 bits ne constitueront pas une sécurité suffisante pour satisfaire vos supérieurs, et MD5 présente des vulnérabilités connues qui le rendent plus faible que 128 bits.

Mais si vous travailliez pour la NSA, vous le saviez probablement déjà.

1
Solomon Slow

Très improbable mais possible. Vérifiez la taille du fichier et les dates pour plus d'informations. Si les fichiers sont différents, il serait encore plus improbable qu'ils aient la même taille et le même hash.

0
Gringo Suave