In memory of hard disk encryption?
In security we generally claim there is no silver bullet. Or we say no measure ever is protecting you for 100% of the cases.
Typically we think of the hardware of our computers in a specific way. One of those is that the contents of RAM is gone as soon as you turn off the power. Makers of software such as ssh-agent, PGP software and hard disk encryption software rely on encryption keys in RAM that get erased when the system is turned off.
Newly published research goes a long way to show the hardware isn't behaving like most of us think it is and that memory modules, even removed from the motherboard can retain data for seconds to minutes allowing retrieval of the cryptographic keys.
The abstract of the paper: "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."
A youtube video by the authors:
So what does that mean to us ?
- We might have a new way down the road to do forensics and extract memory images of corrupted systems more reliably than to have to trust the infected system to create the image.
- Encryption keys in memory might not be safe or be possible to be protected by the OS from access. While some keys might not absolutely be needed in RAM for a long term, e.g. keys to decrypt hard disk images are non-trivial to only keep for very short time in memory.
- Other secrets kept in memory are likely to have the same problems, think about ssh-agent keeping a copy of your private ssh key ready to let you log in on a remote system, think about pgp keeping the private key ready to not bother you with the passphrase for every email you send or read.
The current trend towards hard disk encryption we see as a means to address other security failures might need to be revised.
I guess it boils down to me saying that every time the media report on a lost laptop containing some long list of sensitive information that the only questions raised seem to be if the disk was encrypted or not, and why in the latter case.
I'd already since quiet some time would like to see added as questions: why was that data sensitive?; are there no better ways to do what that data does (e.g. SSNs are IMHO abused when used to authenticate you, it's like having your password and your loginname the same)?; why was sensitive data stored on a portable device?; where was the absolute need to have the sensitive data?; why was the sensitive data mixed in with less sensitive data?; why was sensitive data allowed out of the organization that collected it?; why was a laptop containing sensitive data left unattended?; ... There usually is a long chain of failures before such data gets leaked. Assuming all of them are normal except the last link that was missing on the chain isn't the right -nor fair- reaction.
In the future now there should be even more questions that need answers:
- How long ago was the laptop turned off ?
- Was the laptop turned off, or just asleep?
- What encryption product was used and does it wipe its keys from RAM upon shutdown or sleep actions ?
- ...
Still, if you have confidential material, disk encryption is one of the layers, just don't use it as the only layer.
More information:
- The paper itself: http://citp.princeton.edu.nyud.net/pub/coldboot.pdf
- More information: http://citp.princeton.edu/memory/
--
Swa Frantzen -- Gorilla Security
Comments
I think for sensitive enviroments, forced power-offs might be a new policy...
Jason
Feb 22nd 2008
1 decade ago
Of course, the best thing would be for the software to perform a wipe of the keys itself, since it knows where those keys are.
Matt Hoffman
Feb 22nd 2008
1 decade ago
Some products doing full disk encryption even let one steal the key of the crypto as they use it to get to the fancy graphical interface before prompting the user for a password ...
BIOS settings can be changed by the attacker, RAM modules can be removed from the system and read in another system.
The software itself cannot wipe the key in all cases as it might be crashed by removing power and then rebooting, or removing the modules.
Swa
Feb 23rd 2008
1 decade ago
Ian
Feb 24th 2008
1 decade ago