I guess am a bit of a paranoid ha... anyway i encrypted my HDD with truecrypt using all printable ASCII characters and the password is 64 characters long. It is quite random, certainly no dictionary words but it is still possible to memorize easily.

Can it be brute-forced? The thing is, i know that its supposed to be secure, but isn't there a chance that someone can just guess the password after like 10 attempts?

Surely that possibility exists. Sometimes lightning strikes as they say.

10 Answers
10

No security measure is safe on its own, as it may contain bugs/vulnerabilities/etc. It might withstand a single method (e.g. brute-forcing) for circumventing the protection, but there might be a combination of methods that it may not be able to handle.

TrueCrypt stores its keys in RAM; on
an ordinary personal computer the DRAM
will maintain its contents for several
seconds after power is cut (or longer
if the temperature is lowered). Even
if there is some degradation in the
memory contents, various algorithms
can intelligently recover the keys.
This method, known as a cold boot
attack (which would apply in
particular to a notebook computer
obtained while in power-on, suspended,
or screen-locked mode), has been
successfully used to attack a file
system protected by TrueCrypt.

Cold Boot attacks can be mitigated by enabling memory testing in the BIOS (which will scrub the RAM at power up), and preventing someone from removing the DIMMs from your PC (which will prevent someone from pulling the DIMMs and copying the contents). Oh, and epoxy your CMOS battery and CMOS clear jumper to prevent someone from disabling the memory testing.
–
msemackJun 23 '11 at 19:11

1

TrueCrypt 7 wipes cached passwords from the driver memory, after TrueCrypt exits or automatic dismount of devices. You can enable this in the "True Crypt - Preferences"-Dialog
–
DiableNoirJun 23 '11 at 19:45

At work, we deal with hard drive encryption on a daily basis. The truth is, the kind of encryption you have on your drive are probably very sufficient for a home user. I have that same feeling of being paranoid with all my data, and truecrypt satisfies me.

However, true encryption for hard drives has to be at the hardware level. Looks for Stonewood drives (Flagstones) on the net. They offer full hardware encryption with a maximum of 5 attempts before locking out, then 5 more before completely destroying the drive according to government standards.

There are 95 printable ASCII characters (including space), so there are 9564 possible 64-character passwords. That's 3.75 x 10126, which is over 420 bits of security. In comparison, 128-bits is considered secure from brute forcing for an AES key, and 265-bits is enough to assign a different value to every atom in the visible universe.

Assuming your adversary has a botnet of 10 billion computers (1000x larger than the largest known botnet), each of which can check 1 billion passwords per second, the expected time to find your password by brute-force would be 5.87 x 1051 years - that's 45 trillion trillion trillion times the age of the universe.

So yes, your password is absolutely secure from brute-forcing. In fact, assuming you are using AES-256, your 64-character password gives you no extra security over a 39-character password, because after that point it would be faster to just brute-force the key.

While this is true as far as it goes, calculations like this assume that all the password possibilities must be tried for the attack to be successful. That is, you're assuming that the last password possibility will be the correct one, rather than just the last one they try. Which could be the first, the fifteenth, or the fiftieth just as easily. They are after all trying passwords in random order. And random allows early success as well as no success at all. Since we're in to paranoia.
–
zenbikeJun 26 '11 at 14:05

@zenbike: Yes, that is taken into account in my calculations; the expected time (average over many attempts) is the square-root of the search space (see here) - that is, after 5.87 x 10^51 years, there's a 50% chance of having found it. The chance drops off rapidly as we get closer; for instance, the chance of finding the password in 5.87 x 10^46 years is about 0.000001% - the chance of finding the password in our lifetimes would be about the same as the chance of a person randomly walking through a wall due to quantum effects.
–
BlueRajaJun 26 '11 at 18:40

@BlueRaja: And yet, as small as the chance is, it exists, and the possibility (not probability) of breaking the encryption in a usable timeframe also exists.
–
zenbikeJun 27 '11 at 12:57

@zenbike: Luckily, we live in the real world, where some things are so improbable they are considered, for all intents and purposes, impossible. This is fortunate, for it's completely possible, for example, for every atom in my body to magnetize at once and rip the iron right out of my blood; or for every bond to suddenly break, turning me into a gas. Back in the real world, SHA-1 has only 80 bits of security (many orders of magnitude less than his password) against collisions, yet, despite supercomputers actively searching, no one has ever found two passwords that hash to the same SHA-1.
–
BlueRajaJun 27 '11 at 16:15

If your password is sufficiently random then, as BlueRaja detailed, you are quite safe from a brute-force attack.

However, there is a marginally stronger, and certainly less painful, approach that may be available to you (I say "may" because I'm not sufficiently familiar with TrueCrypt; I use this approach with a LUKS/AES-256 drive). Unlock the drive with a private key instead. Store that key on a USB drive. Lock that key with a passphrase (it doesn't have to be overly complex) and you're effectively in two-factor Nirvana.

For the truly paranoid, there are attack vectors other than a cold-boot attack:

A persistent, boot sector attack. For example:

A bad guy, who has physical access to your machine, could replace the TrueCrypt boot loader with a malicious one. It would look and act sufficiently like TrueCrypt, allowing you to unlock and access your encrypted drive, but would store your passphrase for later retrieval by the bad guy. I've not actually tested this, but I read that a tool of this nature does indeed exist:

(Again, I don't know if TrueCrypt supports this, but...) A decent solution to this is to place the boot sector and unencrypted boot loader on a USB drive. Presumably you keep this on your person. (For added security, use a USB drive with hardware encryption).

A key-logger or video recording of you entering your password. Using a USB drive-based key would protect you from this (until an attacker mods your hardware to monitor the USB/data bus/memory of your machine. This, I suppose, is unlikely...)

The right question is what risk are you trying to mitigate and is HD encryption sufficient to mitigate to an acceptable level. If you are storing super top-secret govt plan plans to take over the world, then you might need more or less security than if you are protecting your personal financial data (or pr0n stash).

Humans are horrible at assessing the true level of risk associated with an activity. Chances are if someone steals your laptop they are more interested in re-using it than getting the data (unless you have those super secret plans...)