Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I don't purport to be an expert on encryption (or even TrueCrypt specifically), but I have used TrueCrypt for a number of years and have found it to be nothing short of invaluable for securing data. As relatively well known free, open-source software, I would have thought that TrueCrypt would not have fundamental flaws in the way it operates, but unless I'm reading it wrong, it has one in the area of hidden volume encryption.

There is some documentation regarding encryption with a hidden volume here. The statement that concerns me is this (emphasis mine):

TrueCrypt first attempts to decrypt the standard volume header using the entered password. If it fails, it loads the area of the volume where a hidden volume header can be stored (i.e. bytes 65536–131071, which contain solely random data when there is no hidden volume within the volume) to RAM and attempts to decrypt it using the entered password. Note that hidden volume headers cannot be identified, as they appear to consist entirely of random data.

Whilst the hidden headers supposedly "cannot be identified", is it not possible to, on encountering an encrypted volume encrypted using TrueCrypt, determine at which offset the header was successfully decrypted, and from that determine if you have decrypted the header for a standard volume or a hidden volume?

That seems like a fundamental flaw in the header decryption implementation, if I'm reading this right -- or am I reading it wrong?

share|improve this question
up vote 2 down vote accepted

Hidden volumes are intended for more sensitive data, depending on what you're trying to hide.

Let's just say you store your kitten images with captions in the regular volume, and nuclear weapon launch codes in the hidden volume.

Scenario 1: Wrong password. Attempts for the regular volume and the hidden volume fail.

Scenario 2: Regular password. Attempts and succeeds to access the regular volume. You get your kitten images with captions! You better hope that guy with the baseball bat believes you when you tell him that there's not a hidden volume. But that's a fundamental problem with the feature, not its implementation.

Scenario 3: Hidden volume password. Attempts and fails to access the regular volume. Tries and succeeds to access the hidden volume. You get your nuclear weapons launch codes.

Only in Scenario 3 you can access the hidden volume, and only after knowing its password. Otherwise, it's just garbage data! (Scenario 1). So where's the issue if someone knows your hidden volume password, and can find out that it's the password for the hidden volume? If they get your launch codes, you have bigger problems than them wanting to find out about your kitten pictures.

share|improve this answer
Ah, I had a fundamental misunderstanding of the terminology -- I thought the regular volume was supposed to be the launch codes, and the hidden volume was supposed to be the kitten images. Still, it's interesting, as it lets an attacker know that if they decrypt the 'launch codes' volume there is likely still another on that volume in existence, kitty pictures or not... – Matthieu Cartier Jan 3 '11 at 15:27
Memorize the launch codes, problem solved! :-> – Moab Jan 3 '11 at 15:56

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .