¿Existe un ataque que pueda modificar el texto cifrado y, al mismo tiempo, permitir que se descifre?

3

¿Existe alguna forma de que un archivo cifrado que utiliza AES-256 se pueda modificar sin alertar al propietario del archivo, es decir, de modo que aún pueda ser descifrado con la misma clave?

Sé que sin un vector de inicialización, los bloques en un texto cifrado se pueden eliminar, mover, duplicar, etc. (¿tengo razón?) sin detección. El uso de un vector de inicialización debería excluir ese ataque, pero ¿hay otros?

¿Se debe firmar el texto cifrado para garantizar que no se modifique?

    
pregunta Razick 09.12.2013 - 14:37
fuente

3 respuestas

12

Sí.

Este es un problema con cualquier sistema de cifrado que no protege la integridad, como con una firma o hmac. Verás, el cifrado y el descifrado son solo operaciones matemáticas. Siempre puede realizar una operación matemática en un blob de datos binarios, y siempre obtendrá un resultado. El cifrado de las operaciones de descifrado no genera errores porque se modifican los datos.

El impacto específico de modificar el texto cifrado depende del modo de operación y los datos modificados. Hay un ataque famoso en el que girar un poco en el antiguo protocolo ATM (cajeros automáticos) protegido por DES cambiaría el valor de una transacción: deposite una cantidad desconocida de dólares en lugar de la cantidad que escribió. El atacante no sabría cuál sería el resultado, pero el atacante depositaría una pequeña cantidad de dinero y el sistema tendría un gran valor máximo, por lo que era probable que un cambio "aleatorio" a la cantidad resultara en un depósito más grande. .

Los bloques de intercambio y los otros ataques a los que hace referencia están destinados a cambios significativos conocidos. La causa raíz sigue siendo la misma: la falta de protección de la integridad del mensaje.

Ahora, hay algunas excepciones a esto, en la forma de GCM, XST y un par de otros modos de cifrado más nuevos. Estos modos incluyen la verificación de integridad como parte del algoritmo, en lugar de requerir que usted mismo implemente una verificación de integridad.

El vector de inicialización hace que dos valores cifrados con la misma clave se cifren a valores diferentes. Sin el IV, cuando reutiliza las claves y reenvía el mensaje "mismo", obtendría el mismo texto cifrado.

    
respondido por el atk 09.12.2013 - 15:06
fuente
5

Los algoritmos de cifrado como AES por sí mismos no garantizan la integridad de los datos. Esa propiedad es proporcionada por un MAC como HMAC .

Es completamente posible que un atacante pueda manipular el texto cifrado sin ser detectado si no lo hace correctamente aplica un MAC en él.

    
respondido por el Ayrx 09.12.2013 - 15:02
fuente
1

Suponiendo que la clave no sea robada / rota / comprometida, la respuesta depende de qué modo se utilizó para aplicar el cifrado .

Si se usó un modo débil o inapropiado (por ejemplo, ECB ), entonces un atacante tiene rienda suelta en el uso de los distintos bloques de texto cifrado. Puede eliminar, reordenar y reutilizar libremente los bloques (incluso de flujos anteriores que usan la misma clave), siendo la capa de cifrado la más inteligente.

Con otros modos de operación de bloque, lo mismo no es necesariamente posible. Si se elige un vector de inicialización adecuado (es decir, único), por ejemplo, incluso CBC es resistente a cualquiera de estas manipulaciones.

Tenga en cuenta que, en cualquier caso, ninguno de los anteriores evitará un ataque de repetición total (cuando el atacante reproduzca todo el mensaje cifrado) por sí mismo, muchos son vulnerables al truncamiento de datos. Es por eso que es recomendable insertar una marca de tiempo o un número de serie y algunos para CRC con el mensaje de texto claro: permitirá al receptor protegerse contra ataques de repetición y truncamiento.

    
respondido por el Stephane 09.12.2013 - 15:03
fuente

Lea otras preguntas en las etiquetas