Cold boot attack
In cryptography, a cold boot attack (or to a lesser extent, a platform reset attack) is a type of side channel attack in which an attacker with physical access to a computer is able to retrieve encryption keys from a running operating system after using a cold reboot to restart the machine from a completely "off" state.[1][2] The attack relies on the data remanence property of DRAM and SRAM to retrieve memory contents which remain readable in the seconds to minutes after power has been removed.[2][3]
Contents |
[edit] Description
To execute the attack, the machine is cold-booted. Cold-booting refers to when power is cycled “off” and then “on” without letting a computer shut down cleanly, or, if available, pressing the “reset” button. A light-weight operating system is then immediately booted (e.g. from a USB flash drive), and the contents of pre-boot memory dumped to a file. Alternatively, the memory modules are removed from the original system and quickly placed in another machine under the attacker's control, which is then booted to access the memory. Further analysis can then be performed against the information that was dumped from memory to find the sensitive keys contained in it (automated tools are now available to perform this task[4]).
The attack has been demonstrated to be effective against full disk encryption schemes of various vendors and operating systems, even where a Trusted Platform Module (TPM) secure cryptoprocessor is used.[2] This is because the problem is fundamentally a hardware (insecure memory) and not a software issue. While the focus of current research is on disk encryption, any sensitive data held in memory are vulnerable to the attack.[2]
The time window for an attack can be extended to hours by cooling the memory modules. Furthermore, as the bits disappear in memory over time, they can be reconstructed, as they fade away in a predictable manner.[2] In the case of disk encryption applications that can be configured to allow the operating system to boot without a pre-boot PIN being entered or a hardware key being present (e.g. BitLocker in a simple configuration that uses a TPM without a two-factor authentication PIN or USB key), the time frame for the attack is not limited at all:[2]
This is not the only attack that allows encryption keys to be read from memory—for example, a DMA attack allows physical memory to be accessed via a 1394 DMA channel. Microsoft recommends changes to the default Windows configuration to prevent this if it is a concern.[5]
[edit] Mitigations
[edit] Dismounting encrypted disks
Most disk encryption systems overwrite their cached encryption keys as encrypted disks are dismounted. Therefore, ensuring that all encrypted disks are dismounted (secured) when the computer is in a position where it may be stolen may eliminate this risk, and also represents best practice.[6]
[edit] Advanced encryption modes
The default configuration for Bitlocker uses a TPM without a boot PIN or external key—in this configuration, the disk encryption key is retrieved from the TPM transparently during the operating system startup sequence without any user interaction. Consequently, the Cold Boot Attack can still be executed against a machine with this configuration, even where it is turned off and seemingly safely secured with its keys in the TPM only, as the machine can simply be turned on before starting the attack.
Two-factor authentication, such as a pre-boot PIN and/or a removable USB device containing a startup key together with a TPM, can be used to work around this vulnerability in the default Bitlocker implementation.[7][8] In this mode, a PIN or startup key is required when turning the machine on or when waking from hibernation mode (a power off mode). The result is that once the computer has been turned off for a few minutes, the data in RAM will no longer be accessible without a secret key; the attack can only be completed if the device is obtained while still powered on. No additional protection is offered during sleep mode (a low power mode) as the key typically remains in memory with full disk encryption products and does not have to be re-entered when the machine is resumed.
[edit] Power management
Shutting down a computer causes a number of well-known encryption software packages to dismount encrypted data and delete the encryption keys from memory. Where a machine is shut down or loses power and encryption has not been terminated (such as in the event of sudden loss of power) data may remain readable from tens of seconds to several minutes depending upon the physical RAM device in the machine. Ensuring that the computer is shut down whenever it might be stolen can mitigate this risk.[2][9]
In order to protect against cold boot attacks against systems using a hibernate feature (ACPI state S4), the encryption system must either dismount all encrypted disks when entering hibernation, or the hibernation file or partition would need to be encrypted as part of the disk encryption system.
By contrast sleep mode (ACPI states S1, S2 and S3) is generally unsafe, as encryption keys will remain in the computer's memory, allowing the computer to read encrypted data after waking up or after reading back the memory contents. Configuring an operating system to shut down or hibernate when unused, instead of using sleep mode, can help mitigate this risk.
[edit] TCG-compliant systems
Another mitigation method is to use hardware and an operating system that both conform to the "TCG Platform Reset Attack Mitigation Specification",[10] an industry response to this specific attack. The specification forces the BIOS to overwrite memory during POST if the operating system was not shut down cleanly.
However, this measure can still be circumvented by removing the memory module from the system and reading it back on another system under the attacker's control that does not support these measures (as demonstrated in the original paper).
[edit] Booting
Although limiting the boot device options in the BIOS may make it slightly less easy to boot another operating system,[8] many BIOSes will prompt the user for the boot device after pressing a specific key during boot. Limiting the boot device options will not prevent the memory module from being removed from the system and read back on an alternative system either. In addition, most chipsets allow the BIOS settings to be reset if the mainboard is physically accessible, allowing the default boot settings to be restored even if they are protected with a password.
[edit] Software encryption outside RAM
Kernel patches such as TRESOR (for Linux), presented at USENIX Security 2011,[11] modify the kernel of an operating system so that CPU registers (in TRESOR's case the x86 debug registers) can be used to store encryption keys, rather than RAM. Keys stored at this level cannot easily be read from userland and are lost when the computer restarts for any reason. TRESOR uses on-the-fly round key generation, atomicity, and blocking of usual access to the debug registers via ptrace for security, adding CPU-only AES as an additional encryption method.
TRESOR's developers state that "running TRESOR on a 64-bit CPU that supports AES-NI, there is no performance penalty compared to a generic implementation of AES",[12] and run slightly faster than standard encryption despite the need for key recalcuation, a result which initially surprised the authors as well.[11]
[edit] References
- ^ Douglas MacIver (2006-09-21). "Penetration Testing Windows Vista BitLocker Drive Encryption". HITBSecConf2006, Malaysia: Microsoft. http://www.secguru.com/files/hitbsecconf2006kl/DAY%202%20-%20Douglas%20MacIver%20-%20Pentesting%20BitLocker.pdf. Retrieved 2008-09-23.
- ^ a b c d e f g J. Alex Halderman, Seth D. Schoen, Nadia Heninger, William Clarkson, William Paul, Joseph A. Calandrino, Ariel J. Feldman, Jacob Appelbaum, and Edward W. Felten (2008-02-21). Lest We Remember: Cold Boot Attacks on Encryption Keys. Princeton University. http://citp.princeton.edu/research/memory/. Retrieved 2008-02-22.
- ^ Sergei Skorobogatov (June 2002). Low temperature data remanence in static RAM. University of Cambridge, Computer Laboratory. http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-536.html. Retrieved 2008-02-27.
- ^ "Passware Software Cracks BitLocker Encryption Open" (Press release). PR Newswire. 2009-12-01. http://www.prnewswire.com/news-releases/passware-software-cracks-bitlocker-encryption-open-78212917.html.
- ^ "Blocking the SBP-2 Driver to Reduce 1394 DMA Threats to BitLocker". Microsoft. 2011-03-04. http://support.microsoft.com/kb/2516445. Retrieved 2011-03-15.
- ^ "Cold Boot Attacks on Encryption Keys (aka "DRAM attacks")". Sarah Dean. 2009-11-11. http://www.freeotfe.org/docs/Main/FAQ.htm#de. Retrieved 2008-11-11.
- ^ "BitLocker Drive Encryption Technical Overview". Microsoft. 2008. http://technet.microsoft.com/en-us/library/cc732774.aspx. Retrieved 2008-11-19.
- ^ a b Douglas MacIver (2008-02-25). "System Integrity Team Blog: Protecting BitLocker from Cold Attacks (and other threats)". Microsoft. http://blogs.msdn.com/si_team/archive/2008/02/25/protecting-bitLocker-from-cold-attacks-and-other-threats.aspx. Retrieved 2008-09-23.
- ^ "Encryption Still Good; Sleeping Mode Not So Much, PGP Says". Wired. 2008-02-21. http://blog.wired.com/27bstroke6/2008/02/encryption-stil.html. Retrieved 2008-02-22.
- ^ "TCG Platform Reset Attack Mitigation Specification". Trusted Computing Group. 2008-05-28. https://www.trustedcomputinggroup.org/resources/pc_client_work_group_platform_reset_attack_mitigation_specification_version_10/. Retrieved 2009-06-10.
- ^ a b TRESOR USENIX paper, 2011
- ^ TRESOR home page