BitLocker: Chcete mít chráněny servery i stanice?
Windows Vista a Windows Server 2008 nabízí skvělý bezpečnostní prvek - BitLocker. K čemu je dobrý, když máte EFS? A proč byste to měli dávat na server?
BitLocker je novinka nabízející šifrování celých diskových oddílů. Jednak partition u basic disků. Ale i volume u disků dynamických. Jedním klíčem jsou zašifrovány všechny (skoro) sektory diskového oddílu. Jediným požadavkem je, že oddíl musí být naformátován NTFS. Windows Vista i Windows Server 2008 umí šifrovat jak oddíly datové, tak i bootovací.
Aby se vůbec systém dal nastartovat, musí se mu poskytnout dešifrovací informace. To se stane ještě na oné známé textové obrazovce. V době, kdy by se normálně zobrazil například seznam operačních systémů.
A tady jsme u zásadního problému. Tuto startovací nabídku i dešifrování zařizuje tzv. zavaděč (loader). Program ze souboru BOOTMGR. Nachází se normálně na bootovacím oddíle. Spolu s adresářem Windows apod. Pokud by tento oddíl byl šifrovaný, těžko by se mohl BOOTMGR spustit (klasický problém slepice-vejce).
Základním požadavkem tedy je, aby BOOTMGR byl na jiném oddíle. Na oddíle nešifrovaném, o velikosti alespoň 1,5 GB. Znamená to tedy, že potřebujete nejméně dva oddíly. Jeden šifrovaný. A k němu další nešifrovaný, který obsahuje BOOTMGR.
Proč nestačí EFS?
EFS šifruje data. I více uživatelů může sdílet určité soubory. Dokáže tak bezpečně oddělit uživatele od sebe. Dokonce i od administrátorů. Nedokáže ale šifrovat systémové soubory ani registry. Tím se otevírá cesta k offline instalaci keyloggerů. Nebo různých utilitek, které prostě data pošlou emailem, jakmile si je otevře oprávněný uživatel.
BitLocker šifruje celý oddíl. Bez znalosti startovacího klíče tak není možné offline měnit ani systémové soubory, ani registry. A samozřejmě ani nenabootujete. Klíč je však jenom jeden pro celý oddíl. Neslouží tedy k oddělení uživatelských dat. Na to je pořád ještě EFS.
Architektura
Diskový oddíl je šifrován jedním symetrickým klíčem zvaným Full Volume Encryption Key (FVEK). Používá se algoritmus AES 128 bit, nebo jeho silnější obdoby 256 bit, případně se doplňuje Diffuser.
Veškerá dešifrovací informace je uložena na daném oddílu. Kvůli zálohování dvakrát. Oddíl má i normální BOOT SECTOR. Mohli byste se podívat programem WinHex, viz. obrázek:

Jen je označen jako jiný filesystem. Tedy nikoliv NTFS, ale -FVE-FS- (Full Volume Encryption File System). V BOOT SECTORu je také odkaz na onu dešifrovací informaci:

A bohužel v něm není žádný zaváděcí kód. A to je vše. Disk sám je jinak nezměněn. Má normální MBR (Master Boot Record), může obsahovat další normální oddíly apod. Může být i dynamickým diskem. Ona dešifrovací informace je po nastartování systému dostupná jako 2 soubory. Najdete je v adresáři System Volume Information pojmenované jako FVE.{GUID}.
Čím dešifrovat?
FVEK je uložen na daném oddílu. Je zde ale zašifrován pomocí jiného klíče. Nazývá se Volume Master Key (VMK). I tento klíče je dále šifrován. Tentokrát už tím, co uživatel potřebuje k dešifrování disku (tzv. protector). Možnosti jsou tyto:
• a) 48 znakové heslo
• b) Klíč uložený na USB disku, nebo floppy disketě (soubor .BEK).

• c) TPM – čipová karta přímo na motherboardu
• d) TPM a PIN (viz. dále)
Co tedy potřebuji pro přístup k oddílu? Zadám například heslo:

Nebo vložím USB disk:

Z oddílu se načte a dešifruje VMK. Tím se následně dešifruje FVEK. A tím se nakonec dešifrují jednotlivé sektory. Schematicky tedy takto:
Protector1(VMK), Protector2(VMK), Protector3(VMK)
VMK(FVEK)
FVEK(sector), FVEK(sector), …
Můj disk je možno například dešifrovat pomocí tří různých USB disků (.BEK souborů) a jednoho hesla:

