The security researcher who demonstrated the 'cold boot' attack has released the source code for the hack. The attack, first demonstrated in February, uses a set of utilities to lift crypto keys from memory even after a reboot. A boon for hackers and computer forensics experts alike, the approach created a means to circumvent …
Relatively easy to fix
Make sure all key material is wiped on screen lock/hibernate. You usually need to reenter the password, so the OS can regenerate it's keys when the machine wakes up.
Also, having the BIOS do a full memory test before booting should remove any old data, unless people have a way of replacing the bios before booting?
cant see how it really does anything useful, a mobo bios can take 30sec to boot before any drive is accessed, then the bios would have to have the floppy drive as the primary boot check
Ha, seasoned crackers used to do this back in the early 80s to lift code from protected Spectrum games. :-)
Wot no hard reset?
Who forgot to implement the hard reset signal for DRAM chips? And was that incompetence or malice (or maybe even just technological necessity)?
Easy to defeat?
Does this attack work if you have "quick POST" turned off in the BIOS so the BIOS does a full memory test? Won't the crypto keys get nuked by the BIOS.
Or... there must be some memory the BIOS is almost guaranteed to flatten on boot (e.g. where does the boot loader get loaded?!), the OS should allocate that specific bit of physical memory for its crypto keys... if the keys are long > 1 sector you can still flatten 1 sectors worth, 512 bytes is a lot to guess for a crypto key!
Both ways, reboot & the keys get flattened by the BIOS.
A boon for the crackers as well
It is not just hackers or computer forensics.
The problem with the OS regenerate keys, is you have to keep somethings outside of the encrypted area to allow for that. So, for example if you lock the computer you will have to stop logging, or expose the logs.
It is the solution but is not that simple when you wonder what wouldn't work, and how much you would have to control. You couldn't assume a write to disk, so perhaps you start buffering, and that could lead to RAM exhaustion attacks.
Make sure that your BIOS is:
a) set to boot from internal harddrive first, not external drives.
b) Password protected.
Hopefully the time it takes to open the machine and physically reset the BIOS means there's insufficient key material left in the RAM.
Chris' idea of turning off the quick test sounds like a good idea too.
There's prob. no substitute for proper physical security while the machine is on/hibernating.
@Easy to defeat?
Yes - if they use your computer. A very similar method is to rip the ram straight out of the mobo (after giving it a quick blast with an upside down can of compressed air to cool it) and whack it into your own system that has quick boot on., then boot off your pendrive and get the keys out that way. And as long as you put the stick into your computer as a second stick, any areas that would get written too occurs on the first stick.
Doing it at the chip level is the best bet, and should have the following inputs: hard reset input, refresh loss or repowering (ie getting good power after a power loss).
As soon as any of those are detected then all the DRAM cells get wiped, likely by a single inversion of a in-chip power rail or a slight modification to the refresh logic that does a wiping in the first refresh cycle or similar.
This would make the DRAM immune to all hotswap nasties.
I believe that as soon as the power is returned to the memory, the bits would keep themselves there. The long bios memory test doesn't take nearly long enough to overwrite the entire capacity of the memory.
Seems like the safe way to take care of this would be to shut down the computer and power supply, just to cut off that pesky standby power. And possibly make sure that loads and loads of different (bad) keys are stored in memory at any given time can't help.
The DRAM cell that holds each bit is very simple, basically a capacitor and a transistor. Adding a hard reset to the chip would double the transistor count and halve the capacity / double the price per gigabyte.
There may be a market for "secure DRAM" that gets reset, but I doubt it.
Easy to defeat? pt2
Yes, it is that easy to defeat. I read their pdf. A full memory scan nukes it... ECC memory works too because the BIOS has to reset all the memory on boot up.
As for taking RAM out of a machine all bets are off with all encryption systems when you _own_ the hardware. Just read Hacking the Xbox!
But I'd like to see someone get the ECC RAM out of a particular server of mine in a hurry without slicing their fingers off on the damn case! The trail of blood will presumably lead directly back to the perp.
Yes, but you only need a few kilobytes of "secure DRAM" to hold the keys; the rest can be normal DRAM.
BIOS can be bypassed, so all Mem Checks are off
Here's a nice trick that works with certain Mobo vendors and corresponding CMOS/BIOS Writers:
Put new firmware on a floppy!
I've had to do this before when a friend of mine bricked his BIOS. Basically, you just make a Windows boot floppy, put the BIOS flasher and new BIOS (With Mem Test disabled or even missing from the binary) on it, and put the commands to flash it in the AUTOEXEC.BAT.
Apparently, you pull out a jumper, put in the disk, and it doesn't even do a BIOS check, it just runs the disk and Flash's the BIOS (Don't know specifics, would need to check some hardware I'd think). Works on a LOT of MSI hardware.
Now, with enough recon, you could figure out the mobo maker, and download a BIOS update. End result - Owned.
Sidenote: If your HDD encryption relies on your Windows password, your HDD encryption is S**t. Stick some something safe, like TrueCrypt (And it's Bootloader).
BIOS full memory scan maybe no solution
I'm no expert, but what is the default BIOS mode?
If it's full scan, ok. But if it's not, then being in Full-scan is certainly not a workaround.
The security agency just needs to reset the BIOS.
And contrary to what has been said above by Pheet, it's futile to expect that "Hopefully the time it takes to open the machine and physically reset the BIOS means there's insufficient key material left in the RAM."
The basic hypothesis here is that the people coming it to get you have access to the computer while it's still turned on.
You can't seriously expect that they'll turn it off, then open the machine.
They will just open the machine, and when they have their screwdriver 1 inch from the BIOS reset button, ready to go, then they'll turn off, reset BIOS and turn on. 5 seconds lost, at most.
it only counts in blocks not every address,
easier to 'pop rivet' the case shut