¿Por qué necesita autenticación de mensajes además del cifrado?

14

He estado leyendo sobre cifrado autenticado con datos asociados . Los estados RFC enlazados:

  

El cifrado autenticado es una forma de cifrado que, en      Además de proporcionar confidencialidad para el texto simple que es      cifrado, proporciona una forma de verificar su integridad y autenticidad.

Tengo entendido que simplemente cifrar los datos, incluso utilizando una clave compartida simétrica, con algo como AES o 3DES debería ser suficiente para verificar que los datos no se hayan manipulado en tránsito. Si lo hubiera sido, el mensaje simplemente no se descifraría.

Entonces, ¿por qué es necesaria una autenticación separada? ¿En qué situación necesitaría tener una autenticación separada (incluso si utiliza HMAC simple con cifrado)?

    
pregunta Jonathan 01.04.2013 - 15:04
fuente

4 respuestas

22

El cifrado NO protege automáticamente los datos contra modificaciones.

Por ejemplo, digamos que tenemos un cifrado de flujo que es simplemente un PRNG (generador de números aleatorios), donde la clave es la semilla. El cifrado funciona generando números aleatorios en secuencia (la secuencia de teclas) y excluyéndolos con el texto sin formato. Si un atacante conoce algunos bytes de texto simple y texto cifrado en un punto en particular, puede juntarlos para recuperar el flujo de claves de esos bytes. A partir de ahí, puede simplemente seleccionar algunos bytes de texto sin formato nuevos y xor ellos con la secuencia de teclas.

A menudo, el atacante no necesita saber el texto en claro para lograr algo. Tomemos un ejemplo en el que un atacante simplemente necesita corromper un campo en particular en los datos internos de un paquete. Él no sabe cuál es su valor, pero no lo necesita. Simplemente reemplazando esos bytes de texto cifrado con números aleatorios, ha cambiado el texto simple.

Esto es particularmente interesante en los cifrados de bloque donde se usa el relleno, ya que nos abre a ataques de oráculo de relleno . Estos ataques implican ajustar el texto cifrado de una manera que altera la cadena de relleno y observa el resultado. Otros ataques como BEAST y el Lucky Thirteen Attack involucra la modificación del texto cifrado de una manera similar. Estos tienden a depender del hecho de que algunas implementaciones descifran datos a ciegas antes de realizar cualquier tipo de verificación de integridad.

Además, puede ser posible reenviar un paquete cifrado, lo que podría causar algún comportamiento en el cliente o servidor. Un ejemplo de esto podría ser un comando para alternar el estado habilitado del firewall. Esto se denomina ataque de reproducción, y el cifrado por sí solo no lo protegerá. De hecho, las comprobaciones de integridad a menudo tampoco solucionan este problema.

De hecho, hay tres propiedades primarias que son deseables en un esquema de comunicaciones seguras:

  • Confidencialidad : la capacidad de evitar que los intrusos descubran el mensaje de texto sin formato, o información sobre el mensaje de texto sin formato (por ejemplo, el peso de Hamming).
  • Integridad : la capacidad de evitar que un atacante activo modifique el mensaje sin que los usuarios legítimos lo noten. Por lo general, esto se proporciona a través de un Código de integridad del mensaje (MIC).
  • Autenticidad : la capacidad de demostrar que un mensaje fue generado por una parte en particular y evitar la falsificación de mensajes nuevos. Esto generalmente se proporciona a través de un Código de autenticación de mensaje (MAC). Tenga en cuenta que la autenticidad implica automáticamente integridad.

El hecho de que el MAC y el MIC puedan ser proporcionados por un único esquema HMAC apropiadamente elegido (a veces llamado MAIC) en ciertas circunstancias es completamente incidental. La diferencia semántica entre integridad y autenticidad es real, ya que puede tener integridad sin autenticidad, y tal sistema aún puede presentar problemas.

La distinción real entre integridad y autenticidad es difícil de definir, como me dijo Thomas Pornin en el chat:

  

Hay un punto de definición difícil allí. La integridad es que se obtienen los "datos correctos", pero de acuerdo con la noción de "derecho"? ¿Cómo es que los datos del atacante no son "correctos"? Si responde "porque es del atacante, no del cliente correcto", entonces está haciendo la autenticación ...

Es un poco de un área gris, pero de cualquier manera todos podemos estar de acuerdo en que la autenticación es importante.

Una alternativa a usar un MAC / MIC separado es usar un modo de cifrado de bloque autenticado, como Modo Gallois / Counter ( GCM) o modo EAX .

    
respondido por el Polynomial 01.04.2013 - 21:46
fuente
0

El cifrado garantiza que los datos no puedan leerse ni manipularse. La autenticación garantiza que sepas de dónde provienen los datos.

Una vista más práctica: mi banco usa un enlace cifrado (https) entre mi navegador web y su servidor web, pero sin la autenticación no me permite ver lo que no está en mi cuenta bancaria.

    
respondido por el jwernerny 01.04.2013 - 15:45
fuente
0

La adición de autenticación evitaría que un usuario no autorizado envíe datos encriptados con la clave compartida simétrica (robada), básicamente agregando un secreto adicional a la mezcla.

    
respondido por el Mike Partridge 01.04.2013 - 16:30
fuente
0

Por lo que sé, AES y 3DES son cifrados en bloque que se utilizan en combinación con algún modo, como CTR, CBC y esos modos (solo) son solo semánticamente seguros ante adversarios que solo pueden escuchar a escondidas. Si el adversario puede manipular los datos que se están transmitiendo, debemos garantizar la integridad y no se puede garantizar con las construcciones anteriores. Aut. el cifrado garantiza que los adversarios que pueden manipular sus datos no podrán crear datos cifrados que se descodifiquen correctamente a texto sin formato válido. En otras palabras, la salida de un esquema de encriptación auth es un texto sin formato válido o un símbolo que representa una salida no válida. Si obtiene el símbolo que representa una salida no válida, sabe que los datos se modificaron.

    
respondido por el Lehrling 01.04.2013 - 21:21
fuente

Lea otras preguntas en las etiquetas