Extrakce BitLocker klíčů z TPM, která nemá nastaven PIN

Danicek

Ahoj,
netušíte, jak funguje BitLocker s TPM, který bootuje rovnou do windows tzn. nepožaduje žádný PIN/heslo při bootu? Provádí dešifrování samotné TPM a nebo jen poskytuje klíč k BitLockeru?
Dostane se někdy klíč do RAM?

Dík.


Re:Extrakce BitLocker klíčů z TPM, která nemá nastaven PIN
« Odpověď #1 kdy: 15. 12. 2018, 12:23:30 »
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.doc
https://www.scribd.com/doc/130070110/Extracting-Encryption-keys-from-RAM

Danicek

Re:Extrakce BitLocker klíčů z TPM, která nemá nastaven PIN
« Odpověď #2 kdy: 17. 12. 2018, 06:59:07 »
Děkuji moc za velmi přesnou a detailní odpověď.

Jigdo

  • *****
  • 506
    • Zobrazit profil
Re:Extrakce BitLocker klíčů z TPM, která nemá nastaven PIN
« Odpověď #3 kdy: 25. 01. 2024, 18:26:44 »
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.doc
https://www.scribd.com/doc/130070110/Extracting-Encryption-keys-from-RAM


Podarilo se nekomu ten BitLocker FVEK vydolovat z Window$?