Friday, February 22, 2008

Cold Boot Attacks on Encryption Keys

Thanks to Ann, I discovered this amazing attack.

From Princeton Information Technology Policy group:

Contrary to popular assumption, DRAMs used in most modern computers retain their contents for seconds to minutes after power is lost, even at operating temperatures and even if removed from a motherboard. Although DRAMs become less reliable when they are not refreshed, they are not immediately erased, and their contents persist sufficiently for malicious (or forensic) acquisition of usable full-system memory images. We show that this phenomenon limits the ability of an operating system to protect cryptographic key material from an attacker with physical access. We use cold reboots to mount attacks on popular disk encryption systems — BitLocker, FileVault, dm-crypt, and TrueCrypt — using no special devices or materials. We experimentally characterize the extent and predictability of memory remanence and report that remanence times can be increased dramatically with simple techniques. We offer new algorithms for finding cryptographic keys in memory images and for correcting errors caused by bit decay. Though we discuss several strategies for partially mitigating these risks, we know of no simple remedy that would eliminate them.

This is one of the coolest hack that I've ever seen.Moreover It's really easy to verify the behavior, let me try with this easy example. First of all let me see what I got in the memory:

Ok, there're are lots of interesting things... but who cares about these ?? :). Let me try to refill the memory with a well known string: for instance let me use the word "HACK". Refilling the memory is quite easy with an auto-sized buffered language as python or perl, for example we can use the easy python suggested script :

a = ""
while 1: a += "HACK"

After fews minutes the computer starts to swap the memory into HD; it's time to stop it (^C). Here we are, after a fast reboot
typing for the second time :

What I've founded ?

I don't wanna comment this result . It's self explicated.

1 comment:

Luke said...

That is a very interesting post on memory techniques! In fact, to find out more about other useful memory techniques, check out