canonical / canonical/secboot

Add support for measured boot only BootGuard profiles on Intel

Open
#327 1 comment 0 reactions 0 assignees View on GitHub
preinstall-checks
Dominant language
Go
Stars
23
Forks
29
Avg merge
2d 8h
Merged PRs (30d)
2

Description

The platform firmware protection checks make sure that BootGuard is configured in verified boot mode, which means that the firmware that executes has to be authenticated by an OEM key fused into the chipset by BootGuard. It also appears to have a measured boot profile (although it's not clear whether the tooling Intel supplies to OEMs supports enabling measured boot without verified boot), but we could add support for measured boot (with some restrictions on the type of devices this would be permitted on, to be elaborated on later). It would require the following changes:
- `checkPlatformFirmwareProtectionsIntelMEI` would permit measured boot only as a valid configuration, and return some indicator that verified boot is not enabled.
- `checkPlatformFirmwareProtections` would need to surface this.
- The results returned by `RunChecks` would have a new flag to indicate that the platform firmware is not verified, but that it is measured.
- The `WithAutoPCRProfile` option would add PCR0 to the policy if the supplied results indicate that verified boot is disabled.

Note that this would have an effect on some other, as yet undesigned, security related properties of the system - verified boot would obviously be required if a vendor wants a way to only permit a device to run only Ubuntu Core, rather than any generic operating system. Or if we want to go even further than that and provide a way to restrict the runtime code that can execute on a device to a set of snaps that are defined by the brand, or restrict a device to a specific model etc, so that a vendor can prevent arbitrary code and operating systems from running on their hardware if they desire this.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.