Je TPM bezpečné? Jak ho bezpečně používat?

JustForSafety

Je TPM bezpečné? Jak ho bezpečně používat?
« kdy: 21. 12. 2016, 19:43:01 »
Zdravím všechny, řeším následující situaci. Ze zvědavosti jsem se rozhodl na svém počítači zprovoznit TPM (2.0) tak, abych se mohl autentizovat USB klíčem. Začal jsem si zjišťovat podrobnější informace, ale narazil jsem na články kritizující bezpečnost tohoto způsobu zabezpečení naznačující možnost vzdáleného ovládání počítače některým z tvůrců TPM, přístupu k datům a obecně se mi z některých článků jevilo TPM jako poměrně kontroverzní technologie. Např. německá tajná služba prý nedoporučuje TPM v kombinaci s Windows 8 pro práci s utajenými daty. Nepochopil jsem ale jasně, v čem je přesně konkrétní problém. Chtěl bych vás tedy požádat, jesti byste mi objasnili, v čem spočívají výhody a nevýhody TPM a jestli je jej možné využívat bez rizika, že právě díky jeho implementaci s počítačem bude manipulovat třetí strana, byť by se jednalo třeba pouze o tvůrce TPM. Rád bych se taky dozvěděl postup pro BFU, jak zprovoznit autentizaci pomocí TPM a vytvořit příslušný USB klíč, ale v současnosti mě primárně zajímá otázka bezpečnosti, ochrana dat a anonymita.

Díky všem za příspěvky.
« Poslední změna: 22. 12. 2016, 19:15:36 od Petr Krčmář »


Jenda

Bude potřeba napsat, čeho se snažíš dosáhnout. Pod „autentizací USB klíčem“ si dokážu představit několik věcí a ani k jedné z nich není TPM potřeba.

TPM lze využít k více věcem, typicky se mu _nějak_ autentizuješ a ono ti vydá klíč. To _nějak_ může být třeba otisk prstu (implementace asi zjevná) nebo otisk aktuálně běžícího operačního systému (implementace méně zjevná a potřebuje podporu BIOSu, nebo v dalších fázích i procesoru).

Jenda

Jo a ještě k druhé části: TPM nemá přímý přístup k síti ani přímo nezpracovává data zvenku, takže podle mě je jeho potenciální škodlivost (z hlediska útoků a backdoorů) stejná jako třeba BIOSu, mikrokódu nebo procesoru jako takového.

