Secure boot signing for btrfs-efi #12300
Labels
No labels
after freeze
automation
backlog
blocked
change-ack
change-nak
change-noreleng
changes
Closed As
Can't Fix
Closed As
Duplicate
Closed As
Fixed
Closed As
Fixed with Explanation
Closed As
Get back later
Closed As
Grooming
Closed As
Insufficient data
Closed As
Invalid
Closed As
It's all good
Closed As
taiga
Closed As
upstream
day-to-day
dev
docs
easyfix
epel
f26
f27
f28
f29
f30
f31
f32
f33
f34
f35
f36
f37
f38
f39
f40
f41
f42
f43
f44
f45
fedora
groomed
high-gain
high-trouble
in-progress
in-review
investigation
legal
low-gain
low-trouble
mass rebuild
medium-gain
medium-trouble
meeting
mini-initiative
new_artifact
ops
pdc_retirement
rawhide
RCA
review
script
sidetarget
sprint-0
sprint-1
sprint-2
sprint-3
sprint-4
sprint-5
unfrozen
waiting on external
Backlog Status
Needs Review
Backlog Status
Ready
chore
documentation
points
01
points
02
points
03
points
05
points
08
points
13
Priority
High
Priority
Low
Priority
Medium
release-process
Sprint Status
Blocked
Sprint Status
Done
Sprint Status
In Progress
Sprint Status
Review
Sprint Status
To Do
Technical Debt
Work Item
Bug
Work Item
Epic
Work Item
Spike
Work Item
Task
Work Item
User Story
No milestone
No project
No assignees
6 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
releng/tickets#12300
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
We'd like to add btrfs-efi to the build channel for official signatures: https://src.fedoraproject.org/rpms/btrfs-efi .
btrfs-efiis a btrfs filesystem driver for EFI; among other things, it would make it easier to properly support/booton btrfs for secureboot-enabled systems.cc @ngompa @salimma
Here's a sample spec for btrfs-efi-signed that pulls the btrfs-efi binary RPMs as inputs: https://pagure.io/btrfs-efi-signed/blob/main/f/btrfs-efi-signed.spec
cc: @davdunc @dbrandonjohnson
I don't think we can currently do this due to issues with the current secureboot signing setup.
We are working on reworking it, but it's not in place yet.
See https://pagure.io/releng/issue/10765 for the systemd-boot ticket.
CC: @pjones @rharwood
Is there a change associated with this?
Not yet, but we can definitely put one up if it's useful.
Can someone explain the workflow they see this being used in?
The idea is that this would be used by EFI boot managers to be able to read a Btrfs volume, similar to what would be possible if you used
edk2-ext4to make UEFI boot managers read Ext2/3/4 volumes.In particular, the idea is to combine it with boot managers like systemd-boot or rEFInd (which can automatically load the drivers if they're installed in a specific location on the ESP) so that they can (mostly transparently) access them like VFAT (or HFS+/APFS on Intel Macs).
What do you expect to load this driver? Right now there aren't any EFI systems where a driver loader even trusts a signature we'd put on it. I'm not seeing how Fedora signing it helps with what you're suggesting.
Additionally before we'd consider this okay, even if our signatures did carry weight with the EFI driver loaders, it would need to support .sbat revocations and have a self-test to check for its own revocation.
I would expect our boot manager to load it. And that would already trust our signature.
I can add sbat data to the binaries easily enough, I suppose.
Currently we don't have an EFI driver loader in any of our bootloaders.
Normally EFI drivers are loaded by the EFI firmware, even if prompted to be loaded by a bootmgr, which means it uses the EFI infrastructure for things like verification so it would need to be signed by a key supported by the firmware which in most cases I believe it would be the MS key like shim is signed by.
Maybe not grub, but systemd-boot does. It'll load drivers installed into
\EFI\systemd\drivers. As for rEFInd, it can load any that it is told to load via its configuration file stored on the ESP.Metadata Update from @phsmoura:
Since we now have the infrastructure to support this for all EFI arches, can folks please look at making this work?
So, the use here would be systemd-boot -> btrfs-efi?
Then we should sign it with the same ca as systemd-boot right?
Currently yes, though it would be also useful for rEFInd and Sprout as well. Basically any UEFI boot manager can use it. Maybe it would make sense to have a "Fedora EFI driver CA" that shim trusts?
Insofar as SBAT stuff, @maharmstone is the developer of btrfs-efi and @dcavalca and I can talk to him about that. I'm not familiar enough with EFI driver applications to know how SBAT works with that.