SHA-256 ou MD5 pour l'intégrité des fichiers

je sais que SHA-256 est préféré à MD5 pour la sécurité, etc. mais, si je suis à l'utilisation d'une méthode uniquement à vérifier l'intégrité du fichier (qui est, rien à voir avec le mot de passe de cryptage, etc.), est-il un avantage de l'utilisation de SHA-256?

depuis MD5 est de 128 bits et SHA-256 est de 256 bits (donc deux fois plus grand)...

  1. le chiffrement prendrait-il deux fois plus de temps?

  2. lorsque le temps n'est pas essentiellement, comme dans un programme de sauvegarde, et l'intégrité des fichiers est tout ce qui est nécessaire, est-ce que quelqu'un pourrait argumenter contre MD5 pour un algorithme différent, ou même Suggérer une technique différente?

  3. l'utilisation de MD5 produit-elle une somme de contrôle?

47
demandé sur Marc.2377 2013-01-03 17:19:08

7 réponses

SHA256 et MDA5 sont des algorithmes de hachage. Ils prennent vos données d'entrée, dans ce cas votre fichier, et produisent un nombre 256/128-bit. Ce nombre est une somme de contrôle. Il n'y a pas de cryptage car un nombre infini d'entrées peut donner la même valeur de hachage, bien qu'en réalité les collisions soient rares.

SHA256 prend un peu plus de temps à calculer que MD5, selon cette réponse .

tout court, je dirais ce MD5 serait probablement approprié pour ce dont vous avez besoin.

51
répondu dandan78 2017-05-23 12:10:38

à 1): Oui, sur la plupart des CPU, SHA-256 n'est qu'environ 40% plus rapide que MD5.

à 2): Je plaiderais pour des algorithmes différents de MD5 dans un tel cas. Je préfère largement un algorithme qui est considéré comme sûr. Cependant, ce n'est plus un sentiment. Les cas où ces questions seraient plutôt construites que réalistes, par exemple si votre système de sauvegarde rencontre un exemple d'attaque sur un certificat basé sur MD5, vous êtes susceptible d'avoir deux fichiers dans un tel exemple avec des données différentes, mais des sommes de contrôle MD5 identiques. Pour le reste des cas, cela n'a pas d'importance, parce que les checksums MD5 ont une collision (= mêmes checksums pour des données différentes) pratiquement seulement lorsqu'elle est provoquée intentionnellement. Je ne suis pas un expert sur les divers algorithmes de hachage (génération de checksum), donc je ne peux pas suggérer un autre algorithme. Cette partie de la question reste donc ouverte. Une autre Lecture est fonction de hachage cryptographique-fichier ou Identificateur de données sur Wikipedia. Également plus bas sur cette page, il y a une liste d'algorithmes de hachage cryptographique.

à 3): MD5 est un algorithme pour calculer les sommes de contrôle. Une somme de contrôle calculée à l'aide de cet algorithme est alors appelée somme de contrôle MD5.

13
répondu Daniel S. 2013-01-03 13:53:52

chaque réponse semble suggérer que vous avez besoin d'utiliser des hashs sécurisés pour faire le travail, mais tous ceux-ci sont réglés pour être lent à forcer un attaquant de bruteforce d'avoir beaucoup de puissance de calcul et en fonction de vos besoins, ce ne peut pas être la meilleure solution.

