No use cifrado sin autenticación de mensajes

2

El texto proviene de la famosa respuesta: Lecciones aprendidas y conceptos erróneos sobre el cifrado y la criptología: no usar cifrado sin autenticación de mensajes

  

Alternativamente, puede aplicar su propia autenticación de mensaje, de la siguiente manera. Primero, cifre el mensaje utilizando un esquema de cifrado de clave simétrica apropiado (por ejemplo, AES-CBC). Luego, tome el texto cifrado completo (incluidos los IV, nonces u otros valores necesarios para el descifrado), aplique un código de autenticación de mensaje (por ejemplo, AES-CMAC, SHA1-HMAC, SHA256-HMAC) y agregue el resumen MAC resultante al texto cifrado antes de la transmisión. En el lado de recepción, verifique que el resumen de MAC sea válido antes de descifrarlo. Esto se conoce como la construcción de cifrar y luego autenticar. (Vea también: 1 , 2 .) Esto también funciona bien, pero requiere un poco más de cuidado por su parte.

¿Es realmente correcto? Si un atacante cambia un texto cifrado, simplemente puede generar un nuevo MAC para ese texto cifrado y agregarlo en lugar de un MAC anterior. ¿No? ¿No deberías usar MAC en un texto plano?

    
pregunta evening 20.10.2013 - 19:21
fuente

1 respuesta

4

Un MAC utiliza una clave, que se supone que el atacante no sabe. El atacante no puede "generar un nuevo MAC".

Hay algunos protocolos que utilizan como una especie de MAC un valor hash (por lo tanto, sin ninguna clave) anexados al texto sin formato, y luego encriptados con el texto sin formato. Aquí, el MAC no es el valor hash, sino la combinación del hash y el cifrado (en otras palabras, la clave de cifrado se reutiliza para el MAC). Esta es una manera pobre de hacer un MAC, una muy mala si el cifrado usa RC4 o un cifrado de bloque en modo CTR (la razón exacta se deja como ejercicio) (aunque muy débil, lo he visto implementado en producción, para nada menos que una solución de banca en línea!).

Este tipo de esquemas de pseudo-MAC hechos en casa ha generado mucha confusión. Un algoritmo de MAC bueno es HMAC .

Incluso con un buen algoritmo de MAC, la combinación de cifrado simétrico y un MAC está sujeta a sutilezas, que es de lo que trata el pasaje que cita. Hay alguna discusión en esta pregunta .

    
respondido por el Thomas Pornin 20.10.2013 - 20:14
fuente

Lea otras preguntas en las etiquetas