online security md5 hmac

security - online - HMAC vs simple Hash MD5



hmac sha256 javascript (3)

El artículo de Wikipedia sobre HMAC ofrece una buena explicación de esto.

En la sección de Security del mismo artículo continúa diciendo:

Los HMAC se ven sustancialmente menos afectados por las colisiones que sus algoritmos de hash subyacentes solos.

Por lo tanto, agregar un HMAC a un hash MD5 haría que sea mucho más difícil romperlo a través de una tabla rainbow.

¿Alguien puede señalar cuál es la ventaja de usar HMАC ?

Por ejemplo, si tengo un texto T y una clave K , puedo usar el HMAC-MD5 o Md5(T + K) para obtener una firma.


HMAC no es susceptible a los ataques de extensión de longitud.

md5 (T + K) debería estar bien para la mayoría de los usos a menos que su adversario esté motivado para alterar su mensaje y tenga muy buena potencia de cómputo. Mientras controlas T, los ataques de cumpleaños no son aplicables y solo tienes ataques de fuerza bruta. Pero es bueno estar al tanto de las limitaciones. Si desea seguir este enfoque, puede utilizar SHA1 (T + K) en lugar de MD5.

md5 (T + K) es ciertamente mejor que md5 (K + T) donde un atacante puede agregar texto a su mensaje y generar otro MAC válido.

Con md5 (T + K), el problema es que si un atacante puede encontrar una colisión con T2 tal que md5 (T) = md5 (T2), entonces md5 (T + K) = md5 (T2 + K). Pero esto requiere un ataque de fuerza bruta.

Nota: digo " siempre que controle T ", porque si se pueden hacer cambios a T (de forma tal que no sea obvio) se puede intentar generar 2 mensajes T1 y T2 donde T1 puede pasar para T y md5 (T1) = md5 (T2). Ahora esto es mucho más fácil de hacer (estamos hablando de 2 ^ 64 en lugar de 2 ^ 128) y la razón es la llamada paradoja de cumpleaños o el ataque de cumpleaños.

Nota: El diseño de HMAC estuvo motivado para evitar este tipo de ataques de extensión. No hay ataques conocidos contra HMAC.