Pomocí TPM to lze řešít také, ale IIUC tam je problém, že to řeší jen scénář, kdy útočník ukradne disky a chce je přečíst, ne scénář, kdy ukradne (nebo si vypůjčí) celý počítač.
Problém s TPM je, že:
1) TPM „první generace“ (tak to teď označuju, žádné oficiální číslování AFAIK není) byly samostatné čipy na desce, které klíč sdělovaly přes „nešifrované dráty“, kde šel snadno odposlechnout.
2) Nové TPM se jmenuje „firmwarové“ a je přímo „v procesoru“, takže tam je tenhle útok extrémně složitý. Stále ale platí to, že klíč vydají vždy při bootu a pak se používá pro šifrování v RAM. Díky tomu má útočník neomezený počet pokusů na cold-boot útok. Dokonce může vyměnit RAM moduly za jiné, na kterých se cold-boot útok dělá snadněji (RAM moduly jsou identifikovány pomocí I2C flashky, která není nijak kryptograficky zabezpečena).
2.1) Pomocí AES-NI se dá nějak šifrovat aniž by se klíče dostaly do RAM, to by mohlo pomoct.
2.2) V extrémním případě si lze ale představit speciální RAM modul, který umožňuje útočníkovi modifikaci obsahu za běhu (koukal jsem na to a přijde mi že potřebujete součástku jménem "DDR4 bus switch", FPGA s DDR4 nebo počítač s corebootem kde se dá rejpat v rutinách na memory training - nevím jestli takové s DDR4 existují, někdo mi o nich říkal v roce 2014 myslím tady kdy DDR4 ještě nebylo) a tak si změní kód a vyčte to.
3) Finálním řešením jsou CPU s šifrovanou RAM, to umí některé nejnovější Intely a AMD, ale není to moc rozšířené.
Samozřejmě některé z útoků se dají provést pří vzdáleném SSH unlocku, evil maid může backdoornout initramdisk. Dobré řešení by bylo používat SSH unlock a současně TPM (klíč rozdělený na půlky třeba), to pak vyžaduje překonat tohle i tamto a to třeba může trvat dlouho a někdo si toho všimne a heslo pak nezadá.
8. 12. 2021, 21:16 editováno autorem komentáře