LWN.net Logo

Advertisement

E-Commerce & credit card processing - the Open Source way!

Advertise here

Cold Reboot Attacks on Disk Encryption

Posted Feb 21, 2008 16:02 UTC (Thu) by flewellyn (subscriber, #5047)
Parent article: Cold Reboot Attacks on Disk Encryption

Well, that's...unsettling. What to do about this problem?

The only idea that comes to mind is programming the system firmware to "wipe" all system RAM on startup, overwriting the contents of RAM with zeroes prior to loading any operating system. I'm not sure if that would help, though.


(Log in to post comments)

Cold Reboot Attacks on Disk Encryption

Posted Feb 21, 2008 16:11 UTC (Thu) by johnkarp (subscriber, #39285) [Link]

Many system firmwares have the option to do a full memory test, which 
presumably overwrites RAM at some point. You'd have to set a BIOS password 
to keep them from skipping it. Though newer boards seem to have that 
option less often in the interest of faster boots. 

Cold Reboot Attacks on Disk Encryption

Posted Feb 25, 2008 7:04 UTC (Mon) by drag (subscriber, #31333) [Link]

The only solution to this sort of attack is to have the keys always in encrypted form
in-memory.`Then when the system needs to have the key it can be decrypted and accessed quickly
in CPU cache.

The sort of memory used in CPU cache is different then the sort that is used in main system
memory. So hopefull that cpu cache, besides being much faster, does not have the same
properties of regular Dram.

Or maybe have a built-in hardware tripwire that would 'zap' the ram in case of sudden power
loss. Nothing that would destroy the ram, but enough to flip all the bits back to zero or
something like that.

I expect that the only total solution would be change the design of the hardware like that.
Hopefully something that could be built-into the ram so that you would not have to modify the
design of the motherboard.

Cold Reboot Attacks on Disk Encryption

Posted Feb 29, 2008 22:19 UTC (Fri) by giraffedata (subscriber, #1954) [Link]

The only solution to this sort of attack is to have the keys always in encrypted form in-memory.`Then when the system needs to have the key it can be decrypted and accessed quickly in CPU cache.

Where do you keep the key for the key?

And how does a program put something in the CPU cache without it also being in memory?

Cold Reboot Attacks on Disk Encryption

Posted Mar 2, 2008 5:27 UTC (Sun) by kevinbsmith (subscriber, #4778) [Link]

"Where do you keep the key for the key?"

Keep in mind that "Security" is a spectrum, not a boolean. 

I have heard that it is pretty quick (and effective) to simply test every x-bit value that
exists in RAM, and see if it happens to be the key you are seeking. A billion tries don't take
too long. 

But if the in-RAM key were an encrypted version, and the key for the key were stored at some
other random location in RAM, then you just turned the search from n to n^2. Not a bad trick
if n is measured in gigas.

Another option would be to split the real key up into several pieces, and store them in
disparate locations. I haven't thought that one through enough to decide if it would be better
or worse than the key-for-a-key option. Nor how many pieces would be optimal. Seems promising
based on a few seconds of thought.

Is either of these approaches Perfect? Absolutely not. Are they enough of an improvement to be
worth doing? I would guess so, but would be interested to hear other opinions. If it turned
out to be effective against one specific, popular, real-world attack, and the cost is low,
sure.

Looking a bit deeper, an attacker could look at memory patterns (and/or source code) to reduce
the search space. But at least that would require the attacker to create a custom attack
rather than using an off-the-shelf cracking script. Again, it's about raising the bar, when
the costs of doing so are lower than the benefits.


Cold Reboot Attacks on Disk Encryption

Posted Mar 3, 2008 6:40 UTC (Mon) by njs (subscriber, #40338) [Link]

Searching all of memory for a given bitstring is indeed very quick -- a few seconds.  But,
err, if you already know what the bitstring for the key is, why are you searching for it?

What you'd really be searching for would be the data structure that's holding the key -- the
OS has some way to figure out which random-looking bitstring in those gigabytes of memory is
really the key, so you can too, by finding the right data structures and chasing the right
pointers.  AFAICT that means that the techniques you're suggesting won't work -- if the key is
split into multiple pieces, then don't look for the pieces, look for the data structure that
lists off where all of the pieces are so they can be found again by the OS.

Cold Reboot Attacks on Disk Encryption

Posted Mar 8, 2008 13:55 UTC (Sat) by kevinbsmith (subscriber, #4778) [Link]

You missed the point. If you know that a key exists somewhere in RAM, it is fast and simple to
read a key's worth of data starting at every byte in the system, and attempt a decode of every
one until you find one that works. Brute force with one giga of attempts. No knowledge of OS,
language, data structures, or app code is required, aside from knowing the encryption
algorithm and key size (which is usually easy to find). Dead simple. And quite effective.

Splitting the key, or having an encrypted key with its key elsewhere in RAM would foil that
attack. At that point, the cracker would have to know something about the specific app and
craft a custom attack, which makes the attack quite a lot more difficult/expensive.

It's like locking your car so the stereo thief breaks into the unlocked car instead. It won't
block a highly motivated/funded attacker, but will keep out some script kiddies. If the cost
of splitting the key is near zero, it might be a good benefit/cost tradeoff.

Cold Reboot Attacks on Disk Encryption

Posted Feb 21, 2008 16:14 UTC (Thu) by beoba (guest, #16942) [Link]

"At these temperatures (around -50 °C) you can remove the chips from the computer and let them
sit on the table for ten minutes or more, without appreciable loss of data."

So you can probably just pull the RAM modules and stick em into a machine that reads their
contents.

Cold Reboot Attacks on Disk Encryption

Posted Feb 21, 2008 16:32 UTC (Thu) by patrick_g (subscriber, #44470) [Link]

>>The only idea that comes to mind is programming the system firmware to "wipe" all system RAM on startup, overwriting the contents of RAM with zeroes prior to loading any operating system. I'm not sure if that would help, though.

If you click on the article link there is an answer to your idea : "An adversary can remove the chips from the target computer and transplant them into another computer that doesn’t overwrite RAM on startup".

Cold Reboot Attacks on Disk Encryption

Posted Feb 21, 2008 16:41 UTC (Thu) by flewellyn (subscriber, #5047) [Link]

Yes, I know; I asked that question there.  :-)

Cold Reboot Attacks on Disk Encryption

Posted Feb 21, 2008 16:38 UTC (Thu) by rvfh (subscriber, #31018) [Link]

I think what you really want to do is wipe at shut down, and I am sure this is dead easy to
program into the Linux kernel !
Don't know how fast that is, but start-up memory test being a few seconds, I'd guess the same
time or less to wipe a few GB of memory.

Cold Reboot Attacks on Disk Encryption

Posted Feb 21, 2008 16:46 UTC (Thu) by Los__D (subscriber, #15263) [Link]

And the attacker just pulling the plug, when the s/he obviously has access to the machine is
avoid how?

Cold Reboot Attacks on Disk Encryption

Posted Feb 21, 2008 17:35 UTC (Thu) by JamesErik (subscriber, #17417) [Link]

Surely there's enough capacitance in modern motherboards to provide a few milliseconds of CPU
time when power is lost such that the kernel could detect the start of a power loss event and
can tell the crypto-disk driver to erase its encryption keys?  Or not?

Cold Reboot Attacks on Disk Encryption

Posted Feb 21, 2008 17:55 UTC (Thu) by cventers (subscriber, #31465) [Link]

Perhaps, but I suspect that even that would not be enough. Imagine an FBI 
raid... they bring along their PC, plug it in and get it ready, open your 
case, blast off your RAM with the duster, and then perhaps pull the DIMMS 
out of your running system and slap them into theirs. No power loss event, 
and no interrupt telling the kernel "Quick! Someone is unplugging 
the DIMM, write zeros to it before they can finish!"

I'm glad this research was done, but reading something like this is 
unsettling for encryption in general.

I think what we need is some kind of 'secure DIMM' that uses capacitance 
and sets all its bits to 0 or 1 the moment it loses power. Or perhaps it 
could somehow drain all rows and columns to a big load?

(Disclaimer: I'm not an EE)

Cold Reboot Attacks on Disk Encryption

Posted Feb 21, 2008 17:59 UTC (Thu) by tcoppi (subscriber, #44423) [Link]

I think using superglue/epoxy on the chips combined with power-on memory checking and
disabling of external boot devices(such as network or usb booting) should be able to mitigate
this attack well enough, at least for all but the most paranoid of us.

Cold Reboot Attacks on Disk Encryption

Posted Feb 21, 2008 18:43 UTC (Thu) by zlynx (subscriber, #2285) [Link]

Use a case-open sensor or five to trigger thermite "heat sinks" (heh) mounted on your hard
disks and RAM.

Physical destruction is the only way to be sure.

Cold Reboot Attacks on Disk Encryption

Posted Feb 21, 2008 19:28 UTC (Thu) by cventers (subscriber, #31465) [Link]

As long as we're playing that game, what if they splice open the power 
cable and attach their own source so that they can untether it from your 
outlet, then take it back to their lab where they can use ultrasound to 
find the case sensors, then cut around them?

:p

Seriously though, there is often a cost factor in making security 
decisions, and I would like to think that so-called "secure DIMMs" that 
are designed to quickly empty themselves upon power loss become prevalent. 
Extraction could still be possible by carefully applying the right power 
to the right pins while removing the chips, but at least it wouldn't be as 
easy as the attack described in this paper appears to be.

Cold Reboot Attacks on Disk Encryption

Posted Feb 21, 2008 22:36 UTC (Thu) by endecotp (guest, #36428) [Link]

> what if they splice open the power cable and attach their 
> own source so that they can untether it from your outlet, 
> then take it back to their lab

I think you were joking, but that's actually exactly what they do:

http://www.engadget.com/2007/11/06/wiebetech-hotplug-lets...

Cold Reboot Attacks on Disk Encryption

Posted Feb 23, 2008 22:42 UTC (Sat) by macc (subscriber, #510) [Link]

GPS? tilt sensor or one of these little gyro thingies used
for model helicopters? Then moving the box would shut the OS down?

G!
MACC

Cold Reboot Attacks on Disk Encryption

Posted Feb 26, 2008 5:52 UTC (Tue) by njs (subscriber, #40338) [Link]

Naw, don't shut down.  Presumably the real solution is to every n minutes throw away crypto
keys and at the next attempt to access the encrypted data, require the passphrase be
re-entered.  (We assume that attackers can't or won't breach the case to suck things out in
less than n minutes.)  Then if you want to get fancy, you can also add accelerometers to the
list of things that trigger the crypto keys being flushed.

Nagging the user on a timer is somewhat annoying, of course, but should be practical if one
really has secret data (and if you segregate out the actually secret stuff from the everyday
stuff).  It might even be a feature to bug the user occasionally while they have secret data
open, to remind them of this fact -- sort of a modern equivalent to root's "#" prompt.

Cold Reboot Attacks on Disk Encryption

Posted Feb 25, 2008 13:11 UTC (Mon) by forthy (guest, #1525) [Link]

"Intrusion detection" is the key here. Add an acceleration sensor to your case, and make sure to set the thresholds so that any small case movement causes the system to erase its memory and shut down. Optimally screw the case to the wall so that you have to open it to move it, anyway, and no accidental kick with your foot will trigger the sensor. And remember to put trip wires around your door - as typical geek, you are supposed to be lonely (you know all your friends only by their IRC nicks, and all women you know have the jpeg surname ;-), so the likelyhood that someone else trips over your trip wires is extremely small ;-).

Cold Reboot Attacks on Disk Encryption

Posted Feb 21, 2008 17:58 UTC (Thu) by alecs1 (guest, #46699) [Link]

Interesting question.
Some folks told me once that power failed gradualy (a few until seconds until incandescent
bulbs went out completely) and they saw the Windows shutdown screen, so probably the OS tried
to go down in an emercency.
I never knew if to believe them or not.

Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds
Powered by Rackspace Managed Hosting.