Raisons pour lesquelles SHA512 est supérieur à MD5

je me demandais si je pouvais trouver des raisons ou des liens vers des ressources expliquant pourquoi SHA512 est un algorithme de hachage supérieur à MD5.

26
demandé sur Tom Ritter 2010-01-22 17:09:53

7 réponses

Cela dépend de votre cas d'utilisation. Vous ne pouvez pas largement prétendre à la "supériorité". (Je veux dire, oui, vous pouvez, dans certains cas, mais, pour être rigoureux, on ne peut pas vraiment).

mais il y a des zones où MD5 a été cassé:

  1. pour commencer: MD5 est vieux, et commun. Il y a des tonnes de tables arc-en-ciel contre elle, et elles sont faciles à trouver. Donc, si vous hashing mots de passe (sans sel - honte sur vous!)- en utilisant md5 - vous pourriez aussi bien ne pas les Hasher, ils sont si faciles à trouver. Même si vous êtes de hachage avec des sels simples vraiment.
  2. Second off, MD5 n'est plus sécurisé en tant que fonction de hachage cryptographique (en effet, il n'est même plus considéré comme une fonction de hachage cryptographique comme le souligne la fourche). Vous pouvez générer différents messages qui hachent à la même valeur. Donc si vous avez un certificat SSL avec un hachage MD5 dessus, je peux générer un double certificat qui dit ce que je veux, qui produit le même hachage. C'est généralement ce que les gens veulent dire que MD5 est "cassé" - des choses comme ça.
  3. Troisièmement, similaire aux messages, Vous pouvez aussi générer différents fichiersque de hachage à la même valeur donc utiliser MD5 comme somme de contrôle des fichiers est "cassé".

maintenant, SHA-512 est un famille SHA-2 l'algorithme de hachage. SHA-1 est un peu considéré comme " eh " ces jours-ci, je vais l'ignorer. Toutefois, SHA-2 a relativement peu d'attaques contre elle. Le majeur de wikipédia en parle une réduction de la tour preimage attaque ce qui signifie que si vous utilisez SHA-512 d'une façon horriblement erronée, je peux le casser. Obivously vous n'êtes pas susceptible de l'utiliser de cette façon, mais les attaques que s'améliorer, et c'est un bon tremplin vers plus de recherche pour briser SHA-512 de la même façon MD5 est cassé.

cependant, de toutes les fonctions de hachage disponibles, la famille SHA-2 est actuellement la plus forte, et le meilleur choix compte tenu de communess, analyse, et de la sécurité. (Mais nécessairement la vitesse. Si vous êtes dans les systèmes embarqués, vous devez effectuer une toute autre analyse.)

60
répondu Tom Ritter 2010-01-22 14:25:32

MD5 a été cryptographiquement cassé depuis un certain temps maintenant. Cela signifie essentiellement que certaines des propriétés habituellement garanties par des algorithmes de hachage, ne tiennent plus. Par exemple, il est possible de trouver des collisions de hachage en beaucoup moins de temps que nécessaire pour la longueur de sortie.

SHA-512 (un des SHA-2 de la famille des fonctions de hachage) est, pour le moment, assez sûr, mais peut-être pas beaucoup plus longtemps pour l'avenir prévisible. C'est pourquoi le NIST a lancé un concours pour SHA-3.

généralement, vous voulez que les algorithmes de hachage soient - fonctions. Ils établissent une correspondance entre certaines entrées et certaines sorties. Généralement, la sortie est d'une longueur fixe, fournissant ainsi un "digest" de l'entrée d'origine. Les propriétés communes sont par exemple que de petits changements dans l'entrée produisent de grands changements dans la sortie (ce qui aide à détecter la falsification) et que la fonction n'est pas facilement réversible. Pour cette dernière propriété, La longueur de la sortie est très utile car elle fournit une limite supérieure théorique de la complexité d'une attaque de collision. Toutefois, les erreurs de conception ou de mise en œuvre réduisent souvent la complexité des attaques. Une fois ceux-ci sont connus, il est temps d'évaluer si encore en utilisant une fonction de hachage. Si la complexité de l'attaque diminue assez loin, les attaques pratiques se retrouvent facilement dans la gamme des personnes sans équipement informatique spécialisé.

Note: je n'ai parlé que d'un seul type d'attaque ici. La réalité est beaucoup plus nuancée, mais aussi beaucoup de plus difficiles à saisir. Puisque les fonctions de hachage sont très couramment utilisées pour vérifier l'intégrité du fichier/message, la chose de la collision est probablement la plus facile à comprendre et à suivre.

10
répondu Joey 2010-01-22 14:21:12

il y a quelques points qui ne sont pas abordés ici, et je pense que c'est un manque de compréhension sur ce qu'est un hash, comment il fonctionne, et combien de temps il faut pour les attaquer avec succès, en utilisant l'arc-en-ciel ou toute autre méthode actuellement connue de l'homme...

