Package Signature Checking During OS Installation
One long-standing problem in Fedora is that we don't check package signatures during initial operating system installation. This has been a persistent issue since the very beginning of Fedora (and even in Red Hat Linux before it.) The reason for this has always been that there's no way to form any root of trust for the signatures in the repositories, and thus no reason they wouldn't have been modified along with whatever package would need to be re-signed after tampering.
Following the implementation of Features/SecureBoot, we can extend the Secure Boot keys as a root of trust provided by the hardware against which we can verify a signature on our key files, thus guaranteeing that they're from the same source as the boot media.
With this scheme, a repo would provide a signed file containing their signing keys, which we would verify and import on a per-repo basis. It will still be possibly to manually add repos not participating in the signature scheme, though it will require manual intervention during installation.
- Name: Peter Jones
- Targeted release: Fedora 19
- Last updated: 02-Jan-2013
- Percentage of completion: 5%
|kexec||?||vgoyal||need verification of static binaries so we can be sure peverify is real|
|peverify||50||pjones||need to finish it.|
|fedora-release||0||pjones||2 things here - 1) must be moved to "secure-boot" koji channel, 2) must be modified to provide a signed set of keys|
|anaconda||0||pjones||needs to detect that we're in a secure-boot environment and, if so, enforce signature checking on keys and packages.|
Benefit to Fedora
Allows verification of packages during installation.
See the table at Features/PackageSignatureCheckingDuringOSInstall#Current_status
UEFI-capable systems with Secure Boot features are available from most vendors.
The test methodology is simple - enable secure boot, create a repo with an unsigned package in it, do an install that includes that package. Installation should fail.
Significantly similar to that of today in most cases.
- peverify being trusted is probably dependent on vgoyal's work for kexec+secureboot.
- "repo" in kickstart (pykickstart, anaconda) may change to specify an enforcement policy.
- There may be additional work needed to add enforcement policy on a per-repo basis to repomd.xml.
- Bump this to a later release.
With this release, package signatures will be checked by default during installation on compatible hardware.