lunes, 15 de abril de 2013

HMAC


 Mecanismo de autenticación de mensajes (proteger la integridad de la información).
Las funciones hash criptográficas generalmente se ejecutan más rápidamente que los algoritmos de cifrado convencional  como el DES.
Utiliza la función de hash y clave secreta para su implementación. Por lo tanto, eso te ofrece menos vulnerabilidad que solo encriptación o hash. La RFC 2104 propone el uso de HMAC ,que es una autenticación en entornos seguros como SSL mediante una operación MAC en la que intervenga una función hash.

En el RFC 2104 presenta los siguientes objetivos:
  • Usar, sin modificaciones, las funciones Hash disponibles.
  • Permitir la sustitución fácil de la función Hash empotrada en caso de que se encuentre o se necesiten funciones Hash más rápidas o seguras.
  • Preservar el funcionamiento original de la función Hash sin incurrir en una degradación significativa.
  • Usar y manejar claves de forma sencilla.
  • Tener un análisis criptográfico compresible de la robustez del mecanismo la autentificación basado en suposiciones razonables sobre la función Hash empotrada.


ALGORITMO

 M = mensaje de entrada incluyendo el relleno.
 H = alguna función hash como MD5 (128 bits) o SHA-1 (160 bits).
 Yi= bloque iésimo de M.
L = número de bloques en M.
  b = número de bits en cada bloque (512).
  n = longitud del resumen del hash ocupado en el sistema (128 / 160 bits).
 K = clave secreta (160 bits) aunque se recomienda sea mayor que n. Si la clave K es mayor que b, esta clave se hace pasar antes por la función hash para reducirla a una clave de n bits.
K+= clave K con ceros añadidos a la izquierda para alcanzar b bits.
ipad= 00110110 octeto repetido b/8 (64) veces.
 opad= 01011010 octeto repetido b/8 (64) veces.


1. Añadir ceros a la izquierda de k para crear un bloque k+ de b bits. Por ejemplo si k tiene una longitud de 160 bits y b = 512 entonces se añadirá 352 bits a 0 .

2. Aplicar el XOR( OR exclusivo bit a bit) a k+ con ipad para producir el bloque de b bits Si.

3. Añadir M a Si.

4. Aplicar H al bloque generado en el paso anterior. 

5. Aplicar el XOR a k+ con opad para producir el bloque de b bits So.

6. Anadir el resultado Hash de paso 4 a So.

7. Aplicar H al flujo generado al paso 6 y extraer el resultado



De tal manera que HMAC haría lo siguiente:





REFERENCIAS

http://networksafe.files.wordpress.com/2012/03/presentacion-hmac2.pdf

(Stallings, William). (2004). Fundamentos de seguridad en redes: aplicaiones y estándares. 2a Edición. PEARSON.


1 comentario: