Showing posts with label bitlocker. Show all posts
Showing posts with label bitlocker. Show all posts

Wednesday, January 21, 2009

Why do I miss Microsoft BitLocker?

In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 previous post, I wrote cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 only one thing I really miss after I've switched from Vista to Mac is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BitLocker Driver Encryption. I thought it might be interesting for ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs to understand my position, so below I describe why I think BitLocker is so cool, and why I think ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r system disk encryption software sucks.

So, it's all about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Trusted Boot. BitLocker does make use of a trusted boot process, while all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r system encryption software I'm aware of, does not. But why cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 trusted boot feature is so useful? Let's start with a quick digression about what cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 trusted boot process is…

Trusted boot can be implemented using eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r a Static Root of Trust or a Dynamic Root of Trust.

The Static Root of Trust approach (also known as Static Root of Trust Measurement or SRTM) is pretty straightforward — cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system starts booting from some immutable piece of firmware code that we assume is always trusted (hence cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 static root) and that initiates cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 measurement process, in which each component measures cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 next one in a chain. So, e.g. this immutable piece of firmware will first calculate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hash of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BIOS and extend a TPM's PCR register with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 value of this hash. Then cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BIOS does cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 PCI EEPROMs and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MBR, before handling execution to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m. Then cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bootloader measures cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OS loader before executing it. And so on.

An alternative method to implementing trusted boot is to use Dynamic Root of Trust (often called Dynamic Root of Trust Measurement or DRTM). Intel's TXT technology, formerly LaGrande, is an example of a DRTM (more precisely: TXT is more than just DRTM, but DRTM is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 central concept on which TXT is built). We will be talking a lot about TXT next month at Black Hat in DC :) This will include discussion of why DRTM might sometimes be preferred over SRTM and, of course, what are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 challenges with both.

Essentially, both SRTM and DRTM, in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 context of a trusted boot, are supposed to provide cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same: assurance cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system that just booted is actually cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system that we wanted to boot (i.e. cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 trusted one) and not some modified system (e.g. compromised by an MBR virus).

BitLocker uses cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Static Root of Trust Measurement. SRTM can really make sense when we combine it with eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r TPM sealing or attestation feature. BitLocker uses cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 former to make sure that only cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 trusted system can get access to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 disk decryption key. In ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r words: BitLocker relies on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TPM that it will unseal (release) cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 decryption key (needed to decrypt cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system partition) when and only when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 state of chosen PCR registers is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same is it was when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 decryption key was sealed into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TPM.

Ok, why is this trusted boot process so important for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system disk encryption software? Because it protects against a simple two-stage attack:
  1. You leave your laptop (can be even fully powered down) in a hotel room and go down for a breakfast… Meanwhile an Evil Maid enters your room. She holds an Evil USB stick in her hand and plugs it into your laptop and presses cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 power button. The system starts and boots from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 USB. An Evil version of something similar to our BluePillBoot gets installed into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MBR (or to a PCI EEPROM). This Evil Program has only one task — to sniff out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 encryption software's password/PIN and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n report it back to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 maid next time she comes...
  2. So, you come back to your room to brush your teeth after cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 breakfast. Obviously you cannot refrain from not turning on your laptop for a while. You just need to enter your disk encryption passphrase/PIN/whatever. Your encryption software happily displays cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 prompt, like if nothing happened. After all how could it possibly know cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Evil Program, like BluePillBoot, has just been loaded a moment ago from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MBR or a PCI EEPROM? It can not! So, you enter cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 valid password, your system gets cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 decryption key and you can get access to your encrypted system...
  3. But cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n you have an appointment at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hotel SPA (at least this little fun you can have on a business trip, right?). Obviously you don't want to look so geeky and you won't take your laptop with you to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SPA, will you? The Evil Maid just waited for this occasion… She sneaks again into your room and powers up your laptop. She presses a magic key combo, which results in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Evil Program displaying cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 sniffed decryption password. Now, depending on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir level of subtleness, she could eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r steal your whole laptop or only some more important data from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 laptop. Your system disk encryption software is completely useless against her now.
