[systemd-devel] why systemd-boot (seems as everyone else) does not check the signatures of initramfs?

Felix Rubio felix at kngnt.org
Sat May 27 06:31:20 UTC 2023


Hi Lennart,

I remember having read some time ago that UKI could pose problems with 
early-boot modules provided by vendors and so. But... let's give it a 
try! Then, the process should be:

1. Install a version of shim signed with MS keys.
2. Generate the UKI
3. rename the UKI image to grubx64.efi so that it gets picked up by shim

As a side: the ESP partition is bit small. Do you think if I introduce 
systemd-boot I could load the UKI being stored from /boot? In that case 
this would be like

1. Install a version of shim signed with MS keys.
2. Install systemd-boot as grubx64.efi so that it gets picked up by shim
3. Generate the UKI to /boot/

I will give it a try... and see how it goes.

Regards!

-- 
Felix Rubio
"Don't believe what you're told. Double check."


On 2023-05-25 10:26, Lennart Poettering wrote:
> On Mi, 24.05.23 19:01, Felix Rubio (felix at kngnt.org) wrote:
> 
>> Hi Lennart,
>> 
>> "Sorry, but GPG is a no-go. Not in 2023."
>> 
>> Yes, I understand that. What I am trying to get is a simple way to 
>> verify
>> that the initramfs has not been tampered with. UKI comes with its own
>> challenges, using encryption tied to a measured boot looks overkill, 
>> and I
>> fully agree in which adding an authentication layer is not
>> desirable.
> 
> I am not sure what "challenges" you specifically have in mind, but a
> UKI with an initrd in a PE envelope (i.e. the "add-on" concept I
> mentioned), then you should be pretty close to current behaviour, no?
> 
>> Then... what alternatives are available for just performing 
>> verification of
>> the initramfs? I was giving a look at IMA now, so this could be sorted 
>> with
>> a policy... but I think this is not supported in sd-boot.
> 
> IMA verifies files after the kernel is up, not before. It's not
> suitable for validating initrds.
> 
> Anway, you should really ask yourself what cryptographic key you want
> to authenticate against. Local or vendor one, and where shall it be
> stored. That dictates your choices more than anything else.
> 
>> In the case I wrap the initramfs on a PE envelope, as you suggested, 
>> when
>> then its signature be validated automatically? when it gets loaded? 
>> Because,
>> if so... this would work enough for this use case.
> 
> In the "add-on" module for UKIs I mentioned the validation of both the
> UKI and the add-ons are done via regular UEFI SecureBoot or via
> shim. Both UKIs and add-ons are just PE files after all that thus can
> be verified that way. Because the files can be authenticated via shim
> you get MOK and so on.
> 
> Lennart
> 
> --
> Lennart Poettering, Berlin


More information about the systemd-devel mailing list