Pokud chcete, je vždy možno další protektory přidat nebo odebrat utilitkou MANAGE-BDE.WSF nebo z ovládacích panelů:

TPM
Jednou z možností dešifrování je uložit klíč v TPM (Trusted Policy Module). To je vlastně čipová karta zabudovaná na základní desce. Heslo však vydá jen za podmínky, že nedošlo ke změně konfigurace hardware, disků, verze BIOSu, MBR (Master Boot Record) bootvacího disku ani zásahu do BOOTMGR.
Má to výhodu, že to chrání i před krádeží disku samotného. Nebo třeba před úpravami MBR a zavaděče.
Jak tedy probíhá start systému?
Pozn. Systémový oddíl je ten, který obsahuje BOOTMGR. Bootovací oddíl je ten, který obsahuje Windows adresář.
• a) Zapne se napájení
• b) Spustí se kód BIOSu
• c) Pokud je zapnut TPM modul
o a) BIOS spočítá svůj vlastní kontrolní součet a uloží ho do registru TPM
o b) BIOS uloží do registru TPM sériové číslo bootovacího disku
o c) BIOS uloží do registru TPM kontrolní součet ze sériových čísel disků a motherboardu
o d) BIOS uloží do registru TPM kontrolní součet MBR
• d) BIOS načte do paměti kód MBR z bootvacího disku a spustí ho
• e) MBR kód vyhledá systémový oddíl (to je ten nešifrovaný 1,5 GB, který obsahuje BOOTMGR)
• f) Načte z něho do paměti BOOTMGR (tohle je NEšifrované)
• g) Pokud je zapnut TPM modul
o a) BOOTMGR uloží do registru TPM svoji signaturu
o b) BOOTMGR si vyžádá od TPM dešifrovací klíč
o c) Pokud všechny signatury odpovídají informacím v TPM, TPM vydá dešifrovací klíč
• h) Pokud BOOTMGR nedostal dešifrovací klíč od TPM, vyžádá si heslo, nebo USB disk
• i) BOOTMGR z bootovacího oddílu načte BOOT SECTOR
• j) Z BOOT SECTORU se zjistí umístění dešifrovacích informací.
• k) Pomocí hesla, USB klíče, nebo TPM klíče se dešifruje VMK
• l) Pomocí VMK se dešifruje FVEK
• m) Pomocí FVEK se dešifrují postupně sektory oddílu
• n) Zavede se operační systém
• o) Při jeho startu se načítají ovladače, jedním z nich je FVEVOL.SYS, který dále přebírá úkol dešifrování sektorů od BOOTMGR
• p) Od tohoto okamžiku už není USB klíč v počítači potřeba, heslo je v paměti (ani při zamknutí plochy ani při uspání). Potřeba by byl až při dalším restartu, nebo hibernaci
• q) A je to!
Jak to celé nastavit?
Potřebujete alespoň dva diskové oddíly. Jeden systémový s BOOTMGR o velikosti alespoň 1,5 GB. A druhý systémový, nebo datový. Možná máte dosud jen jeden oddíl. Vězte však, že Vista umí oddíly i zmenšovat (například DISKPART, nebo konzole Disk Management). Nebo si můžete stáhnout nástroj nazvaný BitLocker Drive Preparation Tool. Ten vám druhý oddíl vyrobí sám a rovnou na něj i přenese BOOTMGR, viz. obrázky:

Po restartu už jen zapnete BitLocker z Ovládacích Panelů. Při této operaci budete požádáni, abyste zvolili typ a umístění dešifrovací informace.

