I forgot the password of a EncFS folder (created, went to vacation, forgot). But I remember how the password was created (e.g. was a sequence of 4 dictionary words). So I decided to try to find the password - even if I'm absolutely not expert in system security.
The only way I know to break a password is with brute force attacks.
Given an EncFS folder including the .encfs6.xml
file, it is possible to test if a password is correct or not by just mounting the folder and providing the password, like has been done here.
But I noticed that this kind of attack is very slow. I would like to try a parallel attack and use a GPU to test the passwords.
I know that to perform "quickly" an attack over the password, is better to get "something" for example the hash of the password, and just compute the hash over the putative passwords until a matching one is found.
But I don't know how EncFS works: I know that .encfs6.xml
is fundamental to decrypt the data, but I don't know what data it contains and how to use it to parallelize my attack.
How does EncFS encrypt the data and how can I use the content of .encfs6.xml
to test if a password is valid, without having to run the encfs utility? (Or, where in the EncFS code I can find the relevant information to answer this question?)
EDIT:
I am also considering to use openssl
for the attack, but I still have to figure out how to use .encf6.xml
information in the command line openssl tool. Not even sure about which algorithm to use: aes-256-what??
.encfs6.xml format
returned a first link of unix.stackexchange.com/questions/184215/…. So we know that the file contains the encrypted key for your folder. You need your password to decrypt that key. I suspect that with a little research you can find the algorithm used to encrypt the key and reproduce it in an application. That should be faster.