il existe des algorithmes spécialement conçus pour hacher des fichiers aussi vite que possible afin de vérifier l'intégrité et la comparaison ( murmur , XXhash )...). Évidemment ce ne sont pas conçus pour la sécurité, car ils ne respectent pas les exigences d'un algorithme de hachage sécurisé (c'est-à-dire aléatoire) mais ont de faibles taux de collision pour les grands messages . Ces caractéristiques les rendent idéales si vous ne cherchez pas la sécurité mais la vitesse.

des exemples de ces algorithmes et de comparaison peuvent être trouvés dans cette excellente réponse: quel algorithme de hachage est le meilleur pour l'unicité et la vitesse? .

à titre d'exemple, nous à notre Q&A Site utiliser murmur3 les images téléchargées par les utilisateurs ne seront donc stockées qu'une seule fois, même si les utilisateurs téléchargent la même image dans plusieurs réponses.

9
répondu Marc Climent 2017-04-12 07:31:17
  1. Non, c'est moins rapide mais pas si lent
  2. pour un programme de sauvegarde, il est peut-être nécessaire d'avoir quelque chose de plus rapide que MD5

dans l'ensemble, je dirais que MD5 en plus du nom de fichier est absolument sûr. SHA-256 serait juste plus lent et plus difficile à manipuler en raison de sa taille.

vous pouvez également utiliser quelque chose de moins sûr que MD5 sans aucun problème. Si personne n'essaie de pirater ton fichier l'intégrité c'est sûr, trop.

8
répondu Genesis Rock 2015-10-10 22:35:38

l'algorithme MD5 sous-jacent n'est plus considéré comme sûr, donc, bien que md5sum soit bien adapté pour identifier les fichiers connus dans des situations qui ne sont pas liées à la sécurité, il ne devrait pas être utilisé s'il ya une chance que les fichiers ont été délibérément et malicieusement altérés. Dans ce dernier cas, l'utilisation de nouveaux hachage outil tel que sha256sum est fortement recommandé.

donc, si vous cherchez simplement à vérifier la corruption de fichiers ou des différences de fichiers, lorsque le source du fichier est fiable, MD5 devrait être suffisant. Si vous cherchez à vérifier l'intégrité d'un fichier provenant d'une source non fiable, ou d'une source fiable sur une connexion non cryptée, MD5 n'est pas suffisant.

un autre commentateur a noté Qu'Ubuntu et d'autres utilisent des sommes de contrôle MD5. Ubuntu a déménagé à PGP et SHA256, en plus de MD5, mais la documentation des stratégies de vérification plus fortes sont plus difficiles à trouver. Voir le HowToSHA256SUM page pour plus de détails.

6
répondu jsears 2015-07-06 00:15:29

il est techniquement approuvé que MD5 est plus rapide que SHA256 donc en vérifiant simplement l'intégrité du fichier il sera suffisant et meilleur pour la performance.

vous pouvez consulter les ressources suivantes:

4
répondu SaidbakR 2013-01-03 13:30:09
  1. Oui, sur la plupart des CPU, SHA-256 est deux à trois fois plus lent que MD5, mais pas principalement en raison de son plus long hachage. Voir les autres réponses ici et les réponses à cette question de débordement de pile .
  2. voici un scénario de sauvegarde où MD5 ne serait pas approprié:
    • votre programme de sauvegarde hache chaque fichier faisant l'objet d'une sauvegarde. Il stocke ensuite les données de chaque fichier par son hachage, donc si vous sauvegardez le même fichier deux fois vous ne se retrouvent avec une copie de celui-ci.
    • un attaquant peut provoquer le système à sauvegarder les fichiers qu'ils contrôlent.
    • l'attaquant connaît le hachage MD5 d'un fichier qu'ils veulent supprimer de la sauvegarde.
    • l'attaquant peut alors utiliser les faiblesses connues de MD5 pour créer un nouveau fichier ayant le même hachage que le fichier à supprimer. Lorsque ce fichier est sauvegardés, il remplacera le fichier à supprimer, et que le fichier sauvegardé les données seront perdues.
    • ce système de sauvegarde pourrait être renforcé un peu (et rendu plus efficace) en ne remplaçant pas les fichiers dont il a déjà rencontré le hachage, mais puis un attaquant pourrait empêcher un fichier cible avec un hachage connu de être soutenu par un soutien préventif d'un faux spécialement construit fichier avec le même hachage.
    • évidemment la plupart des systèmes, de sauvegarde et autrement, ne satisfont pas les les conditions nécessaires pour que cette attaque soit pratique, mais je voulais juste pour donner un exemple d'une situation où SHA-256 serait préférable à MD5. Si ce serait le cas pour le système que vous créez ne dépend pas seulement des caractéristiques de MD5 et SHA-256.
  3. Oui, les hachages cryptographiques comme ceux générés par MD5 et SHA-256 sont un type de somme de contrôle.

Heureux de hachage!

0
répondu dharcourt 2018-02-15 08:46:33