TrustedGrub, TPM a autoodemykání LUKS volume

TrustedGrub, TPM a autoodemykání LUKS volume
« kdy: 28. 11. 2016, 00:14:19 »
Ahoj,
Pouzivate nekdo nejaky loader (TrustedGrub nebo nejakou alternativu), ktery nabizi "measured boot", tedy udelat snimek sama sebe, snimek kernelu a initramdisku, snimek parametru kernelu, a to vse ulozit do TPM?
Rad bych zprovoznil automaticke odemykani LUKS rootfs pri bootu s vyuzitim measured bootu a TPM, coz by mohlo jit pomoci luks-tpm, ale problem je v rozumnem naplneni TPM registru (PCR) bootloaderem.

TrustedGrub (fork grub-legacy) by sice mel delat presne to, co potrebuji, ale nejde zkompilovat (resp. po heavy patchovani jde, ale produkuje >100 MB stage1 a stage2 soubory, coz na disk nejde nainstalovat :-))

TrustedGrub2 jde zkompilovat, nainstalovat a dokonce i nabootuje, ale staci jakakoli udalost v grub menu (stisk libovolne klavesy) a uz jsou hodnoty v PCR jine, nez kdyz grub menu vytimeoutuje a spusti prvni menuitem. To brani predpocitani hodnot PCR z beziciho systemu (nikdo nevi, kdo kolikrat zmackne klavesu...) a tim padem znemoznuje skutecne fungujici a nerozbijejici se boot.

Masina, kde to zkousim, nema EFI, takze jsem se ani nezabyval tim, jestli by pro muj ucel sel znasilnit secure boot.

Za jakoukoli ideu budu rad.

Diky.
« Poslední změna: 28. 11. 2016, 07:58:10 od Petr Krčmář »


PCnity

  • *****
  • 685
    • Zobrazit profil
    • E-mail
Re:TrustedGrub, TPM a autoodemykání LUKS volume
« Odpověď #1 kdy: 28. 11. 2016, 11:43:58 »
PLS PLS ked to vyriesis podel sa o vysledok. Dlho som sa snazil o setup automatickeho odomykania luks s measured bootom vo vsetkych stageoch (od biosu), ale neuspel som.

Re:TrustedGrub, TPM a autoodemykání LUKS volume
« Odpověď #2 kdy: 28. 11. 2016, 14:01:25 »
:-)
Zatim jsem musel ohackovat trustedgrub2, aby mi do pcr-15 ukladal hash cmdline a do pcr-14 hash z vmlinuz+initrd, cimz simuluju chovani trustedgrub-legacy. Zvazuju poslat to jako pull request do repozitare trustedgrub2, imho by se to mohlo hodit i jinym.
Ted me ceka hackovani luks-tpm pro podporu trustedgrub2, protoze existujici verze je usita na miru trustedgrub-legacy a fedore/centosu.
Protoze to zkousim na Ubuntu, budu muset upravit/predelat i premount skripty cryptrootu.

Trosku me prekvapilo, jak spatne na tom je v oblasti measured bootu a FDE Linux oproti Windows a jejich Bitlockeru.

PCnity

  • *****
  • 685
    • Zobrazit profil
    • E-mail
Re:TrustedGrub, TPM a autoodemykání LUKS volume
« Odpověď #3 kdy: 28. 11. 2016, 14:15:35 »
Ja to potrebujem na Alpine Linux, cize s manualnou pracou ratam. Uz ani neviem kde som skonl, vytesnil som tie spomienky.
Vobec sa mi vsak nepodarilo tlacit do TPM registrov hodnoty.

Re:TrustedGrub, TPM a autoodemykání LUKS volume
« Odpověď #4 kdy: 29. 11. 2016, 00:15:47 »
OK, takze to funguje a docela dobre.
TrustedGrub2 po opatchovani poslusne plni PCR registry sha1 hashem cmdline, vmlinuz a initrd
Luks-tpm po opatchovani funguje dobre s trousers, umi si brat hesla (TPM owner a TPM NVRAM) ze souboru s hesly
Dalsi skripty vycitaji hodnoty z TPM pri bootu a pokud narazi na takovou ulozenou hodnotu, ktera je overena v aktualnim PCR prostredi, tak ji pouzijou pro luksOpen

Jeste mi chybi doplnit do tpm-luks podporu pro checksum trustedgrub2, ale i bez tehle kontroly se pouzity pristup ukazuje jako funkcni...

