This scheme builds on the functionality Linux LUKS2 functionality supplies, i.e. key management supporting multiple slots, and the flexibility to embed arbitrary metadata in the encrypted volumes superblock. OS updates thus imply fragile era of multiple assets and copying multiple files into the boot partition. Standard Linux tools equivalent to sbsigntool and pesign can be used to signal UKI files. These files are later accessible in the /.additional/ directory within the initrd context. These are small pieces of data passed to services in a secure means. When sealing resources to the TPM, a policy could also be declared to the TPM that restricts how the resources can later be unlocked: here we use one which requires that together with the anticipated PCR values (as mentioned above) a counter integer vary is supplied to the TPM chip, together with a suitable signature covering both, matching the public key offered throughout sealing. The software for that takes all basic UKI components and a signing key as input, and generates a JSON object as output that includes each the literal anticipated PCR hash values and a signature for them.
No code signing protects initrd. The scheme discussed right here touches each SecureBoot code signing and TPM PCR measurements. The sealing/unsealing mechanism described above is thus prolonged: the signature handed to the TPM during unsealing now covers both the anticipated PCR values and the anticipated counter range. We lately began a new group for discussing concepts and specs of basic OS components, including UKIs as described above. It’s referred to as the UAPI Group. We group pixels that learn as the same color, then pick the best representative of each group. Windows uses them, but given that Windows and Linux should sometimes not be included in the identical boot process this must be unproblematic, as Windows use of these PCRs should thus not battle with ours. Thus it’s straight-forward for the OS vendor to pre-calculate and then cryptographically sign the expected values for PCR 11. The PCR eleven values will be similar on all techniques that run the same version of the UKI. 2. The systemd-measure software can be used to pre-calculate anticipated PCR 11 values given the UKI components and may signal the end result, as mentioned within the UKI Image Technology section above.
1. The PE sections listed are looked for in the invoked UKI the stub is part of, and superficially validated (i.e. general file format is in order). UKIs will be generated through a single, relatively simple objcopy invocation, that glues the listed elements together, producing one PE binary that then might be signed for SecureBoot. Secrets and techniques needed during boot-up (comparable to the basis file system encryption key) ought to typically not be accessible anymore afterwards, to protect them from access if a system is attacked throughout runtime. It additionally means that authenticating the picture is tough: given that each particular person host gets a special specialised initrd, it means we can not just signal the initrd with the vendor key like we signal the kernel. 8. The Linux kernel from the .linux PE section is invoked with with a combined initrd that is composed from the blob from the .initrd PE section, the dynamically generated initrd containing the .pcrsig and .pcrpkey PE sections, and presumably some additional parts like sysexts or syscfgs. 9. Optionally, the general public key in PEM format that matches the signatures of the .pcrsig PE part (see below), in a .pcrpkey PE part.
When userspace needs to bind disk encryption to a particular series of UKIs (enrollment), it seems to be for the general public key passed to the initrd within the /.extra/ directory (which as discussed above originates within the .pcrpkey PE section of the UKI). When userspace needs to unlock disk encryption on a specific UKI, it seems for the signature data passed to the initrd in the /.extra/ directory (which as discussed above originates in the .pcrsig PE section of the UKI). This doc seems to be on the boot strategy of normal goal Linux distributions. Locking assets maintained by arbitrary person apps to TPM state (PCRs) isn’t sensible for general function techniques, since PCRs will change on each OS update, and theres no mechanism to re-enroll each such useful resource earlier than each OS replace, and take away the old enrollment after the update. 5. The systemd-creds instrument could also be used to encrypt/decrypt data objects referred to as credentials that can be handed into companies and booted systems, and are robotically decrypted (if wanted) immediately before service invocation.
Leave a Reply