¿Cómo puedo cifrar datos comprimidos de forma segura?

2

Como se menciona en esta respuesta particular, comprimir los datos antes del cifrado puede llevar a el ataque CRIME , especialmente si el hacker ha recopilado muchas versiones similares de los datos transmitidos.

Usemos el siguiente ejemplo para este caso de seguridad particular:

  • Bob está utilizando un programa de diario personal encriptado que se almacena en un archivo que está encriptado con AES-256 en modo CBC con un HMAC SHA-256 (o AES-256 en modo GCM).
    • El diario comprime el texto de la entrada utilizando la compresión LZ o DEFLATE al guardarlos.
    • La estructura del archivo de diario es un árbol BSON bastante simple (piense en JSON, pero binario, por lo que no es necesario que escape cadenas / etc) que simplemente comprime el texto real del diario al guardar el archivo, pero no los títulos de las entradas de diario, las fechas, etc. .
  • Bob almacena este archivo en una carpeta de Dropbox que se sincroniza en sus máquinas.
  • Una de las máquinas de Bob está comprometida y Oscar ahora tiene acceso a su cuenta de Dropbox.
  • Oscar puede descargar todo el historial de la revista desde Dropbox.

¿Cuál es la principal superficie de ataque, si la hay, para Oscar? ¿Tener los datos comprimidos en el archivo de diario cifrado ofrece compromisos que Oscar puede explotar?

    
pregunta Naftuli Kay 23.05.2014 - 18:53
fuente

2 respuestas

2

Según tengo entendido, su esquema no es vulnerable a CRIME en el escenario que presenta, el estilo CRIME ataca a los atacantes para que puedan inducir a Bob a comprimir y luego a encriptar el material de su elección, para luego poder observar al máximo menos el tamaño del resultado.

Sin embargo, si tuviera que atacar tu esquema, apuntaría a la parte que dejaste de lado: generación de claves y, en general, ciclo de vida de las claves.

Si genera su clave de cifrado a partir de una contraseña, ¿aplica una contraseña segura y utiliza una buena función de obtención de claves, está seguro de que, por ejemplo, ¿No pierdes la entropía con algunos errores tontos como jugar con la codificación o normalizar de alguna manera la contraseña?

¿La clave se genera aleatoriamente (luego plantea la pregunta, qué tan buena es su fuente de aleatoriedad) y luego está protegida por otro mecanismo y qué tan fuerte es?

Mencionas que la máquina de Bob está siendo utilizada, ¿estás seguro de que no se deja ningún material clave? ¿Bloqueas material clave en la memoria? ¿Cero correctamente una vez que haya terminado con él? ¿Evitas pasarlo a la línea de comandos?

    
respondido por el Bruno Rohée 23.05.2014 - 19:33
fuente
2

CRIME es un tipo de ataque de texto sin formato elegido donde la mayoría, pero no todo, el texto en claro está bajo el atacante control, y el atacante desea descubrir qué es el resto del texto en claro. Tu escenario es completamente inmune a este tipo de ataque, ya que el atacante no tiene control sobre el texto simple.

    
respondido por el Mark 24.05.2014 - 06:44
fuente

Lea otras preguntas en las etiquetas