Overview of Certificates and Signatures
Overview
Digital signature is an important technology for protecting the integrity of OSs. By adding signatures to key system components and verifying the signatures in subsequent processes such as component loading and running, you can effectively check component integrity and prevent security problems caused by component tampering. Multiple system integrity protection mechanisms are supported in the industry to protect the integrity of different types of components in each phase of system running. Typical technical mechanisms include:
- Secure boot
- Kernel module signing
- Integrity measurement architecture (IMA)
- RPM signature verification
The preceding integrity protection security mechanisms depend on signatures (usually integrated in the component release phase). However, open source communities generally lack signature private keys and certificate management mechanisms. Therefore, Linux distributions released by open source communities generally do not provide default signatures or use only private keys temporarily generated in the build phase for signatures. Usually, these integrity protection security mechanisms can be enabled only after users or downstream OSVs perform secondary signing, which increases the cost of security functions and reduces usability.
Solution
The openEuler community infrastructure supports the signature service. The signature platform manages signature private keys and certificates in a unified manner and works with the EulerMaker build platform to automatically sign key files during the software package build process of the community edition. Currently, the following file types are supported:
- EFI files
- Kernel module files
- IMA digest lists
- RPM software packages
Constraints
The signature service of the openEuler community has the following constraints:
- Currently, only official releases of the openEuler community can be signed. Private builds cannot be signed.
- Currently, only EFI files related to OS secure boot can be signed, including shim, GRUB, and kernel files.
- Currently, only the kernel module files provided by the kernel software package can be signed.