On Fri Apr 19 10:48:51 UTC 2019 François Ozog francois.ozog@linaro.org wrote
The UEFI spec is quite clear about this:
An implementation of SecureBoot will check the signature of any EFI binary before starting it. StartImage() will return EFI_SECURITY_VIOLATION when trying to start an image that is neither correctly signed nor whose hash is known.
As we use StartImage() for starting any image the signature of EFIBootGuard would be checked first and then any of the child applications it starts.
You will not be able to start GRUB or the Linux kernel if their signature are not added to U-Boot's key database.
Of cause you could implement inside EFIBootGuard your own mechanism to start a loaded image without calling StartImage(). In this case U-Boot cannot protect you from invalid images.
Best regards
Heinrich
Thanks Heinrich,
I now see how EFIBootGuard integrates in the secureboot process.
If we wan to push integrity checking beyond executable image, for instance validating:
- Linux initrd and commandline - grub modules and configfile. - efibootguard configuration files
It starts to look hairy.
Would validation of the entire EFI boot partition be just good enough? (using dm-verity, fs-verity or whatever mechanism)
Cheers
FF
On Mon, 22 Apr 2019 at 19:55, Heinrich Schuchardt xypron.glpk@gmx.de wrote:
On Tue, Apr 23, 2019 at 9:15 AM Francois Ozog francois.ozog@linaro.org wrote:
The integrity measurement process for boot is generally handled by TCG TPM2 UEFI bits in the spec, I see that as separate to secure boot.
Would validation of the entire EFI boot partition be just good enough? (using dm-verity, fs-verity or whatever mechanism)
That's not part of the secure-boot spec.
The way this works on x86 is that there's a shim [1] which gets signed by Microsoft, the firmware contains the Microsoft public key to verify the shim and shim then has the ability to verify grub and so on, this is the same mechanism that's used for aarch64 SBSA mechanisms. I don't see why that wouldn't work in this case too, it might not be the MS key, but the same process could work. I spoke with Grant about this @ Linaro Connect.
Peter
boot-architecture@lists.linaro.org