Title: 0x1A Great Papers in Computer Security
10x1A Great Papers inComputer Security
CS 380S
http//www.cs.utexas.edu/shmat/courses/cs380s/
2J. Alex Halderman et al.Lest We RememberCold
Boot Attacks on Encryption Keys(USENIX Security
2008)
3Protecting Data on a Laptop
Password
File system
On-the-fly crypto
Disk drivers
4Common Attack Scenario
Security Assumptions The encryption is strong The
OS protects the key in RAM the attacker might
reboot to circumvent the OS, but since RAM is
volatile, the key will be lost
5Dynamic RAM Volatility
DRAM cell(capacitor)
0
1
1
0
Write 1
Refresh (read and rewrite) Refresh interval 32
ms
What if we dont refresh?
6Decay After Cutting Power
5 secs
30 secs
60 secs
300 secs
7Capturing Residual Data
- No special equipment needed, but
- booting OS overwrites large areas of RAM
- Solution boot a small low-level program to dump
out memory contents - PXE dump (9 KB)
- EFI dump (10 KB)
- USB dump (22 KB)
- What if BIOS clears RAM?
- Common on systems with error-corrected RAM
8Slowing Decay By Cooling
-50C
lt 0.2 decay after 1 minute
9(No Transcript)
10Even Cooler
-196C
Liquid nitrogen
lt 0.17 decay after 1 hour
Not necessary in practice
11Dealing with Bit Errors
Some bit errors inevitable, especially without
cooling(increasing with memory density)
12Correcting Bit Errors in DES
- Key schedule contains 14 redundant copies of
each bit from the key -
0100000010000100
20 error
0
0000000000000000
13AES Key Schedule
- 128-bit key K ? 10 more 128-bit keys for cipher
rounds
Round 0 key (K)
Core
Round 1 key
Round 10 key
Byte
14Correcting Bit Errors in AES (1)
- Key schedule recovered from memory (contains
errors)
Round 0 key (K)
Core
Round 1 key
1. Slices 4 bytes in Round 0 determine 3 bytes
in Round 1
2. Enumerate 232 possibilities for each 7 byte
slice
3. Eliminate values unlikely to have decayed to
observed bytes (excludes vast majority)
15Correcting Bit Errors in AES (2)
- Key schedule recovered from memory (contains
errors)
Round 0 key (K)
Core
Round 1 key
4. Repeat for each of the 4 slices
5. Combine possible slice values into candidate
keys
6. Test candidates keys by expanding them into
full key schedules compare to recovered memory
16Finding AES Key Schedules
- Iterate through each byte of memory
- Treat following region as an AES key schedule
- For each word in the candidate schedule
- Calculate correct value, assuming other bytes
correct - Take Hamming distance to observed value
- If total distance is low, output the key
17Demonstrated Attacks
Windows BitLocker
Mac OS FileVault
Linux dm-crypt
Linux LoopAES
TrueCrypt
18Countermeasures
- Encrypt key in memory when screen-locked
- Avoid precomputation
- Fully encrypted memory
- Trusted Platform Module (TPM)
- Read paper for discussion