-
-
Notifications
You must be signed in to change notification settings - Fork 188
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement forward sealing of firmware upgrades #523
Comments
@pietrushnic: an interesting idea to keep in mind for the fwupd project and measurements strategies to be adopted under #721 |
The idea is feasible, implementation is difficult. Had put some thoughts into it... And this is the resulting brain dump. PCR 2: coreboot regions For other platforms, the list can be extended, depending if vboot is used or not. If FSP blobs are present etc. PCR-3: MRC cache. Hard to tell if measurements would be the same between upgrades, while maximized builds are wiping the cache and is retrained on first boot (while not measured on x230, but would vary between platforms. In theory, we would expect the same regions to be measured when upgrading firmware. In practice, more regions will be measured by coreboot in future. PCR-5: loaded kernel modules PCR-6: LUKS header. PCR-7: User config files As you know, the Disk Unlock Key is invalidated after firmware upgrade because of the same problem. If forward sealing was possible, we could reseal secrets before reboot (at flash), including TPMTOTP Qr Code, HOTP and change the Disk Unlock Key. That would still require from the user to seal HOTP with GPG Admin PIN, renew/change Disk Unlock Key by providing Disk Recovery Key passprase, and sign new default boot option with GPG User PIN. But yeah, it could be done prior of flashing. How would fwupd deal with that? I don't think it should, outside of deploying a detached signed archive containing rom image and hashes.txt (reflecting expected initrd packed content). |
Sharing @marmarek idea posted here:
The text was updated successfully, but these errors were encountered: