Si un fichero comprimido codificado tiene la clave, ¿por qué no puedo extraerla?

Buenas, si yo tengo un ZIP, RAR o cualquier formato con contraseña, ésta debe estar guardada en una línea del fichero comprimido sin codificar para que el descompresor pueda comprobar que coincide. ¿Por qué no hay extractores que lean esa línea y se salten las claves?

Gracias

Saludotes ;)
thauker escribió:Buenas, si yo tengo un ZIP, RAR o cualquier formato con contraseña, ésta debe estar guardada en una línea del fichero comprimido sin codificar para que el descompresor pueda comprobar que coincide. ¿Por qué no hay extractores que lean esa línea y se salten las claves?

Gracias

Saludotes ;)



Porque no contiene la contraseña en si. Esa linea que comentas, no existe sin codificar. Está codificada.

Lo puedes extraer, pero lo que verás es algo rollo: "asndiyb18237afvb12397gasfb23b19fabv2", aunque en realidad, la contraseña sea "123456".

Pero se sigue una serie de pasos para cifrar la contraseña y generar una cadena de texto única.

A veces se utiliza el MD5 el fichero, que es completamente único y a ello se le suma la contraseña que se puso para generar una clave totalmente única.

Por eso mismo es imposible hacer una regla de 3 o resolver la X para saber la contraseña y descomprimir un archivo con contraseña.

Poder se puede, pero dependiendo del tipo de encriptado, usando fuerza bruta, puedes tardar horas, dias, semanas, meses o incluso años, dependiendo de la potencia del PC.
Gracias @xDarkPeTruSx pensaba que sí, aunque claro, ya no sería segura. He leído que un programa llamado John the Ripper puede crackearlas pero no me he metido a investigar.
thauker escribió:Gracias @xDarkPeTruSx pensaba que sí, aunque claro, ya no sería segura. He leído que un programa llamado John the Ripper puede crackearlas pero no me he metido a investigar.



Lo he usado y es muy completa.

Aquí tienes un vídeo muy explicativo:

https://www.youtube.com/watch?v=iO-Z7JWM18c


Lo malo es que si es una contraseña compleja (muy larga) tardará bastante tiempo, pero hasta ciertas cantidades es factible dejar el PC funcionando unas cuantas horas para sacar la contraseña.
Gracias, ¿es en plan brute force tipo uso intensivo de GPU? No tengo nada ahora, pero me dio curiosidad y si en un futuro se tercia, pues... [beer]
thauker escribió:Gracias, ¿es en plan brute force tipo uso intensivo de GPU? No tengo nada ahora, pero me dio curiosidad y si en un futuro se tercia, pues... [beer]


Por defecto creo que usa CPU, pero puedes usar OpenCL y CUDA (GPU).
Por que el archivo comprimido lo que tiene es un hash que cuando tu metes la contraseña ha de coincidir. El archivo o el programa no saben la contraseña. Si el hash no coincide es que la contraseña no es la correcta.
Como han dicho tiene un hash. Simplemente tu introduces la contraseña, se calcula el hash y si conciden, se descomprime el archivo.

Ningun sistema almacena las claves en texto plano.
…y que aparte de ser un hash lo que se guarda, en formatos medianamente modernos no es una protección como tal sino un cifrado completo. Es decir, que el orden de toda la información guardada se altera y solo se puede recuperar el orden original si se da la clave correcta.

Si por el contrario se hiciera algo como
if hash_fichero = hash_de_texto_introducido:
  permitirAcceso()

Sería tan sencillo como encontrar esa línea en el codigo máquina que se ejecuta (cargado en memoria) y hacer que devuelva verdadero de alguna manera. Con cualquier herramienta tipo cheat engine eso es posible sin conocimientos muy avanzados.

Incluso con GPUs un ataque de fuerza bruta es inviable en contraseñas medianamente largas (más de 8-9 caracteres). Y John the ripper está bien para aprender pero si quieres algo “serio” es poco más que un juguete.

Saludos
8 respuestas