Skip to content
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

RFE: add protocol to let 2nd/3rd stage loaders append ephemerally to MokListRT #574

Open
bluca opened this issue Jun 13, 2023 · 4 comments

Comments

@bluca
Copy link
Contributor

bluca commented Jun 13, 2023

These days MokListRT certificates are consumed by the kernel and added to the machine keyring, which can be linked into the secondary keyring, which allows using those certificates, among other things, for verifying kernel modules and dm-verity images.

We'd like to extend UKIs with a .keyring section. As part of the UKI, it would be covered by the UKI's signature. systemd-stub would parse this new section, and append the content to the Mok variable that is read by the kernel.

It was mentioned by @vathpela that the preference would be to add a new protocol for this, rather than letting other stages simply write directly to the variable, due to concerns with variable sizes, even when they are volatile.

@julian-klode
Copy link
Collaborator

I feel like it would make more sense to extend vendor db or something? We already have the certmule thingy from @jsetje, I feel like this basically turns every binary loaded into a certmule too

@bluca
Copy link
Contributor Author

bluca commented Jun 14, 2023

Is that picked up by the kernel for the machine keyring?

@julian-klode
Copy link
Collaborator

Even upstream kernel reads the db, I don't know if everyone reads the dbx yet.

Regardless, the UKI keyring would not be machine-owner controlled, so it shouldn't be in the machine-owner-key list?

@bluca
Copy link
Contributor Author

bluca commented Jun 14, 2023

As long as the key turns up in a keyring linked into the kernel primary or secondary keyrings, and thus it can be used to verify dm-verity and so on, I don't mind which variable is used.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants