Come posso proteggere initrd e grub.cfg usando l'avvio protetto?


8

Sto usando l'approccio Ubuntu predefinito con shim e grub2, combinato con la mia chiave di piattaforma (shim autofirmante con sbsign) e una partizione root crittografata, per garantire l'avvio sicuro della mia installazione di Ubuntu. Ma questo verifica solo grubx64.efi e il kernel, ma non protegge i file initrd.img e grub.cfg sulla partizione di avvio non crittografata da modifiche dannose.

Quindi, come posso verificare initrd e la configurazione di grub, possibilmente usando un hash sha256, prima di usarli per l'avvio? Tale verifica potrebbe avvenire in shim, in grub o in qualche altro strumento che potrei usare in aggiunta o al posto di shim e / o grub.

Lo scopo di questa domanda è impedire l'esecuzione del kernel con un ambiente modificato (riga di comando del kernel e initrd) al fine di impedire la perdita della password di crittografia della partizione root ovunque.

Non ho trovato alcun metodo per verificare la configurazione di avvio nonostante diversi giorni di lettura di tutorial / blog Web sull'avvio sicuro, tra cui Ubuntu e PreLoader.efi della Linux Foundation, tutto ciò che spiega come funziona la verifica degli eseguibili, inclusi i moduli del kernel, ma nessuno di che menziona grub.cfg e (script di shell e file di configurazione all'interno) di initrd, quindi sembra che io sia il primo a chiedere mai la verifica di file non binari nel processo di avvio. Le migliori fonti che abbia mai trovato sono quelle di Rod Smith .

Quello che non ho ancora provato è di modificare il codice sorgente di shim o grub, creando un fork o contribuendo direttamente a loro. Sarebbe l'unica strada da percorrere?


Il tuo cross post era di ieri, un po 'più di pazienza sarebbe appropriato, e il cross post certamente non lo è (BTW se invece sopra il downarrow puoi vedere i motivi dei downvotes: nessuno sforzo di ricerca / poco chiaro / non utile)
Anthon

@Anthon, dove pensi sia il posto adatto per porre questa domanda? Non lo so, quindi ho pensato che qui fosse un posto migliore rispetto a SuperUser. E pensi che dovrei eliminare la domanda precedente e questa prima di chiedere nel posto appropriato per evitare di essere sottoposta a downgrade a causa del cross posting di nuovo?
Juergen,

Il cross posting non è mai ok, come sapresti se leggi l'aiuto. Su questo sito è un motivo di chiusura (come hai notato), è necessaria anche un po 'di pazienza, questo è un sito di domande e risposte, non un sito di aiuto personale o istantaneo. Sarebbe opportuno attendere qualche giorno, soprattutto durante il fine settimana. E sarebbe appropriata anche qualche altra descrizione di ciò che hai provato e di ciò che non ha funzionato. Se vuoi che questo sia riaperto qui, elimina la Q sul superutente, indica chiaramente qui (modificando il tuo post) e quindi sarà in coda per essere riaperta.
Anthon,

@Anthon, grazie per i tuoi commenti. Eliminata la domanda su SuperUser e spiegata la domanda qui in modo più dettagliato. Posso fare di meglio?
Juergen,

Sembra migliore, voto per riaprire, ma ti informo che ci vuole molto di più del mio voto.
Anthon,

Risposte:



0

Grub sembra supportare la verifica della firma usando firme separate. Sospetto che sia la tua risposta.


Questo non fornisce una risposta alla domanda. Per criticare o richiedere chiarimenti a un autore, lascia un commento sotto il suo post. - Dalla recensione
Archemar,

In realtà, lo fa. La domanda originale era: "Quindi come posso verificare initrd e la configurazione di grub, possibilmente usando un hash sha256, prima di usarli per l'avvio? Tale verifica potrebbe avvenire in shim, in grub o in qualche altro strumento che potrei usare in aggiunta a o invece di shim e / o grub. " La risposta è: "Grub sembra supportare la verifica delle firme usando firme separate." (Implicitamente: "... così puoi firmare initrd, generare una firma distaccata e far verificare a Grub.")
Justin King-Lacroix,

@Justin King-Lacroix, grazie per la risposta, ma non riesco a trovare firme distaccate in gnu.org/software/grub/manual/grub.html - è una caratteristica di un fork di groff inoffici? Googling "manuale grub firme staccate" non ha restituito nulla di specifico. Potresti indicarmi questa funzione, per favore?
Juergen,

Sfortunatamente, non ho un riferimento manuale; Ho trovato questo guardando attraverso la fonte. Cerca l'operazione "verifica".
Justin King-Lacroix,
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.