mathématiquement parlant, MD5 N'est pas "cassé" si vous salissez les tentatives de hachage et d'accélérateur( même par 1 seconde), votre sécurité serait tout aussi "cassé" qu'il le serait par un attaquant s'éloignant lentement à votre mur d'acier solide de 1 pi avec une cuillère en bois:

cela prendra des milliers d'années, et d'ici là tout le monde sera mort; il y a des choses plus importantes à s'inquiéter.

Si vous verrouillez leur compte par la 20e tentative... le problème est résolu. 20 hits sur votre mur = 0.0000000001% de chance qu'ils ont traversé. Il y a littéralement une meilleure chance statistique que vous soyez en fait Jésus.

You're thinking about it wrong.

Il est également important de noter que absolument n'importe quelle fonction de hachage va être vulnérable aux collisions en vertu de ce qu'est un hachage: "un (petit) id unique de quelque chose d'autre".

quand vous augmentez l'espace de bits vous diminuez les taux de collision, mais vous augmentez aussi la taille de l'id et le temps qu'il faut pour le calculer.

faisons une petite expérience de la pensée...

SHA-2, s'il existait, aurait 4 identifiants uniques possibles pour autre chose... 00, 01, 10 et 11. Il va produire des collisions, évidemment. Voyez-vous la question ici? Un hachage est juste un ID généré de ce que vous essayez d'identifier.

MD5 est vraiment, vraiment bon à choisir au hasard un nombre basé sur une entrée. En fait, SHA n'est pas beaucoup mieux à ce sujet; SHA a juste beaucoup plus d'espace pour les pièces D'identité.

La méthode utilisée est d'environ 0,1% de la raison pour laquelle les collisions sont moins susceptibles. La vraie raison est le plus grand espace de bits.

c'est littéralement la seule raison pour laquelle SHA-256 et SHA-512 sont moins vulnérables aux collisions, parce qu'ils utilisent un espace plus grand pour un id unique.

les méthodes actuelles utilisées par SHA-256 et SHA-512 pour générer le hachage sont en fait meilleures, mais pas de beaucoup; les mêmes attaques arc-en-ciel fonctionneraient sur eux s'ils avaient moins de bits dans leurs IDs, et les fichiers et même les mots de passe peuvent avoir des IDs identiques en utilisant SHA-256 et SHA-512, c'est juste beaucoup moins probable parce qu'il utilise plus de bits.

le vrai problème est comment vous mettez en œuvre votre sécurité

si vous autorisez les attaques automatisées à atteindre votre point final d'authentification 1 000 fois par seconde, vous allez vous faire cambrioler. Si vous accélérez à 1 tentative par 3 secondes et verrouillez le compte pendant 24 heures après la 10ème tentative, vous ne l'êtes pas.

si vous stockez les mots de passe sans sel (un sel est juste un secret ajouté au générateur, ce qui rend plus difficile d'identifier les mauvais mots de passe comme "31337" ou" mot de passe") et avoir beaucoup d'utilisateurs, vous allez obtenir pirater. Si vous les salez, même si vous utilisez MD5, vous ne l'êtes pas.

compte tenu de MD5 utilise 128 bits (32 octets en HEX, 16 octets en binaire), et SHA 512 est seulement 4x l'espace, mais élimine virtuellement le rapport de collision en vous donnant 2^384 plus D'IDs possibles... Va avec SHA-512, à chaque fois.

mais si vous êtes inquiet de ce qui va vraiment se passer si vous utilisez MD5, et vous ne comprenez pas les différences réelles, vous allez probablement encore se faire pirater, faire sens?

3
répondu Nick Steele 2016-06-28 18:55:57

la lecture de ce

cependant, il a été démontré que le MD5 n'est pas résistant aux collisions

plus d'informations sur la collision ici

2
répondu Fredou 2010-01-22 14:16:40

MD5 a un risque de collision (http://www.mscs.dal.ca / ~ selinger / md5collision/) et il y a de nombreuses tables arc-en-ciel MD5 pour la recherche de mot de passe inversé sur le web et disponible pour le téléchargement.

1
répondu Joshua 2010-01-22 14:17:56

il a besoin d'un dictionnaire beaucoup plus grand pour cartographier à l'envers, et a un plus faible risque de collision.

0
répondu Ignacio Vazquez-Abrams 2010-01-22 14:11:25

c'est simple, MD5 est cassé ;) (voir Wikipédia)

Bruce Schneier a écrit à propos de L'attaque que "nous savions déjà que MD5 est une fonction de hachage cassée" et que "plus personne ne devrait utiliser MD5."

0
répondu Felix Kling 2010-01-22 14:17:41