Jestliže nemáte TPM, bude to ale ještě trošku složitější. Musíte nejprve pomocí Group Policy povolit použití USB (Computer Configuration – Administrative Templates – Windows Components – BitLocker – Enable Advanced Startup Options).
Šifrování datových oddílů
Šifrování datových oddílů (ne systémového) ve Vista SP1 zapnete pomocí nástroje MANAGE-BDE.WSF:
manage-bde -on E: -RecoveryKey F:\
Ve Windows Server 2008 je šifrování datových oddílů k dispozici přímo v uživatelském prostředí.
Testování ve Virtual PC 2007
Moc se o tom neví, ale je možné vyzkoušet si BitLocker i v Microsoft Virtual PC 2007. To sice neumí USB zařízení ani TPM. Ale uložíte prostě dešifrovací informaci místo na USB na floppy disketu. Virtuální například. Postup je tento:
• a) V BIOSu virtuálního stroje vypnout bootování z FDD
• b) Vytvořit virtuální FDD disketu pomocí průvodce Virtual Disk Wizard
• c) Virtuální disketu připojit do virtuálního počítače
• d) Disketu naformátovat
• e) BitLocker zapnout z příkazové řádky pomocí nástroje MANAGE-BDE.WSF:
c:\windows\system32\manage-bde.wsf -on C: -rp -sk A:
Záchrana při ztrátě USB
Pokud přijdete o všechny dešifrovací informace, jako jsou vytisknutá, nebo opsaná hesla, nebo USB klíče, disk už nikdy nedešifrujete. To vám garantuje AES. Je tedy vhodné si záchranné informace vhodně a bezpečně uložit.
Jednou z možností pro podnikové prostředí je jejich ukládání do Active Directory. Počítače musí být členy domény. Ještě před tím, než se BitLocker zapne. Pomocí Group Policy vynutíte ukládání do Active Directory (Computer Configuration – Administrative Templates – Windows Components – BitLocker – Turn On BitLocker Backup to Active Directory).
Dešifrovací heslo (48 znaků) se uloží do účtu počítače v Active Directory. V případě potřeby ho najdete buď pomocí nástroje ADSIEDIT.MSC. Je to atribut ms-FVE-RecoveryPassword. Nebo si stáhněte lepší pomůcku. BitLocker Recovery Password Viewer. Potom bude vidět přímo ve vlastnostech účtu počítače:

Není to nebezpečné? Ne. Přístup k tomuto heslu mají jen členové skupiny Domain Admins.
Záchrana při poškození disku
Horší to je, pokud se vám poškodí disk. Uvědomte si jeden fakt. Vy máte zaznamenáno heslo. Jenže skutečný dešifrovací klíč je FVEK. Ten je přece uložen na disku samotném. Pokud by se jeho úložiště poškodilo, už nic z disku nedostanete. Z tohoto důvodu je uložen na dvou místech, aby se snížila pravděpodobnost jeho ztráty.
No, i tak se to stát může. V takovém případě je ještě stále poslední záchrana. On se totiž FVEK ukládá i do Active Directory. Tam se to nazývá Key Package a je možno ho získat z atributu ms-FVE-KeyPackage. Data ale už obnovíte jen z bootovacího DVD Windows Vista, nebo Server 2008. A budete k tomu potřebovat utilitku BitLocker Repair Tool.
Výkon
Microsoft tvrdí, že ztráta výkonu je minimální. To je skutečně pravda. Při normálním provozu máte cache. Ta výkonu hodně pomůže. Na druhé straně, pokud budete kopírovat hodně velké objemy dat, cache vám nepomůže. A ke spomalení dojde.
Zkusil jsem tedy změřit výkon pomocí nástroje IOMeter. Je volně ke stažení. Na svém notebooku Intel Pentium M 1.60 GHz s 1 GB RAM jsem měřil nekešované náhodné přístupy do 2 GB souboru. 66 % čtení a 33 % zápisů. (rychlost disku není podstatná, jde o procentuální změnu).
Výsledek je v následující tabulce:
Bez BitLockeru S BitLockerem Rozdíl
Čtení (MBps) 2,1 1,6 24 %
Zápis (MBps) 1,0 0,8 20 %
Závěr
Chcete mít chráněny servery i stanice? Tak šifrujte. Bez toho to nepůjde.
U serverů je trošku problém při restartu. Ideální je potom použít TPM bez PINu. V takovém případě TPM bez diskuze vydá dešifrovací klíč. Ale jen v případě, že bootujete správný systém (tedy ne z DVD). A že nedošlo ke změně hardware konfigurace. Restart pak půjde dělat i vzdáleně.Více na: http://www.zive.cz/clanky/bitlocker-chcete-mit-chraneny-servery-i-stanice/sc-3-a-142761/default.aspx