Linux MOK

Da Andreabont's Wiki.

La chiave MOK (Machine Owner Key) è una chiave usata dai sistemi con Secure Boot (Attraverso il pre-bootloader Shim) per fare eseguire file EFI firmati. Può essere usata per validare i moduli kernel. Dato che normalmente la chiave MOK presente è quella della distribuzione in uso, può essere utile aggiungerne una propria per poter firmare file EFI, kernel o moduli kernel compilati in locale.

Creazione di una nuova chiave

A volte è necessario creare una nuova chiave, per poter inserire moduli kernel compilati al momento. Per farlo è necessario seguire i seguenti step.

Creare un certificato con chiave privata.

openssl req -new -x509 -newkey rsa:4096 -keyout <file_chiave_privata> -outform DER -out <file_certificato_der> -nodes -days <giorni_validità> -subj "/CN=<COMMON_NAME>/"

NB: Il file della chiave privata va ovviamente protetto e non divulgato, altrimenti si compromette la sicurezza del Secure Boot.

Richiedere inserimento del nuovo certificato MOK in Secure Boot.

sudo mokutil --import <file_certificato_der>

Verrà chiesto di inserire una password che servirà a livello di Secure Boot per eseguire l'inserimento del certificato.

Verifica che la chiave sia stata correttamente inviata al processo di inserimento

sudo mokutil --list-new

Verificare che il proprio certificato sia presente nella lista in output del programma.

Reboot e inserimento del certificato

Il sistema va ora riavviato, UEFI richiederà il permesso di inserire il certificato, questo dipende dal produttore del PC, ma generalmente verrà chiesto di inserire la password scelta nel punto 2. Una volta completato è possibile procedere con il boot del sistema operativo.

Verifica che la chiave sia stata correttamente inserita

sudo mokutil --list-enrolled

Verificare che il proprio certificato sia presente nella lista in output del programma.