(Yes, I know that's 3 bullets, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Evil Maid had to sneak into your room only twice:)

So, why cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BitLocker would not allow for this simple attack? Because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BitLocker software should actually be able to know that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system gets compromised (by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Evil Program) since cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last boot. BitLocker should cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n refuse to display a password prompt. And even if it didn't and asked cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 password, still it should not be able to get cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 actual decryption key out from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TPM, because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 values in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 certain PCR register(s) will be wrong (cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y will now account for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 modified hashes of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MBR or PCI EEPROM or BIOS). The bottom line is: cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 maid is not getting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 decryption key (just as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user now), which is what this is all about.

At least this is how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BitLocker should work. I shall add a disclaimer here, that neicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r myself, nor anybody from my team, have looked into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BitLocker implementation. We have not, because, as of yet, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re have been no customers interested in this kind of BitLocker implementation evaluation. Also, I should add that Microsoft has not paid me to write this article. I simply hope this might positively stimulate ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r vendors, like e.g. TrueCrypt (Hi David!), or Apple, to add SRTM or, better yet, DRTM, to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir system encryption products.

Of course, when we consider an idiot-attack, that involves simply garbbing somebody's laptop and running away with it (i.e. without any prior preparation like our Evil Maid did), cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n probably all system disk encryption software would be just good enough (assuming it doesn't have any bugs in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 crypto code).

Some people might argue that using a BIOS password would be just as good as using trusted boot. After all, if we disable booting from alternate media in BIOS (e.g. from USB sticks) and lock down cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BIOS using a password (i.e. using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Power-On password, not just cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BIOS supervisor password), cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 above two-stage attacks should not be feasible. Those people might argue, that even if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Evil Maid had cleared cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 CMOS memory (by removing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 CMOS battery from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 mocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rboard), still cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y would be able to notice that something is wrong — cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BIOS would not longer be asking for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 password, or cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 password would be different from what cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y used before.

That is a valid point, but relaying on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BIOS password to provide security for all your data might not be such a good idea. First problem is that all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BIOSes have had a long history of various default or "maintenance" passwords (I actually do not know how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 situation looks today with those default passwords). Anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r problem is that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacker might first clear cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 CMOS memory, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n modify her Evil MBR program to also display a fake BIOS password prompt, that would accept anything cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user enters. This way cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user will not be alerted that something is wrong and will be willing to provide cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 real password for drive decryption when prompted later by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 actual drive encryption software.

One might ask why can't cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacker use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 similar attack against BitLocker? Even if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 real BitLocker uses trusted boot process, we can still infect cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MBR, display cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fake BitLocker PIN prompt and this way get into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 possession of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user's PIN.

This attack, however, can be spotted by an inquisitive user — after all, if he or she knows cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y provided cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 correct PIN, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n it would be suspicious not to see cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system being booted (and it won't boot, because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fake BitLocker will not be able to retrieve cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 password from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TPM). If cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fake BitLocker wanted to boot cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OS (so that user didn't suspect anything), it would have to remove itself from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n reboot cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system. Again this should alert cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user that something wrong is going on.

There is also a much more elegant way of defending against cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 above attack (with fake BitLocker prompt) — but I'd racá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r let Microsoft to figure it out by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365mselves ;)

By cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 way, contrary to a popular belief cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BitLocker doesn't protect your computer from boot-stage infections, e.g. MBR viruses or BIOS/PCI rootkits. As we have been pointing out since cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first edition of our Understanding Stealth Malware training at Black Hat in August 2007, BitLocker should not be thought as of a system integrity protection. This is because it is trivial, for any malware that already got access to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 running Vista, to re-seal cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BitLocker key to arbitrary new system firmware/MBR configuration. Everybody can try it by going to Control Panel/BitLocker Driver Encryption, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n clicking on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "Turn Off BitLocker" and choosing "Disable BitLocker Drive Encryption". This will simply save your disk decryption key in plaintext, allowing you to e.g. reflash your BIOS, boot Vista again and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n to enable BitLocker again (this would generate a new key and seal it to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TPM with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 new PCR values).


This functionality has been provided obviously to allow user to update his or her firmware. But what is important to keep in mind is that this process of disabling BitLocker doesn't involve entering any special password or PIN (e.g. cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BitLocker's PIN). It just enough that you are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 default user with admin rights or some malware running in this context. Pity cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y decided on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 simplest solution here. But still BitLocker is simply cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 one coolest thing in Vista and something I really miss on all ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r OSes...