Say it with me now: LUUUUUKS
LUKS is still vulnerable to this attack if you enable autodecrypt using TPM. This attack is based on the vulnerability that the CPU and TPM communicates uses plain text. And it is a pretty common attack against TPM:
https://dolosgroup.io/blog/2021/7/9/from-stolen-laptop-to-inside-the-company-network
SPI is a communication protocol for embedded systems and is extremely common amongst virtually all hardware. Due to its simplicity, there is no encryption option for SPI. Any encryption must be handled by the devices themselves. At the time of this writing BitLocker does not utilize any encrypted communication features of the TPM 2.0 standard, which means any data coming out of the TPM is coming out in plaintext, including the decryption key for Windows
And apparently Linux is not doing too hot on this regard either:
https://www.secura.com/blog/tpm-sniffing-attacks-against-non-bitlocker-targets
As we can see, parameter encryption simply isn’t used in practice, and except for safeboot none of the solutions enforce PIN/MFA by default.
However, this attack is not viable for device with firmware based solution, like fTPM, Microsoft Pluton, secure enclave etc. in these case TPM is part of the cpu, hence have no exposed pins to sniff their connection.
So if you don’t want people with physical access to your computer (a thief or a evil maiden) to access everything on your disk, don’t setup TPM auto decrypt.
CPU doesn’t have any secure storage, so it can’t encrypt or authenticate comms to the TPM. The on-CPU fTPMs are the solution, the CPU then has the secure storage.
I wondered why LUUUUUKS didnt use the TPM, why do i have to put my password in… this is absolutely why.
Edit: fixed spelling of LUUUUUKS
What exactly is the point of full disk encryption if the system auto-unlocks on boot?