¿Cuán menos seguro es un cifrado si sabemos algo sobre los datos originales?

6

Tengo varios archivos cifrados con una clave derivada de una contraseña. En línea con la práctica estándar, uso un salt aleatorio y una contraseña y hago muchas iteraciones PBKDF2 para obtener una clave de cifrado y IV. Luego lo uso para cifrar los datos con AES-256 en modo CBC.

¿De qué manera podría comprometerse la seguridad de mis datos si un atacante hipotético sabe que los primeros bytes de cada archivo de texto plano son una cadena fija como "abde"?

    
pregunta user21203 28.02.2013 - 13:27
fuente

2 respuestas

7

Si conocer parte del texto en claro le da una ventaja al atacante en sus esfuerzos por adivinar o volver a calcular otros bytes encriptados, o la propia clave, esto se considera una debilidad grave del algoritmo de cifrado. Ninguna debilidad es conocida por AES.

El párrafo anterior necesita algunas precisiones. De hecho, si a mí, como atacante, se me da el conocimiento de que algunos bytes de texto sin formato son "El Papa Bened.ct XVI está renunciando", con el "." siendo un byte desconocido para el atacante, entonces puedo adivinar con una probabilidad relativamente alta que el byte desconocido en realidad codifica una "i". Por lo tanto, la definición correcta sería: si el atacante, dado el conocimiento de algunos bytes de texto simple y todo el archivo cifrado, puede adivinar los bytes faltantes con mayor probabilidad de éxito que el mismo un atacante que conoce los mismos bytes de texto sin formato pero no el archivo cifrado, entonces el algoritmo de cifrado se puede considerar roto. AES no se considera roto, por lo que está bien.

Otro punto es sobre ataques activos . Un atacante puede querer modificar los datos para inducir a un sistema honesto a trabajar sobre datos falsos; y el comportamiento del sistema que puede proporcionar mucha información sobre los bytes desconocidos (una variante de este ataque es la que se usa en BEAST attack en SSL / TLS ). El conocimiento de algunos bytes de texto sin formato hace que estos ataques sean más fáciles. AES-CBC, por sí mismo, no protege contra atacantes activos. Para derrotar a los atacantes activos, debes aplicar un MAC . La combinación de cifrado y MAC es no es fácil ; es mejor reemplazar el CBC con un modo de cifrado que incluya un MAC y maneje el trabajo duro (por ejemplo, GCM o < a href="http://en.wikipedia.org/wiki/EAX_mode"> EAX ).

(La definición anterior se refiere a "ataques de texto simple conocidos", donde el atacante conoce parte del texto simple. Para ataques activos, hablaríamos de "ataques de texto simple seleccionados", donde el atacante llega a elegir parte del texto sin formato y "ataques de texto cifrado elegidos", donde el atacante altera el texto cifrado y observa más o menos directamente el resultado del descifrado. El MAC correctamente aplicado y verificado brinda una protección confiable contra los ataques de texto cifrado seleccionados.)

    
respondido por el Tom Leek 28.02.2013 - 14:47
fuente
1

Este es un caso de Ataque de texto simple conocido . Esta situación se puede aprovechar si se utilizan sistemas de cifrado más antiguos, pero no se conoce ninguna vulnerabilidad de este tipo en AES.

Incluso si el texto simple es el mismo cada vez, el IV no lo es. La fuerza bruta no sería más rápida en este caso particular.

    
respondido por el Dinu S 28.02.2013 - 13:35
fuente

Lea otras preguntas en las etiquetas