3.11. Signer les modules du noyau avec la clé privée
Vous pouvez renforcer la sécurité de votre système en chargeant des modules de noyau signés si le mécanisme de démarrage sécurisé de l'UEFI est activé.
Votre module noyau signé est également chargeable sur les systèmes où le Secure Boot UEFI est désactivé ou sur un système non UEFI. Par conséquent, vous n'avez pas besoin de fournir une version signée et une version non signée de votre module noyau.
Conditions préalables
- Vous avez généré une paire de clés publique et privée et vous connaissez les dates de validité de vos clés publiques. Pour plus d'informations, voir Générer une paire de clés publique et privée.
- Vous avez enregistré votre clé publique sur le système cible. Pour plus de détails, voir Enrôler une clé publique sur le système cible en ajoutant la clé publique à la liste MOK.
- Vous disposez d'un module de noyau au format d'image ELF disponible pour la signature.
Procédure
Exportez votre clé publique vers le fichier
sb_cert.cer
:# certutil -d /etc/pki/pesign \ -n 'Custom Secure Boot key' \ -Lr \ > sb_cert.cer
Extraire la clé de la base de données du SSN sous la forme d'un fichier PKCS #12 :
# pk12util -o sb_cert.p12 \ -n 'Custom Secure Boot key' \ -d /etc/pki/pesign
- Lorsque la commande précédente vous y invite, entrez un nouveau mot de passe qui crypte la clé privée.
Exporter la clé privée non chiffrée :
# openssl pkcs12 \ -in sb_cert.p12 \ -out sb_cert.priv \ -nocerts \ -noenc
ImportantManipulez la clé privée non chiffrée avec précaution.
Signez votre module de noyau. La commande suivante ajoute la signature directement à l'image ELF dans le fichier du module du noyau :
# /usr/src/kernels/$(uname -r)/scripts/sign-file \ sha256 \ sb_cert.priv \ sb_cert.cer \ my_module.ko
Votre module noyau est maintenant prêt à être chargé.
Dans Red Hat Enterprise Linux 9, les dates de validité de la paire de clés sont importantes. La clé n'expire pas, mais le module du noyau doit être signé pendant la période de validité de sa clé de signature. L'utilitaire sign-file
ne vous en avertira pas. Par exemple, une clé qui n'est valide qu'en 2021 peut être utilisée pour authentifier un module du noyau signé en 2021 avec cette clé. Cependant, les utilisateurs ne peuvent pas utiliser cette clé pour signer un module de noyau en 2022.
Vérification
Affiche des informations sur la signature du module du noyau :
# modinfo my_module.ko | grep signer signer: Your Name Key
Vérifiez que la signature mentionne votre nom tel qu'il a été saisi lors de la génération.
NoteLa signature annexée n'est pas contenue dans une section de l'image ELF et ne constitue pas une partie formelle de l'image ELF. Par conséquent, des utilitaires tels que
readelf
ne peuvent pas afficher la signature sur votre module de noyau.Charger le module :
# insmod my_module.ko
Retirer (décharger) le module :
# rmmod my_module.ko
Ressources supplémentaires