No tengo la capacidad de determinar / recuperar la contraseña maestra para un sistema de producción que usa archivos zip 2. Sin embargo, necesito poder agregar nuevos archivos a archivos encriptados existentes. Existen varias herramientas que pueden "romper" el cifrado zip 2.0 con un ataque de texto simple conocido, que permite la recuperación de los contenidos. Sin embargo, no estoy interesado en recuperar los contenidos.
Dado que estas herramientas recuperan la clave 0-2 (3x triplete de clave de 4 bytes) según zip 2.0 appnote (desplácese hasta casi el final), en teoría sería posible que esas herramientas (o una utilidad zip de código abierto modificada que puede escribir archivos zip 2.0 encriptados) inicialicen el conjunto de claves con el descifrado conocido triplete clave, genere un 'aleatorio' de 12 bytes, y luego use estos valores para agregar archivos adicionales al archivo existente?
El objetivo, en términos simples, es agregar 06_14.dat
, 07_14.dat
, 08_14.dat
, etc. a un archivo de copia de seguridad que el sistema backend pueda leer.
Tenga en cuenta que simplemente agregar archivos no cifrados no será suficiente: el sistema usa un token de hardware para la clave de cifrado / descifrado (por lo que posiblemente no pueda recuperarlo) Y trata de descifrar cada archivo individualmente usando la lógica: 1) archivo de listas; 2) ordena por los nombres de arriba donde los primeros 2 dígitos representan el mes 01-12 y los segundos 2 dígitos representan el año de 1997-2014; 3) y luego intenta extraer el archivo MÁS NUEVO en primer lugar - rescatar el primer fallo de descifrado. Si el archivo actual que desea descifrar / descomprimir, que coincide con la firma ##_##.dat
, no está cifrado, entonces también se bloquea.
Más detalles del sistema no deberían ser necesarios, pero la razón por la que ocurrió este problema es porque nuestro sistema de front-end que compartió la clave simétrica (y adjuntó automáticamente los archivos .dat para nosotros) pasó a la otro mundo donde el hardware obsoleto falla una vez que funciona mal.
Estoy abierto a posibles soluciones al problema, pero solo una discusión animada sobre si esto es factible / práctico / etc. es más que suficiente: construiré la solución si esta línea de razonamiento parece posible.