Co s tim ovsem pak? Udelat fork vsech patricnych nastroju na githubu, udelat patche oproti aktualnim verzim, nebo z toho udelat *.deb baliky, ktere pujdou nejak rozumne nainstalovat?

Napsat clanek na root?


Lol Phirae

Re:TrustedGrub, TPM a autoodemykání LUKS volume
« Odpověď #5 kdy: 29. 11. 2016, 04:44:39 »
A cílem snažení je, že až ti někdo ukradne počítač, tak aby se nemusel obtěžovat s odemykáním?  ::)

Re:TrustedGrub, TPM a autoodemykání LUKS volume
« Odpověď #6 kdy: 29. 11. 2016, 07:31:18 »
A cílem snažení je, že až ti někdo ukradne počítač, tak aby se nemusel obtěžovat s odemykáním?  ::)

Souhlasím, také v tom moc nevidím smysl  ::)
Když chceš, dokážeš vše!

misch

Re:TrustedGrub, TPM a autoodemykání LUKS volume
« Odpověď #7 kdy: 29. 11. 2016, 15:59:33 »
A cílem snažení je, že až ti někdo ukradne počítač, tak aby se nemusel obtěžovat s odemykáním?  ::)

Souhlasím, také v tom moc nevidím smysl  ::)
Jen tipuju: není cílem třeba to, aby zloděj sice mohl nabootovat, ovšem do systému ke kterému stejně nezíská přístup (a ani z něj nevytáhne šifrovací klíče, atd.)? To, že je systém schopný nabootovat konkrétní předem daný OS přece neznamená že je hacknutelný? Když použiju paralelu: pokud mi někdo šlohne mobil, taky mě netrápí že Android nabootuje a pak čeká na odemknutí. Hlavní je, že dotyčný nezíská přístup k datům ani kdyby ten mobil rozebral a vypájel flash čip s úložištěm dat. Nebo se pletu?

Re:TrustedGrub, TPM a autoodemykání LUKS volume
« Odpověď #8 kdy: 29. 11. 2016, 16:27:06 »
A cílem snažení je, že až ti někdo ukradne počítač, tak aby se nemusel obtěžovat s odemykáním?  ::)

Souhlasím, také v tom moc nevidím smysl  ::)
Jen tipuju: není cílem třeba to, aby zloděj sice mohl nabootovat, ovšem do systému ke kterému stejně nezíská přístup (a ani z něj nevytáhne šifrovací klíče, atd.)? To, že je systém schopný nabootovat konkrétní předem daný OS přece neznamená že je hacknutelný? Když použiju paralelu: pokud mi někdo šlohne mobil, taky mě netrápí že Android nabootuje a pak čeká na odemknutí. Hlavní je, že dotyčný nezíská přístup k datům ani kdyby ten mobil rozebral a vypájel flash čip s úložištěm dat. Nebo se pletu?

Cil je, aby se nedostal k datum. To se udela daleko snaze, kdyz ani nenabootuje.

U mobilu je to o neco slozitejsi, uz jen protoze chces nechat moznost volat nouzova cisla i bez hesla.

Re:TrustedGrub, TPM a autoodemykání LUKS volume
« Odpověď #9 kdy: 29. 11. 2016, 22:20:30 »
Cilem je full disk encryption na masine, ke ktere potencialne muze mit pristup dost lidi vcetne uklizecek (stroj pobezi v praci) a automaticke odemykani disku, aniz by klic mohl kdokoli vzit a disk si odemknout.
Roli samozrejme hraje i pohodli (automaticke odemceni disku bez nutnosti zadavani dlouheho hesla).

Pokud se k datum v pocitaci nekdo pokusi pristoupit, musel by zajistit pritomnost spravneho bootloaderu (hashe MBR a celeho grubu musi sedet), kernelu, initrd (hashe museji sedet) a kernelove cmdline (opet musi sedet hash).

Uplne jinou kapitolou je nastaveni systemu tak, aby se k datum v PC nikdo nedostal pomoci klavesnice, monitoru a dalsich periferii, pripadne po siti, v okamziku, kdy je uspesne nabootovano. :-)

Lol Phirae

Re:TrustedGrub, TPM a autoodemykání LUKS volume
« Odpověď #10 kdy: 29. 11. 2016, 23:06:49 »
Rozumím. Čili výsledek je víceméně stejný, jako kdyby tam žádné šifrování nebylo, ale zato hrozí asi 1000x víc možností, jak se to celé posere tak, že už se k datům nikdy nikdo nedostane.

