Al usar AES y CBC, ¿es necesario mantener el IV secreto?

38

Si cifro algunos datos con una Clave y un Vector de Inicialización generados al azar, luego almaceno los tres datos en la misma fila de la tabla; ¿Es necesario cifrar la IV y la Clave?

Estructura de tabla simplificada:

  • datos cifrados
  • Clave (cifrada mediante un segundo método)
  • IV (¿cifrado?)

Supongamos que la arquitectura y el método son necesarios: la explicación que hay detrás es larga y aburrida.

    
pregunta Stu Pegg 10.07.2012 - 17:43
fuente

2 respuestas

45

De Wikipedia :

  

Un vector de inicialización tiene diferentes requisitos de seguridad que una clave, por lo que el IV por lo general no necesita ser secreto . Sin embargo, en la mayoría de los casos, es importante que un vector de inicialización nunca se reutilice con la misma clave . Para CBC y CFB, reutilizar un IV filtra información sobre el primer bloque de texto sin formato y sobre cualquier prefijo común compartido por los dos mensajes.

No es necesario mantener el secreto IV, pero debe ser aleatorio y único.

    
respondido por el Polynomial 10.07.2012 - 18:02
fuente
8

Aunque en su caso, la IV debería estar bien en texto simple en la base de datos, existe una grave vulnerabilidad si permite que el usuario controle la IV.

El IV en descifrado se usa (y solo se usa) para XOR el primer bloque en el texto plano final, por lo que si un atacante puede controlar el IV, puede controlar arbitrariamente el primer bloque de datos , y el resto del texto sin formato sobrevivirá sin modificaciones.

Si el atacante conoce el texto en claro original del primer bloque, entonces el problema se vuelve a ampliar, ya que el atacante puede elegir datos arbitrarios para el primer bloque sin prueba y error.

Esto es particularmente importante en el caso de que los datos cifrados se transmitan a través de canales no confiables con el IV, tal vez a un navegador o una aplicación, etc.

    
respondido por el George Powell 20.01.2016 - 18:36
fuente

Lea otras preguntas en las etiquetas