Cryptanalysis de datos cifrados en reposo

1

Imagina que tengo un archivo cifrado utilizando el modo AES CBC con una clave y un IV aleatorio. El atacante accedió al texto cifrado y al IV utilizado pero no a la clave.

En este escenario no hay ninguna vulnerabilidad ya que el IV es aleatorio.

Ahora supongamos que el atacante obtiene información sobre el texto sin formato utilizado. El texto simple es un formulario de encuesta completado por un usuario. Así que hay un formato fijo para los datos encriptados. En ese caso, si asumimos que el atacante tiene acceso al formulario de encuesta vacío (con las preguntas), ¿eso cambia la supuesta seguridad de los datos cifrados? El aleatorio IV ya no importa. La situación se presta a un ataque de texto plano elegido. ¿Me estoy perdiendo de algo?

¿Cómo protege los datos en este caso?

EDITAR: la clave se genera aleatoriamente y se almacena en una base de datos completamente separada de los datos cifrados.

    
pregunta user220201 23.05.2014 - 19:32
fuente

2 respuestas

4

El punto central del cifrado simétrico es que si un atacante no tiene la clave, no puede descifrar los datos. AES no tiene ataques de cómputo factibles conocidos públicamente ( significativamente mejor que forzar brutalmente todo el espacio clave 2 128 ) que sean relevantes para este escenario.

Si los datos están en reposo, no hay un ataque de texto simple elegido, no hay ningún sistema que acepte el texto simple elegido y lo cifre. Solo puede realizar el ataque de texto sin formato elegido si un atacante puede enviar textos aleatorios a un sistema que los cifrará y devolverá el texto cifrado.

Ahora, si expandió la superficie de ataque a una en la que un atacante pueda solicitar que un texto simple se cifre con una clave desconocida, entonces hay un posible ataque de texto simple elegido si el IV reutiliza o conoce el atacante antes de enviar su texto simple.

Con la superficie de ataque expandida, si el atacante conocía el IV (<) o antes de enviar el texto sin formato, y (2) un atacante podría convencer a su sistema (que tiene la clave) para cifrar el texto arbitrario enviado por ellos, y (3) el espacio de mensajes para cada bloque es bastante pequeño (solo digamos unos pocos miles / millones de posibilidades que es significativamente más pequeño que las 2 opciones completas 128 permitidas con 16 bytes arbitrarios) para cada bloque de 16 bytes de texto sin formato), entonces el atacante sí podría enviar de manera eficiente texto simple arbitrario con el mismo IV fijo (o dar cuenta del cambio) IV al hacer su adivinación de texto sin formato) hasta que encuentren una coincidencia con cada bloque del texto cifrado que desean descifrar. Podrían hacer este bloque por bloque (un bloque AES es de 128 bits = 16 bytes) para adivinar secuencialmente el texto sin formato original por fuerza bruta (del espacio de mensaje pequeño).

Sin embargo, con un IV de 128 bits aleatorio no conocido de antemano, este ataque no funcionará. ¿Por qué? Porque en el modo CBC c[0] = E(k, p[0] XOR IV) , c[i] = E(k, p[i] XOR c[i-1]) para i > 0 y la IV cambian cada vez (y se desconoce cuando envía el texto sin formato, por lo que no puede explicar el cambio en IV y su cambio en su estimación de p [0]).

  

¿Cómo protege los datos en este caso?

Los datos ya están protegidos.

    
respondido por el dr jimbob 23.05.2014 - 20:58
fuente
0

Los datos están protegidos. El atacante no puede descifrar su contenido, ni siquiera con el texto plano (parcial) (de lo contrario, estaríamos hablando de AES como un cifrado roto).

Sin embargo, también debe proteger la integridad .

Por ejemplo, supongamos que la encuesta contiene algunas preguntas de Sí / No y que estábamos encriptando en modo CTR. Si Eve tiene acceso a las respuestas a la encuesta dada por otros empleados, podría cambiar ciegamente las respuestas de alguien a quien odia para hacer que se vean mal (por ejemplo, imagine que una pregunta era "¿Es usted un terrorista?").

El uso de CBC hace que el ataque sea más difícil, ya que el siguiente bloque estaría dañado, pero no lo descartaría. Una solución sería guardar un hash al final y verificar que coincida con el mensaje descifrado.

    
respondido por el Ángel 24.07.2014 - 21:57
fuente

Lea otras preguntas en las etiquetas