nobody(ten pravej)

Re:TrustedGrub, TPM a autoodemykání LUKS volume
« Odpověď #11 kdy: 29. 11. 2016, 23:12:40 »
@Radek Zajíc urcite chvalim, pred casem sem se pokousel (vzdalene) o neco podobneho, bez znalosti patchnout cokoliv jineho nez init script, dostal se se jen do stavu ze sem mohl ulozit klic to TPM, ale TrustedGrub mi ho nenacital, resil sem to na *buntu s tim ze v te dobe byl aktualni stav dostupnej jen pro Fedoru...

takze za me ucite diky, na otazku co dal? rozhodne udelat fork na github vseho co si upravil a napsat readme pro nasazeni v *buntu ze zdrojaku, pokud by si chtel vytrvaret deb, pak asi by bylo dobre skouknout automat na launchpadu a zalozit tomu ppa, zajimave by pak byl i clanek kterej by mohl nalakat i lidi co se toho jinak bojej, nebo je alespon trochu dostat do deje...

pro ostatni, princip je v tom ze klice jsou sice ve stroji, takze system se odemkne automaticky pri spusteni (ovsem zde prichazi samozrejme (narozdil od rucniho odemknuti luks uzivatelem pri startu)  zakaz autologinu do desktopu/console)...
ale v pripade ze se nekdo pokusi vyndat disk, nebo nastartovat na tom livecd/usb, nebo podvrhnout vlastni initrd/kernel, nebo pridat kernel parametr, nebo proste udelat cokoliv jineho nez vlastnik dovoli, tak je proste smula a disk se neodemkne...
narozdil od toho kdy by byl system sifrovan a odemknut vyhradne rucne pri startu, je toto i vhodne proto aby system byl pri zapnuti zarizeni nastartovan a napr. v pripade ze nestartoval vlastnik, tak aby se spustili lokalizacni nastroje kterre odhali zlodeje a misto kde se nachazi atd...

nobody(ten pravej)

Re:TrustedGrub, TPM a autoodemykání LUKS volume
« Odpověď #12 kdy: 29. 11. 2016, 23:15:21 »
Rozumím. Čili výsledek je víceméně stejný, jako kdyby tam žádné šifrování nebylo, ale zato hrozí asi 1000x víc možností, jak se to celé posere tak, že už se k datům nikdy nikdo nedostane.
Nerozumis, kdyby nebylo sifrovani tak si "vetrelec" nahodi LiveCD/USB a ma root a pristup ke vsemu na disku...
Tohle zaroven v pripade ze by automat neodemkl (to tve posere) muze umoznit rucni odemknuti tak jako je bezne u normalne full-disk luks-sifrovaneho disku...

Re:TrustedGrub, TPM a autoodemykání LUKS volume
« Odpověď #13 kdy: 29. 11. 2016, 23:24:54 »
Kdyby tam žádné šifrování nebylo, tak kdokoli nabootuje livecd (po vymazání hesla v BIOSu resetem CMOS) a k datům se dostane.
Kdyby byl klíč k LUKSu uložen na připojené flashce, tak jej dokáže kdokoli se schopností "číst v initramdisku" zkopírovat, disk si odemknout a k datům se dostat. Podobně (hůř) kdyby byl klíč přímo v initramdisku.

Rozdíl je v tom, že z TPM dostanete data jen tehdy, když bude systém v předem definovaném stavu. A to platí pro BIOS, kompletní zavaděč, linuxové jádro, initramdisk a cmdline.

Změna jakéhokoli byte v kterékoli fázi bootu způsobí odchylku od definovaného stavu a TPM klíč k odšifrování disku nevydá.

Oddíl s LUKSem má víc keyslotů a v jednom z nich je i dlouhé a složité heslo pro recovery, pokud by došlo k poškození TPM nebo rozbití "definovaného stavu systému".

Re:TrustedGrub, TPM a autoodemykání LUKS volume
« Odpověď #14 kdy: 22. 12. 2016, 23:32:27 »
Tak tu mame prvni balicky dostupny pres PPA. Zatim pro Ubuntu 16.10 a 17.04.
Grub2 (i pro UEFI) s podporou TPM a sada skriptu a nastroju pro automatizaci nasazeni jsou na https://launchpad.net/~radek-zajic/+archive/ubuntu/measuredluks

Zatim bez dokumentace. :-)