V kazde fazi bootu (bios, nacteni uefi app/mbr, nacteni bootmanageru, nacteni windows kernelu, nacteni vybranych ovladacu) se provadi measurement (pocitaji kontrolni soucty). Tyhle kontrolni soucty se postupne retezi v TMP (s kazdym souctem se provede concat binarnich retezcu - obsahu konkretniho tom registru + vypocitaneho hashe, a vysledny binarni retezec se pote prozene hash operaci a opet ulozi do konkretniho tom registru). Windows umi tuto radu hashovacich operaci predpocitat pri aktivaci bitlockeru resp. pri aktualizaci systemu. Windows pri inicializaci bitlockeru inicializuji i tpm owner heslo - to se drive ukladalo, dnes ho zapominaji, protoze ho pro dalsi praci nepotrebuji. Uvnitr TPM je pak i (teoreticky) unikatni Storage Root Key, ktery se pouziva pro dalsi praci.
Aby Windows dokazaly nabootovat, museji znat BitLocker FVEK. K jeho ziskani se pouziva VMK. VMK je pri bootu priomen na disku v tzv. sealed podobe (neni zasifrovan bitlockerem, ale je sealovan TPM Storage Root Key a stavem TPM registru). Abyste tedy dokazal otevrit BitLocker volume, musel byste dostat TPM do ocekavaneho stavu (tedy vedet, co vsechno je nutne ohashovat, a pak rucne predpocitat vsechny hashe a provest operaci TPM Extend; to se) a nasledne pozadat TPM o provedeni operace TPM Unseal nad VMK. Pomoci znalosti nesifrovaneho, unsealovaneho VMK byste pak desifroval FVEK a tim uz lze desifrovat samotny filesystem.
Coz Vas muze privest k otazce, kde se vezme zasealovany VMK. Je to proste: Windows AFAIK skutecne maji FVEK v pameti, takze dokazou spocitat nesifrovany VMK. Zaroven predpocitaji ocekavany stav TPM registru po rebootu, a na zaklade znalosti techto registru pozadaji TPM, aby provedl TPM Seal operaci. Vysledkem je sealed VMK, ktery se ulozi na disk, aby ho po rebootu Windows/TPM zkusily pomoci operace Unseal precist (vizte vyse). Pokud nesedi stav TPM registru, operace Unseal neprobehne (nebo jsou jejim vysledkem data, ktera nejsou platnym VMK) a uzivatel je vyzvan k recovery pomoci klice pro recovery.
Nejjednodussi zpusob, jak se zmocnit FVEK, tak i nadale je DMA pristup, prip. memory dump po resetu a bootu do nejake lightweight distribuce (pokud platforma necisti pamet), a scan pameti na pritomnost AES encryption schedule.
Slozitejsi zpusob (spise teoreticky) je hack biosu/uefi, aby nezacal vubec provadet seal operace (nebo vypajeni TPM a jeho pripojeni na platformu, ktera s nim dokaze komunikovat), a replikace jednotlivych Extend operaci (pokud dokazete zjistit, cim Windows extenduji PCR8 az PCR11), a nasledne vyvolani Unseal operace (za predpokladu, ze vite, kde na disku je VMK ulozen).
Vice napr.
https://blogs.technet.microsoft.com/motiba/2017/05/24/locking-up-your-bitlocker/http://download.microsoft.com/download/a/f/7/af7777e5-7dcd-4800-8a0a-b18336565f5b/bitlockerflow.dochttps://www.scribd.com/doc/130070110/Extracting-Encryption-keys-from-RAM