Čekal bych, že „německá tajná služba“ má problém s tím, že ve Windows je šifrování disku (alespoň v některých verzích, nevím, jestli nenabízejí i nějaké enterprise kde tenhle problém není) implementováno typickým Microsoft-style security principem. Rozumná FDE klíč derivují ze zadané passphrase, zatímco Windows si klíč tahají z TPM přímo as-is při bootu a uživatel se pak k systému normálně přihlašuje. Takto lze klíč vytáhnout například a) cold-boot útokem, b) sniffováním na sběrnici TPM, c) nalezením lokálně zneužitelné díry ve Windows (https://it.slashdot.org/story/16/11/29/2349247/holding-shift--f10-during-windows-10-updates-opens-root-cli-bypasses-bitlocker)

Re:Je TPM bezpečné? Jak ho bezpečně používat?
« Odpověď #3 kdy: 23. 12. 2016, 00:10:31 »
Windows si klic z TPM netahaji. Bitlocker funguje v principu takhle:
Disk je zasifrovan klicem pro full disk encryption. Tenhle klic je ulozen na disku a je zasifrovan tzv. Master klicem. Pristup k Master klici hlidaji protectors (jimi je pristup k master klici sifrovan): temi muze byt ciselne heslo (recovery key), usb flashka, tpm+pin, tpm, pripadne tpm+pin+flashka.
Kdyz se pouziva tpm, pozadaji windows o zasifrovani "tpm protectoru" pri "definovanem stavu systemu" tpmkem.
Odemykani pak funguje tak, ze tpm desifruje tento protector key jen tehdy, je-li system opet v predem definovanem stavu. Stav meni i vyber jine polozky z menu bootmanageru. Pokud system neni v definovanem stavu, tom nedesifruje korektne protector key a windows si vyzadaji recovery key od uzivatele, kterym pak odemknou master key a ten odemkne full volume encryption key.

V Linuxu existuje par pokusu o rozchozeni jednodussi varianty desifrovani, ktera se bude chovat podobne jako Bitlocker (tedy za definovaneho stavu odemkne disk). Vetsina z nich je vsak bohuzel uzivatelsky neprivetiva (kompilace) nebo nefunkcni (neaktualni software, nutnost prepsani). Kombinaci TPM+PIN jsem na Linuxu jeste nevidel, podobne TPM+PIN+UsbKey.

Taky mi ale neni uplne jasne, jakou predstavu o cilovem stavu ma puvodni pisatel.

JustForSafety

Re:Je TPM bezpečné? Jak ho bezpečně používat?
« Odpověď #4 kdy: 23. 12. 2016, 15:43:27 »
Díky všem za odpovědi. Co se využití TPM týče, tak jsem si představoval, že bych na základě něj ověřoval hardware spolu s připojeným klíčem hned po zapnutí. Jen nevím, jestli by to přesně takhle může fungovat. Přihlašoval bych se poté do nějaké distribuce Linuxu, takže pokud by v něm byl nějaký další bezpečný způsob, na kterém by bylo možné postavit vícefaktorovou autentizaci, budu jedině rád, pokud mě trošku navedete. Jestli to chápu správně, disk by byl přímo šifrovaný TPM. Nebo je k tomu potřeba nějaký další program? Využití otisku systému by bylo taky zajímavé. Jak poznám, že takovou funkcionalitu můj BIOS podporuje, případně co po prodejci požadovat?

Co se nejasnosti v mé otázce týče, tak upřímně - s ohledem na nedostatek mých informací ohledně TPM je váš dojem z nejasnosti o tom, co bych přesně chtěl poměrně přesný.  Protože nemám o technologii dostatečný přehled, tak jsem nevědomky definoval svůj požadevek poměrně vágně, tak jsem to snad alespoň trošku napravil.

Ale jak říkám, mám hlavně obavy týkající se z možnosti zneužití TPM. Konkrétně se to týká přinejmenším následujících článků.
https://redmondmag.com/articles/2013/08/22/windows-8-security-issues.aspx
https://en.wikipedia.org/wiki/Trusted_Platform_Module

Na stránkách se popisuje, že je při práci s technologií určité riziko v tom smyslu, že ji někdo využije k vzdálené identifikaci počítače (Wikipedie). Co se těch výhrad německé tajné služby týče, tak tam jsem si všiml pouze kritiky možnosti vypnutí služby v biosu nebo jejího zneprovoznění ze strany uživatele a obav z backdooru v UEFI. Zde by mě tedy zajímalo, jak se omezit nebo anulovat rizika zmíněná ve článcích. Mimochodem - v Linuxu je taky možné bootování pomocí UEFI?



Jenda

Re:Je TPM bezpečné? Jak ho bezpečně používat?
« Odpověď #5 kdy: 23. 12. 2016, 17:42:42 »
Díky všem za odpovědi. Co se využití TPM týče, tak jsem si představoval, že bych na základě něj ověřoval hardware spolu s připojeným klíčem hned po zapnutí.

Já bych ověřoval nějaký minimální systém a klíč bych ověřoval z něj.

Jestli to chápu správně, disk by byl přímo šifrovaný TPM.

Ne, TPM dá klíč LUKSu a šifruje se normálně softwarově. Pokud je to jen trochu možné, doporučuji klíč z TPM smíchat s heslem, které tam zadáš na klávesnici, protože jinak se na to dá útočit způsoby které probíráme tady a vedle (https://forum.root.cz/index.php?topic=14331.msg191966;topicseen)

Zde by mě tedy zajímalo, jak se omezit nebo anulovat rizika zmíněná ve článcích.
Nijak. Takhle dneska počítačový průmysl vypadá. Čtení na dlouhé zimní večery: https://www.coreboot.org/Binary_situation

Mimochodem - v Linuxu je taky možné bootování pomocí UEFI?
Ano, GRUB umí EFI.

JustForSafety

Re:Je TPM bezpečné? Jak ho bezpečně používat?
« Odpověď #6 kdy: 24. 12. 2016, 09:30:12 »
Díky všem za informace. Vypadá, že je mi vše jasné. Na další rady se případně zeptám později.