Penso che l'attuale versione di GRUB2 non abbia il supporto per il caricamento e la decrittografia delle partizioni LUKS da sola (contiene alcune cifre ma penso che siano utilizzate solo per il supporto della password). Non posso controllare il ramo di sviluppo sperimentale, ma ci sono alcuni suggerimenti nella pagina di GRUB che è pianificato del lavoro per implementare ciò che vuoi fare.
Aggiornamento (2015) :l'ultima versione di GRUB2 (2.00) include già il codice per accedere alle partizioni cifrate LUKS e GELI. (Il collegamento xercestch.com fornito dall'OP menziona le prime patch per questo, ma ora sono integrate nell'ultima versione).
Tuttavia, se stai tentando di crittografare l'intero disco per motivi di sicurezza, tieni presente che un boot loader non crittografato (come TrueCrypt, BitLocker o un GRUB modificato) non offre più protezione di un /boot
non crittografato partizione (come notato da JV in un commento sopra). Chiunque abbia accesso fisico al computer può facilmente sostituirlo con una versione personalizzata. Questo è persino menzionato nell'articolo su xercestech.com che hai collegato:
Per essere chiari, questo non rende in alcun modo il tuo sistema meno vulnerabile agli attacchi offline, se un utente malintenzionato dovesse sostituire il tuo bootloader con il proprio o reindirizzare il processo di avvio per avviare il proprio codice, il tuo sistema potrebbe comunque essere compromesso.
Si noti che tutti i prodotti basati su software per la crittografia completa del disco presentano questo punto debole, indipendentemente dal fatto che utilizzino un caricatore di avvio non crittografato o una partizione di avvio/preavvio non crittografata. Anche i prodotti con supporto per chip TPM (Trusted Platform Module), come BitLocker, possono essere rootati senza modificare l'hardware.
Un approccio migliore sarebbe:
- decifrare a livello di BIOS (nella scheda madre o nell'adattatore del disco o nell'hardware esterno [smartcard], con o senza chip TPM), oppure
- porta il codice PBA (autorizzazione al preavvio) (il
/boot
partizione in questo caso) in un dispositivo rimovibile (come una smartcard o una chiavetta USB).
Per farlo nel secondo modo, puoi controllare il progetto Linux Full Disk Encryption (LFDE) su:http://lfde.org/ che fornisce uno script post-installazione per spostare il /boot
partizione su un'unità USB esterna, crittografando la chiave con GPG e memorizzandola anche nell'USB. In questo modo, la parte più debole del percorso di avvio (il file /boot
partizione) è sempre con te (sarai l'unico ad avere accesso fisico al codice di decrittazione E alla chiave). (Nota :questo sito è andato perso e anche il blog dell'autore è scomparso, tuttavia puoi trovare i vecchi file su https://github.com/mv-code/lfde (basta notare che l'ultimo sviluppo è stato fatto 6 anni fa). Come alternativa più leggera, puoi installare la partizione di avvio non crittografata in una chiavetta USB durante l'installazione del sistema operativo.
Saluti, MV
Fai in modo che il tuo RAMdisk iniziale e la cartella /boot non utilizzino la crittografia.
Questo farà apparire un kernel "minimo", con driver e supporto per passare al filesystem root "reale" che è crittografato.
Prima di affermare che "questo è un hack" - ricorda - la maggior parte (se non tutte) le distribuzioni Linux si avviano in questo modo oggi per impostazione predefinita. Ciò consente esplicitamente al tuo sistema di avviarsi e caricare il tuo root FS, utilizzando i moduli che deve caricare da un filesystem. (Una specie di problema con l'uovo e la gallina). Ad esempio, se il tuo filesystem di root si trovasse su un volume RAID hardware e avessi bisogno di caricarne il driver prima di poter montare il tuo root FS.
Ho rivisto il collegamento che hai pubblicato:sebbene non ci sia una partizione di avvio, sul disco rigido è ancora presente un caricatore di avvio non crittografato a cui è possibile accedere e comprometterlo utilizzando un attacco Evil Maid. Ho esaminato una configurazione simile, in cui non ci sono dati non crittografati sul disco rigido, ma finora sono riuscito solo a eseguire un boot loader da un'unità rimovibile.