Dans le cadre d'un amorçage UEFI Secure Boot, le chargeur intermédiaire shim dispose d'un gestionnaire de clés mmx en charge de l'enregistrement des clés dans la Nvram de la plate-forme
La gestion des clés machine propriétaire (MOK) fait appel à la commande mokutil en espace utilisateur et à l'application efi mmx64.efi pendant l'amorçage
2 - Installation
Démarrer le système en mode SecureBoot et vérifier que l'amorçage s'est bien effectué dans ce mode
Installer le gestionnaire de clés machine propriétaire mokutil
$ sudo aptitude install mokutil
Installer shimx64.efi.signed et mmx64.efi.signed dans un répertoire de la partition ESP, par exemple dans le répertoire MOK, on suppose la partition ESP montée en /boot/efi
Initialement, la liste des clés MOK est vide, ce que l'on peut vérifier avec
avec dmesg
$ sudo dmesg |grep MokListRT
avec mokutil
$ mokutil --list-enrolled MokListRT is empty
3 - Création et enregistrement d'une clé
3.1 - Création
Générer la clé propriétaire qui sera utilisée pour signer le module ou l'application efi, dans ce qui suit la clé est nommée MOK, son propriétaire est Pengouin
$ openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -days 36500 -subj "/CN=Pengouin/" -nodes Generating a RSA private key .... writing new private key to 'MOK.priv'
Deux fichiers sont générés à partir du nom de la clé
$ ls MOK* MOK.der MOK.priv
Recopier la clé MOK.der dans un endroit facile à atteindre pendant l'amorçage, par exemple dans le répertoire MOK de la partition ESP
$ sudo cp MOK.der /boot/efi/EFI/MOK
3.2 - Enregistrement de la demande d'importation
"Enregistrer" une demande d'importation de la clé, un mot de passe quelconque est demandé, il sera redemandé lors de l'enregistrement (pendant le redémarrage), il pourra ensuite être oublié
Redémarrer le système, la demande d'enregistrement de la clé est détectée et l'interface du Gestionnaire de MOK est affichée
Shim UEFI key management
Pres any key to perform MOK management
Booting in 9 seconds
Passer à l'écran suivant en tapant sur une touche quelconque
Perform MOK management
Continue boot Enroll MOK Enroll key from disk Enroll hash from disk
Il est possible de choisir d'enregistrer
soit directement la clé : ligne Enroll MOK
soit de la sélectionner sur le disque : ligne "Enroll key from disk"
Dans le cas présent, une seule clé est proposée, la sélectionner
Select Key
The selected key will be enrolled into the MOK database THis means any binaries signed with it will be run without prompting Remember to make sure it is a genuine key before Enrolling it
..................
Sélectionner, à l'aide des touches Haut Bas, le chemin de la clé, ici
EFI/ MOK/ MOK.der
Sélectionner le fichier MOK.der avec la touche Entrée. Dans l'écran suivant
sélectionner d'abord View pour afficher les détails de la clé, vérifier le Numéro de série qui a été relevé préalablement, puis revenir à l'écran précédent en tapant Entrée
puis sélectionner Continue
Dans l'écran suivant, répondre Yes pour enregistrer la clé
Enroll the key(s)?
No/Yes
Entrer le mot de passe défini pendant la demande d'enregistrement, puis Sélectionner Reboot
4 - Vérifications
Après redémarrage, deux clés MOK sont listées par le noyau, la clé Debian secure Boot compilée dans shim et la clé Pengouin qui vient d'être enregistrée
Pour supprimer une clé MOK de la base de donnée en Nvram, il est nécessaire de disposer de son fichier. Ci-dessous, la clé est MOK.der
$ ls *.der MOK.der
Effectuer une demande de suppression et entrer un mot de passe
$ sudo mokutil --delete MOK.der
Redémarrer le système, la demande de suppression de la clé est détectée et l'interface du Gestionnaire de MOK est affichée, utiliser l'option suppression