Poettering: Brave new trusted boot world
Poettering: Brave new trusted boot world
Posted Nov 1, 2022 22:07 UTC (Tue) by luto (subscriber, #39314)Parent article: Poettering: Brave new trusted boot world
> Provide a fully measured execution path from firmware to userspace, no exceptions
But this seems quite weak in practice. Assuming the firmware isn’t itself malicious or exploitable, the firmware will (if I read the spec right) measure the boot loader (which is the UKI itself!) into PCR 4 and the SecureBoot policy into PCR 7. And the UKI’s stub will measure the UKI into PCR 11. Then unlocking is like this:
> Input to the TPM part of the unlocking process are the TPM’s internal SRK, the current TPM PCR 11 values, the public key used during enrollment, a signature that matches both these PCR values and the public key, and the encrypted DEK. – Output is the plaintext (“unsealed”) DEK.
But there seems to be a hole here — if the system can be convinced to simply load a malicious UEFI application that doesn’t speak this “Brave New … Protocol”, it will get PCR11 set to zero and can spoof the entire process. PCR 4 won’t match and, if the attacker is running their attack by turning off SecureBoot or changing the keys, PCR 7 won’t match, but PCR 11 will, and unlocking will succeed.
It seems to me that providing a *useful* measured path requires firmware to measure whatever non-firmware component it hands off control to, but I’m not convinced that’s possible in a robust way here.
