Message Digest es como un diccionario para los hash que se generarán, mientras que el código de autenticación de mensajes (MAC) genera un valor hash del mensaje sin procesar utilizando el resumen del mensaje y luego lo concatena con datos sin procesar para proporcionar integridad de datos a través de la red.
Creo que estarías totalmente confundido con la línea anterior. Tomemos un ejemplo para explicarlo mejor.
Digamos que reemplazo cualquier alfabeto con 2 incrementos en serie que:
- Virus informáticos: ¿Cómo funciona el virus Flame?
- ¿Hay algún hacker real arrestado por la CIA?
- ¿La autenticación de huellas digitales de Apple Touch ID es fundamentalmente defectuosa desde una perspectiva de seguridad?
- ¿Cuál es el mejor antivirus gratuito y sin conexión para PC (Windows 8)? ¿Cómo puedo descargarlo e instalarlo?
- ¿Hay alguna diferencia entre malware y virus?
A = C
B = D
C = E,
D = F
E = G, y así sucesivamente
Lo anterior hará que mi mensaje se compense (diccionario que usaré en el futuro) para mi texto. Espero que esto tenga sentido ahora para el resumen del mensaje
Ahora digamos que mi mensaje fue
ACE TU EXAMEN
Si aplico mi resumen en este texto, esto se convertiría en
CEG AQWT GZCO
El valor es el hash de mi texto que no puede ser fácilmente comprensible a menos que conozca la lógica detrás de su generación.
Ahora, cuando quiero enviar el texto a mi compañero que está sentado al otro lado de la red y quiero que se asegure de que no haya alteración de los datos originales, le enviaré el texto original con el hash
Entonces él recibiría
ACE THE EXAM CEG AQWT GZCO
Lo anterior se conoce como MAC.
¿Cómo es eso útil?
En el otro extremo mi compañero recibe
FALLAR EL EXAMEN CEG AQWT GZCO
Podrá comprender que el mensaje original está alterado, ya que trataría de generar el Hash localmente utilizando la misma lógica y obtendría
HCKN WJG GZCO que no coincide con CEG AQWT GZCO que fue enviado por el remitente. Esto ayuda a proteger la integridad de los datos. Espero que esto tenga sentido ahora.
Es posible que tenga dudas de que si el Hacker conoce el código y también cambia el valor HASH. No se preocupe, esta lógica simple que se muestra en el ejemplo tardará al menos algún tiempo en romperse. Piense si la computadora está usando MD5 o SHA 256 (protocolos muy complejos) y eso es con Salt (induciendo algunos números aleatorios al hash), esto sería muy difícil de romper, si no imposible.
Por favor, hágame saber sus comentarios y si se requiere alguna mejora para responder.