Primero, debo señalar que Hashcat no sería la herramienta adecuada para el trabajo. Hashcat funciona en hashes, y OpenSSL no almacena el hash de la clave. En su lugar, necesitaría tener al menos un bloque de texto plano conocido, después de lo cual puede intentar forzar la fuerza bruta de una clave que hace que ese texto simple se cifre en el texto cifrado que se ve en el archivo. Hay otras herramientas que pueden hacer esto.
Sin embargo, creo que no está entendiendo cómo funciona realmente el comando que ha especificado. Desafortunadamente, OpenSSL no toma archivos de claves. Cuando le da una contraseña en forma de archivo, solo toma la primera línea como la contraseña. Esta línea se procesa exactamente como si la pasara a través de pass
. Es decir, se procesa una vez con SHA-256 para formar un valor de 256 bits que se usa para ingresar la clave AES. Debido a que el archivo que está utilizando es binario, es muy posible que un carácter de nueva línea (0x0a) sea uno de los primeros bytes.
Si sucede que un byte de nueva línea está dentro de los primeros ocho o más bytes, será absolutamente posible forzar el archivo cifrado resultante. La probabilidad de que cualquier byte dado sea una nueva línea es 1/256. La posibilidad de que una nueva línea esté presente en los primeros ocho bytes es solo de 1/32. Esto significa que no hay garantía de que no sea posible forzar de forma bruta un archivo que cifró incorrectamente al pasar un archivo binario como clave.
Entonces, ¿cómo harías esto correctamente ? Usted querría hacer el hash del archivo de claves y pasar el hash como una clave al comando OpenSSL. Esto se puede hacer fácilmente usando utilidades comunes:
pass=$(sha256sum keyfile.key | awk {'print $1'})
Luego puede pasar esta clave a OpenSSL usando -pass pass:$pass
. Esto garantizará que la entropía de la clave no será inferior a la entropía del archivo de claves que le proporcione. Para un archivo de claves de 4092 bits, el hashing con SHA-256 resultaría en una clave de 256 bits. La fuerza bruta que requeriría realizar hasta 2 operaciones de cifrado 256 que, como se menciona en la otra respuesta, no sería posible completar antes de que finalice el universo, asumiendo que el archivo de claves de 4092 bits es realmente aleatorio.