Perché disabilitare "Secure Boot" è una politica applicata durante l'installazione di moduli di terze parti


46

Durante l'installazione di 16.04 , mi è stato chiesto di disattivare " Avvio protetto " se volevo installare moduli / driver di terze parti .

Non ho rispettato.

E quando ho installato manualmente gli unici driver di terze parti che utilizzo ( bcmwl-kernel-source ), mi è stato chiesto di nuovo (durante l'installazione del pacchetto) di disattivare "Secure Boot".

L'uso di bcmwl-kernel-source andava benissimo con Secure Boot in 15.10 . Questo non sembra essere correlato a un bug per me.

Quindi sembra che Ubuntu si rifiuti di firmare più driver / moduli di terze parti per farlo funzionare (??) con "Secure Boot". O sembra considerare i moduli di terze parti come "Secure Boot" non sicuri e in grado di rompere quindi il tentativo di disabilitarlo per renderlo più chiaro ?? Ho ragione ?


6
Bene, IMO, è perché le persone (falsamente) presumono che l'avvio sicuro rompa i moduli di terze parti quando danno consigli. Le informazioni tecniche sull'avvio sicuro sono disponibili qui: wiki.ubuntu.com/SecurityTeam/SecureBoot . Personalmente non sono d'accordo con l'apparente consiglio onnipresente di troncare l'avvio sicuro, funziona perfettamente sul mio hardware con l'avvio sicuro abilitato. IMO lascia abilitato l'avvio protetto a meno che tu non abbia un problema con esso, nessun motivo per disabilitare ciecamente le funzionalità di sicurezza.
Pantera

8
Non ho approfondito questo aspetto, ma a quanto ho capito, 16.04 sta passando a un'applicazione Secure Boot più rigorosa rispetto alla versione 15.10 e precedenti. In particolare, nella versione 15.10 e precedenti, una volta che Shim avvierà GRUB, GRUB lancerà qualsiasi kernel Linux; le protezioni Secure Boot terminano con GRUB. La mia comprensione è che con 16.04, l'applicazione della politica di avvio sicuro si estende al kernel, quindi GRUB di Ubuntu non avvierà più kernel senza segno. Se va oltre, anche i moduli del kernel non firmati saranno interessati, quando non lo erano prima. Ancora una volta, tuttavia, non ho studiato questo approfonditamente.
Rod Smith,


1
Con le persone che scherzano con i loro sistemi nel tentativo di installare moduli di terze parti, mi chiedo se questa funzionalità non farà più male che bene.
Daniel,

Esiste un modo per riattivarlo dopo averlo spento?
Shaunakde,

Risposte:


38

Questo non è un bug, è una funzionalità.

Come dice Anthony Wong, quando installi un pacchetto DKMS stai compilando il pacchetto da solo, quindi Canonical non può firmare il modulo per te.

Tuttavia, puoi sicuramente utilizzare Secure Boot, tuttavia questo è esattamente il caso d'uso in cui Secure Boot sta cercando di proteggerti da te stesso perché non può sapere se ti fidi di un modulo o no.

Per impostazione predefinita , esiste una chiave di piattaforma (PK) sul computer UEFI, che è l'autorità di certificazione in definitiva affidabile per il caricamento del codice nel processore.

GRUB, o shim o altri meccanismi di avvio possono essere firmati digitalmente da un KEK che è considerato attendibile dalla CA principale (PK), e quindi il tuo computer può, senza alcuna configurazione, avviare software come Ubuntu Live USB / DVD.

Su Ubuntu 16.04 il kernel è costruito con CONFIG_MODULE_SIG_FORCE = 1, il che significa che il kernel imporrà ai moduli di essere firmati da una chiave attendibile nella piattaforma. Prendi in considerazione che la piattaforma UEFI per impostazione predefinita contiene un PK su cui non hai alcun controllo e quindi non puoi firmare i binari con una chiave riconosciuta dal tuo computer.

Alcune persone si scontrano e si scontrano contro questo, ma non c'è davvero modo migliore (dal punto di vista della sicurezza) di essere te stesso che registra la nuova chiave che desideri.

Se il tuo sistema di avvio utilizza lo shim, puoi usare qualcosa chiamato database delle chiavi del proprietario della macchina e registrare la tua chiave come MOK (puoi farlo con mokutil). In caso contrario, è anche possibile registrare la chiave nel database UEFI come chiave di firma.

Dopo aver registrato la chiave, puoi firmare il tuo pacchetto DKMS con il tuo MOK (dovrebbe esserci uno script perl su /usr/src/kernels/$(uname -r)/scripts/sign-file) e dopo che è stato firmato, puoi caricarlo nel kernel .

Certo, qualcuno dovrebbe dare più istruzioni visive su questo, e probabilmente anche creare un wizard o uno standard DKMS migliore per consentire di prendere in considerazione le chiavi, ma questo è ciò che abbiamo al momento.

È possibile fare riferimento a questa spiegazione su come firmare i propri moduli del kernel: https://askubuntu.com/a/768310/12049


1
L'ho disabilitato e ora ricevo un fastidioso "avvio in modalità non sicura". Esiste un modo per annullare questo? Non riesco nemmeno a spiegare il problema sui forum qui. @ssice - Sto usando UBUNTU 14.04 quindi non penso che questo sia nemmeno rilevante per me. [
shaunakde

20

In breve, questo non è un bug ma una nuova modifica introdotta in 16.04.

Perché quello che stai installando è un pacchetto dkms. I moduli DKMS sono compilati sulla tua macchina e quindi Canonical non può firmare il modulo per te. Se Canonical non può firmarlo, non è possibile verificarlo digitalmente. Se hai attivato l'avvio sicuro, ciò significa che il tuo modulo non può essere utilizzato e, per poterlo utilizzare, dovrai disattivare l'avvio protetto, ecco perché ti viene chiesto dalla domanda.

Per questo accade solo nel 16.04 ma non nelle versioni precedenti, Rod Smith ha dato una buona risposta. In Ubuntu 16.04, Ubuntu inizia a imporre l'avvio sicuro a livello di kernel. Prima del 16.04, Ubuntu non ti impone davvero di usare il kernel firmato e i moduli kernel firmati, anche se hai l'avvio sicuro attivato. Ma questo non è più il caso in 16.04.

Questo è l'errore correlato: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1401532

Questo è il progetto correlato: https://blueprints.launchpad.net/ubuntu/+spec/foundations-x-installing-unsigned-secureboot


Potrei ancora caricare il modulo wl con 16.04 beta2 e dopo l'aggiornamento. Ma ora con il rilascio ho ricevuto un errore "modprobe: ERRORE: impossibile inserire 'wl': chiave richiesta non disponibile"
solsTiCe

Puoi provare a correre: sudo apt install mokutil; sudo mokutil - convalida-disabilitazione
Anthony Wong,


1

La risposta accettata è molto completa, ma vorrei aggiungere questa semplice informazione, presa da qui:

https://askubuntu.com/a/843678/664391

Un avvio sostanzialmente sicuro potrebbe impedirti di caricare alcuni driver installati, il che può essere abbastanza frustrante. Ci sono passato da solo: il driver è stato installato correttamente, tutto sembrava andare bene, ma non ha funzionato. Mi ci è voluto del tempo per scoprire che era un avvio sicuro che impediva al sistema operativo di caricarlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.