Concatenación de archivos encriptados por la misma clave

3

Antecedentes: estoy planeando una configuración que involucra almacenar contraseñas como archivos cifrados individuales (usando el administrador de contraseñas pass ), y luego almacenar la clave privada necesaria para descifrar esas contraseñas en un dispositivo USB con un empuje para botón de descifrado (como un YubiKey).

Suponiendo que solo se pueda descifrar un archivo por prensa, incluso si un malware hipotético secuestra la conexión entre mi navegador y la llave USB, solo puede descifrar una contraseña por cada uso previsto. Y si descifra una contraseña diferente de la que solicité, me alertará por el hecho de que mi inicio de sesión no es correcto.

Pero esto supone que no es posible tomar dos archivos cifrados y combinarlos en un solo archivo cifrado, sin descifrar primero, de manera que el descifrador no pueda detectar 1 . Si esto fuera posible, un malware inteligente podría tomar todos los archivos de contraseña y volcarlos en uno solo, luego solo espere a que use la llave USB una vez y realice el ataque anterior. Esto haría al botón físico bastante inútil.

Entonces, mi pregunta es: ¿existe alguna garantía de que concatenar archivos cifrados no sea no posible, en general? ¿Depende de la ciper utilizada? (Obviamente no planeo usar encriptación homomórfica).

  1. Soy consciente de que algunos programas admiten (por ejemplo) varios bloques PGP blindados ASCII en un solo archivo, pero deben ser triviales para que el descifrador los reconozca como múltiples piezas de datos cifrados.
pregunta phu 12.11.2017 - 07:25
fuente

2 respuestas

3

Si está utilizando un algoritmo razonablemente razonable, existen 2 métodos para protegerse contra este tipo de ataque.

Uno es el modo de seguridad del cifrado . Al seleccionar uno que use retroalimentación (es decir, NO ECB), el descifrado de la contraseña adjunta dependerá de la contraseña original (que no estaba allí cuando se cifró la contraseña adjunta).

El otro es el uso de un vector de inicialización. Esta es una cadena aleatoria combinada con el texto claro y también se mantiene junto con el texto cifrado. Debido a que cada entidad encriptada debe tener su propio vector de inicialización, la contraseña adjunta no se puede descifrar utilizando el IV y la clave para la contraseña inicial.

    
respondido por el symcbean 13.11.2017 - 13:53
fuente
1
La respuesta de

@ symcbean es correcta, pero me tomó un tiempo digerir el artículo de Wikipedia sobre los modos de cifrado de bloques y convencerme a mí mismo. Para completar, aquí hay una explicación más explícita:

Los algoritmos de cifrado funcionan dividiendo el texto claro en bloques y cifrando cada bloque de acuerdo con un modo de cifrado de bloque particular. Todos los modos de uso común combinan el bloque anterior con el siguiente bloque antes del cifrado (por ejemplo, mediante XORing con el texto cifrado del bloque anterior) para resistir los ataques de texto plano conocido. (El primer bloque se combina con un bloque generado aleatoriamente llamado vector de inicialización).

Dado que nuestro atacante no tendría acceso a ningún texto claro, no puede replicar este proceso para los bloques que desea agregar.

    
respondido por el phu 13.12.2017 - 07:48
fuente

Lea otras preguntas en las etiquetas