web-dev-qa-db-fra.com

Quand les gens disent qu'un fichier a un hachage de MD5 vérifié, qu'est-ce que cela signifie exactement?

ok je lisais juste ce site: http://www.zdnet.com/blog/bott/stay-safe-online-5-secrets-Every-pc-and-mac-Owwey-Should-knownkknow/ 3542? PG = 4 & Tag = Mantle_skin; Conten

et pensé à quelque chose que j'ai toujours voulu demander mais jamais fait.

quand les gens disent qu'un fichier a un hachage de MD5 vérifié, qu'est-ce que cela signifie exactement? Ont-ils sérieusement dissolvant le programme en bits et faire un hash sur les bits?

7
Pacerier

Lorsque les gens disent qu'ils ont vérifié que le hachage de MD5 du dossier est en fait la même chose que l'hôte du fichier indique que le hachage devrait être. S'ils sont les mêmes, vous savez que rien n'a gâché le fichier entre les deux.

Comment cela se fait dans la pratique est simplement d'exécuter un outil comme MD5Sum (Wikipedia) sur le fichier que vous avez téléchargé et comparez-le contre ce que l'hôte dit que la somme du MD5 devrait être. Habituellement, les fournisseurs de fichiers partagent la somme MD5 sur leur page, faciles à accéder à l'endroit où vous l'avez téléchargée.

Cela augmente la sécurité sachant que personne n'a altéré le fichier sur le réseau et que le référentiel où le fichier est stocké n'a pas été altéré. Cependant, la somme n'est inutile si le site Web vous indique que le MD5 a été compromis.

6
Chris Dale

L'idée du hachage MD5 est qu'il s'agit d'un hachage de l'ensemble du fichier - qui sera différent si un bit est modifié. Je ne sais pas ce que vous entendez par "le dissoudre dans des bits" car c'est tout un fichier est - une série de bits.

Lorsque vous téléchargez un fichier, vous pouvez obtenir le hasch MD5 sur votre propre ordinateur et la comparer que vers le MD5 fournies en ligne, vous pouvez vous assurer que vous disposez du fichier correct et non modifié.

Regardez cette question sur la valeur d'un hasch d'un fichier.

9
Rory Alsop

quand les gens disent qu'un fichier a un hachage de MD5 vérifié, qu'est-ce que cela signifie exactement?

Juste pour être clair, l'article de votre lien mentionne des signatures numériques et présente une section montrant une figure avec une valeur MD5.

Les signatures numériques et les hachages MD5 sont des choses différentes.

MD5 est un algorithme qui génère une valeur de hachage cryptographique. MD5, comme d'autres fonctions de hachage cryptographiques, prend comme entrée une séquence de bits et produit une sortie de taille fixe quelle que soit la taille de l'entrée. La séquence des bits peut être un fichier. Pour la simplicité, à partir de maintenant, je vais simplement utiliser le fichier au lieu de séquence de bits.

Lorsque vous souhaitez vérifier si vous avez le même fichier, une autre personne dispose, vous pouvez générer un hachage de MD5 du fichier et comparer à un hachage de MD5 L'autre personne a créée.

Avertissement: L'exemple suivant est insécurisé et est juste pour l'illustration!

Alice envoie BOB un fichier:

  • Alice calcule un hachage de hash_alice de MD5 pour File_a
  • BOB demande à Alice de l'envoyer File_a
  • Alice Envoyer File_a à Bob
  • BOB reçoit File_a
  • Bob calcule un hash hachard_bob pour file_a

Si hash_bob est identique au hash_alice, le fichier BOB Recieve est le même fichier envoyé par Alice. Bob a vérifié le hachage de MD5 pour vérifier qu'il a reçu le fichier correct.

Supposons maintenant que Mallory est un attaquant et veut donner un virus BOB un virus. Elle a la capacité de surveiller les échanges et d'intercepter des fichiers.

  • Alice calcule un hachage de hash_alice de MD5 pour File_a
  • BOB demande à Alice de l'envoyer File_a
  • Alice Envoyer File_a à Bob
  • Mallory Incercepte File_a de Alice
  • Mallory copie son fichier de virus file_v et renommé fichier_a
  • Mallory Envoyez son fichier de virus File_a à Bob
  • BOB reçoit File_a
  • Bob calcule un hash hachard_bob pour file_a

Maintenant, Hash_Bob ne devrait pas être identique à hachage, et Bob devrait se rendre compte que quelqu'un a envoyé le mauvais fichier.

si le programme a plusieurs fichiers, comment allons-nous informer le hachage de MD5 unique pour ce programme?

Pour chaque fichier dans le programme, vous calculez une valeur de hachage.

Si j'ai: Main.exe libabc.dll version.txt et iconabc.gif

Je calcule hash_main.exe, hash_libabc.dll, hash_release.txt et hash_iconabc.gif

Chaque valeur de hachage doit être unique.

Section intermédiaire:

Le problème avec le premier exemple est qu'il ne montre pas comment Bob obtient Hash_alice afin qu'il puisse le comparer avec hayph_bob. Si hash_alice est envoyé de la même manière que le fichier_a un attaquant le modifierait la similarie à la manière dont Mallory a fait dans le deuxième exemple.

Il existe deux solutions de base au problème: utilisez un canal sécurisé (ou hors bande) pour envoyer le hachage ou avoir la signature du hasch par un certificat de confiance (crédit @nealMCB ici). Hors de bande signifie en utilisant un moyen de transmission physique différent. Un exemple de bande hors bande serait d'imprimer la valeur de hachage et de l'envoyer par courrier postal. Channel sécurisé signifie utiliser quelque chose comme un réseau privé virtuel (VPN) ou IPSec.

Le problème avec le hachage signé est que BOB a besoin du certificat d'Alice afin de vérifier la signature. Si Alice envoie le certificat à Bob de la même manière qu'elle envoie le fichier, le certificat pourrait être intercepté comme le fichier (crédit @NealMCB ici).

Réflexions sur la transmission:

Si vous pensez aux deux solutions pendant une minute, vous pouvez trouver une question.

Si j'ai un canal sécurisé pour envoyer le hachage, pourquoi n'a-t-je pas utiliser le même canal pour envoyer le fichier?

Les raisons pour lesquelles vous utiliseriez l'Internet normal pour envoyer le fichier et un canal sécurisé pour envoyer le hachage:

  • Le canal sécurisé est très lent (c'est-à-dire un numéro de dialup) et le hachage est courte de sorte qu'il transfère rapidement, mais le fichier est grand et prendrait trop de temps.
  • Le canal sécurisé est cher. Soit vous êtes chargé de temps utilisé ou d'octets transférés.
  • Le propriétaire du canal limite votre utilisation du canal sécurisé pour uniquement envoyer ou recevoir des haubans.
3
this.josh

Si je comprends votre question, oui, il est possible de vérifier un fichier avec le MD5 (ou tout algorithme de hachage).

En fait, chaque fichier traité par l'algorithme de hachage est bits et ne dépend pas du type de données d'entrée. Autre chose, le hachage peut avoir une longueur d'entrée, mais génère une valeur de taille fixe.

1
M'vy