Sign up ×
Information Security Stack Exchange is a question and answer site for information security professionals. It's 100% free, no registration required.

If I create a TrueCrypt volume and secure it with a password and a keyfile, is there any way that someone who has access to my computer would be able to tell that the volume requires a keyfile to decrypt?

If not, then if I store the keyfile on my computer, along with thousands of other files, won't it be practically impossible to decrypt the volume using brute force, since even if they correctly guessed my password, they wouldn't know they had guessed it correctly, since they wouldn't have used it in combination with the keyfile, because they don't even know a keyfile exists for the volume?

According to the TrueCrypt manual, a keyfile can be any file, so they wouldn't even be able to search for keyfile signatures on my computer.

Not to mention using more than one keyfile per volume. Wouldn't this increase the security hugely, since out of the thousands of possible files on my computer, they would have to guess the exact combination of keyfiles, and they obviously wouldn't know how many keyfiles I'd used for the volume.

Please can someone clarify this for me? I'm sure I've got it wrong.

share|improve this question

4 Answers 4

The KeePass documentation specifically recommends not to do this:

... The point of a key file is that you have something to authenticate with (in contrast to master passwords, where you know something), for example a file on a USB stick. The key file content (i.e. the key data contained within the key file) needs to be kept secret. The point is not to keep the location of the key file secret — selecting a file out of thousands existing on your hard disk basically doesn't increase security at all, because it's very easy for malware/attackers to find out the correct file (for example by observing the last access times of files, the recently used files list of Windows, malware scanner logs, etc.). Trying to keep the key file location secret is security by obscurity, i.e. not really effective.

share|improve this answer

Yes, you're right, any old file can do the job, as has been mentioned it should be 1Mb or over for maximum entropy, and the archive won't automatically show that a keyfile is needed.

You can use a file on your disk to this, but I prefer to use an innocuous looking file on a USB key. This is probably over-cautious, as once you encrypt with a decent amount of entropy, the only decent attacks are really duress based, but it does add an extra factor in that you can take your key anywhere with you.

The great thing about the USB key approach IMO is that, because the file can be anything, you can easily put only a few files onto the stick, saving hunting out the file, and yet still not make it obvious that it's a keyfile.

Encryption always fails to a well thought out duress attack though.

share|improve this answer
Also a good point - don't use system or program files as keyfiles. A friend of mine used a DLL he found in his program files, and when that program auto-updated, he lost access to his archive until he was able to source an older version! – Owen Jan 29 '14 at 12:22
Isn't it a concern that the USB drive may become corrupted/stepped on and broken/etc? – Bob Feb 7 '14 at 18:43
Well, yeah, I guess, but you can always keep a backup somewhere too. – Owen Feb 10 '14 at 10:41

Be careful as to the choice of keyfile.

If you pick e.g. a jpeg for your keyfile, then a thoughtless user clicking the "Rotate" button in your graphical shell will destroy your key. Setting the "star rating" or updating the track data on an MP3 file will do the same.

Likewise if it is a text file, a trivial edit such as changing a tab to spaces will destroy the key.

If this is a concern consider using a type of file which is not typically edited such as a PDF, an executable, a DLL or similar binary file.

Ultimately a keyfile is just a really long password.

share|improve this answer

It's probably not that common for your files to have specific formats/lengths matching key files. I suspect some of the forensics tools like encase/ftk/etc probably find these very quickly by default as being files worth looking at.

Edit: As mentioned below I didn't realise truecrypt lets you use other regular files as keys, meaning files don't have to be orphans with no clear purpose. Make sure they do.

share|improve this answer
No, Truecrypt allows any kind of file as a keyfile; it can be a jpeg or mp3 for example. There is no particular "profile" for a keyfile. – mgkrebbs Jan 28 '14 at 8:01
... That... Makes a lot of sense. My answer is invalid then and I'd go with a file that has a clear other purpose (legit mp3 or family photo etc) as a key rather than a 'suspicious' file with no other purpose. – pacifist Jan 28 '14 at 22:26

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.