Skip to content

Releases: Foxboron/sbctl

Release: 0.10

11 Dec 20:58
0.10
5a0bcb6
Compare
Choose a tag to compare

sbctl is a Secure Boot key manager that helps users create and enroll Platform Keys and managing signing files.

Support for key rotation

sbctl now allows for key rotation through sbctl rotate-keys. This can be used to renew certificates. It is also capable of resigning all signed files.

Wiki pages

A few wiki pages has been added to the project.

Other changes

Language and grammer changes to the manpages, and the Usage section in the man-page has become more precise.

There is also now some WIP documentation on how to reset keys in the BIOS menu.

There has also been several crashes and improvements to the error handling.

Full Changelog: 0.9...0.10

Release: 0.9

28 Apr 20:55
0.9
7fdef0e
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 0.8...0.9

Release: 0.8

18 Dec 16:19
0.8
ae0c311
Compare
Choose a tag to compare

sbctl is a Secure Boot key manager that helps users create and enroll Platform Keys and managing signing files.

Support for vendor certificates

sbctl now allows one to enroll vendor certificates during enroll-keys. Currently only Microsoft keys are supported, but the foundation for adding other OEM keys have been written. One can enroll the Microsoft CA with enroll-keys --microsoft. This also works on machines with an already bootstrapped Platform Key and one does not need to reset their keys to enroll the new vendor keys.

Experimental support for the TPM Eventlog

Similarly, sbctl also supports reading the TPM Eventlog for any Option ROM entries and we add these checksums to the signature database to allowlist the ROM files. This should help people that does not want to enroll the Microsoft certificate authority on the machines. However this should be considered experimental.

One can enroll the TPM Eventlog checksums with enroll-keys --tpm-eventlog, and one does not need to reset their secure boot keys to do so.

Option ROM warning

Because sbctl can now read the TPM Eventlog, a warning has been added when people attempt to enroll keys where we spot Option ROM. This help prevent people from accidentally soft bricking their devices and offers guidance on what to do. Hopefully this gives people more confidence in the tooling.

Example output:

$ sbctl enroll-keys
Found OptionROM in the bootchain. This means we should not enroll keys into UEFI without some precautions.

There are three flags that can be used:
    --microsoft: Enrolls the Microsoft OEM certificates into the sinature database.
    --tpm-eventlog: Enroll OpRom checksums into the signature database (experimental!).
    --yes-this-might-brick-my-machine: Ignore this warning and continue regardless.

Please read the FAQ for more information: https://github.com/Foxboron/sbctl/wiki/FAQ#option-rom

Man pages Usage section

A usage section explaining how to properly setup sbctl on new devices have also been added. Previously people have tried using sbctl reading the example README, but it is not really a guide on how to properly enroll keys. It works more as a feature showcase.

Release: 0.7

25 Oct 20:33
0.7
fca627a
Compare
Choose a tag to compare
Release 0.7

Release: 0.6

13 Jun 22:34
0.6
a43373c
Compare
Choose a tag to compare

This release features a few major changes for sbctl!

sbsigntools removal

Since this project started a year ago the goal was also to have the reliance on sbsigntools be a temporary affairs while go-uefi was shaping up to replace it. This has taken quite a bit of time due to lack of time and ensuring proper integration testing to ensure the library is working as intended.

Over the pat month go-uefi got some integration testing done, along with some duplicated work over to sbctl to have key enrollment and signature validation tested through OVMF and tianocore. This ensures that we can hopefully guarantee signing is not bugged and any regressions caught.

Because of this sbctl now implements all secure boot operations through go-uefi and no longer relies on sbsigntools, hopefully this removes some classes of bugs due to key enrollment.

cmd/sbctl refactor and json output

The other larger change is an overhaul of the command line structure in sbctl which makes it easier to extend and adapt future sub command. A lot of these changes won't be visible for end-users, but it does allow for some neat usage of --json output along with better error feedback through the program.

sbctl list-files --json should be a lot easier to parse with jq then going through normal string parsing.

Please do note that the json structure might change and not all commands have been covered yet.

User Interface changes

sbctl now sports a new look. The original command line design dates back to the original efi-roller tool which had output format copy-pasted from other bash-based Arch tooling. Arguably it's not really pretty. It also made it hard to properly format and kill off the color at the appropriate place. The new output should be more in line with existing *ctl tooling and feel modern.

Release: 0.5

30 May 12:41
0.5
10ff8d2
Compare
Choose a tag to compare
Release 0.5

This release contains a few changes to the documentation of sbctl. The most
notable change is to the `GetESP` functionality which should behave better on
systems with more then one EFI partition. This can also be overridden with
`SYSTEMD_ESP_PATH` or `ESP_PATH`.

Hugo Barrera (3):
      Update man entry for default cmdline
      Update docs/sbctl.8.txt
      Typo

Hugo Osvaldo Barrera (4):
      Extend the documentation a bit
      Refine docs based on feedback
      Typos
      Tweak unconvincing working

Morten Linderud (5):
      bundles: Handle command not found errors
      util: Expand array in print generator
      Updated readme for libera
      sbctl/bundle: Do not default to ESP for fetching kernel and initramfs
      man: Mention environment variables for ESP location

igo95862 (3):
      Remove ioutil
      Improved GetEsp function.
      Add SYSTEMD_ESP_PATH and ESP_PATH environment variables support

Release: 0.4

09 May 14:55
0.4
e63eb3d
Compare
Choose a tag to compare
Release 0.4

Morten Linderud (2):
      Updated srcinfo
      sbctl: Inverted bool broke key enrollment

igo95862 (3):
      Directly pass arguments to subprocesses instead of args spliting
      Use argument list for objcopy instead of split by whitespace
      Redirect objcopy stderr to parent stderr

Érico Nogueira (1):
      Use x/sys/unix for ioctl instead of rolling our own.

Release: 0.3

24 Apr 15:43
a33d0b4
Compare
Choose a tag to compare
Release 0.3

This is mostly just a quick bugfix release. The x509 cert change adds a
expire date for 5 years, but shouldn't matter too much in the immediate
future.

The bug is that sbctl gets confused if the PK file in efivarfs does not
exist since we are checking for immutable

Morten Linderud (3):
      sbctl: Create valid x509 certs for the kernel
      sbctl: IsImmutable should return false if the file does not exist
      Fixed sbctl hooks in PKGBUILD

Release: 0.2

14 Apr 19:54
4df69d6
Compare
Choose a tag to compare
Release 0.2

This release has mostly UX issues and improves the error handling of the
underlying commands.

The major change has been moving from /proc/cmdline as the default cmdline file
to /etc/kernel/cmdline which should be better suited for this task.

Morten Linderud (13):
      sbctl: Added missing format argument
      sbctl: Microcode won't always be passed
      cmd/sbctl: proper exit if we fail creating bundle
      cmd/sbctl: Typo in err
      sbctl: Check for immutable files before sbkeysync
      keys: sbkeysync can have "Permissiond denide" errors
      sbctl: Check for persmission denied. Use errors package
      sbctl/bundle: Change default cmdline to /etc/kernel/cmdline
      sbctl.hook: Renamed to be ordered last, added more paths

Release: 0.1

28 Feb 13:15
611f281
Compare
Choose a tag to compare
Release 0.1

First release of sbctl 🎉

Thanks to Érico Nogueira Rolim for sticking with this project :)

(Proper release notes when they make sense. I swear)