46 votes

HMAC contre le simple hachage MD5

Quelqu'un peut-il indiquer quel est l'avantage d'utiliser HMC est ?

Par exemple, si j'ai un texte T et une clé K je peux utiliser soit HMAC-MD5 algorithme ou Md5(T + K) pour obtenir une signature.

38voto

Babu Srinivasan Points 1069

HMAC n'est pas sensible aux attaques par extension de longueur.

md5(T + K) devrait convenir pour la plupart des utilisations, sauf si votre adversaire est motivé pour altérer votre message et dispose d'une très bonne puissance de calcul. Tant que vous contrôlez T, les attaques d'anniversaire ne sont pas applicables et vous n'avez que des attaques par force brute. Mais il est bon d'être conscient des limites. Si vous souhaitez adopter cette approche, vous pouvez utiliser SHA1(T + K) au lieu de MD5.

md5(T+K) est certainement meilleur que md5(K+T) où un attaquant peut ajouter du texte à votre message et générer un autre MAC valide.

Avec md5(T+K), le problème est que si un attaquant peut trouver une collision avec T2 telle que md5(T) = md5(T2), alors md5(T+K) = md5(T2+K). Mais cela nécessite une attaque par force brute.

Note : Je dis " tant que vous contrôlez T "En effet, si des modifications peuvent être apportées à T (de telle sorte que cela ne soit pas évident), on peut essayer de générer 2 messages T1 et T2 où T1 peut passer pour T et md5(T1) = md5(T2). Maintenant, c'est relativement beaucoup plus facile à faire (nous parlons de 2^64 au lieu de 2^128) et la raison est le soi-disant paradoxe de l'anniversaire ou attaque de l'anniversaire.

Note : La conception de HMAC a été motivée pour éviter ces types d'attaques par extension. Il n'y a pas d'attaques connues contre HMAC.

28voto

Evan M Points 756

Le site Article de Wikipedia sur HMAC donne une bonne explication à ce sujet.

Dans le Sécurité Dans le même article, on peut lire ce qui suit :

Les HMAC sont nettement moins affectés par les collisions que leurs seuls algorithmes de hachage sous-jacents.

Ainsi, l'ajout d'un HMAC à un hachage MD5 le rendrait nettement plus difficile à casser via une rainbow table.

5voto

Zed Points 3005

Je vous recommande de lire les documents HMAC par Bellare, Canetti, et Krawczyk.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X