Mi è stato chiesto di implementare la crittografia del disco su una macchina che deve essere in grado di eseguire in modo automatico. La macchina ha due dischi. Il primo disco ha una partizione di avvio e una partizione del sistema operativo, mentre il secondo disco ha una sola partizione e viene utilizzato per la memorizzazione di un'applicazione. L'obiettivo è proteggere i dati nella partizione di archiviazione da leggere, nel caso in cui qualcuno decida di rubare i dischi.
Il mio piano è di utilizzare il modulo dm-crypt di Linux per crittografare il sistema operativo e le partizioni di archiviazione. Immagino che abbia più senso usare una chiave per ogni partizione cifrata. Tuttavia, sto cercando di capire il modo migliore per memorizzare ogni chiave.
Per la chiave per la partizione di archiviazione, sembra sicuro salvarla nella partizione del sistema operativo. Tuttavia, sembra che l'unica opzione per archiviare la chiave per la partizione del sistema operativo sia di mantenerla nella partizione di avvio. Sarebbe davvero bello se ci fosse una specie di TPM o altra memoria locale sulla macchina, ma sfortunatamente non c'è altra memoria disponibile.
Quindi, poiché dovrò usare un initramfs per decodificare il disco del sistema operativo, ho pensato che avrei archiviato la chiave per la partizione del sistema operativo in initramfs, che sarebbe stata incorporata nel kernel, che sarebbe stata memorizzata nel partizione di avvio. Ciò impedirebbe la lettura dei dati da parte di una persona a caso che sembra abbia voglia di rubare alcuni dischi. Tuttavia, mi rendo conto che questo non è l'ideale, perché un attacker sufficientemente esperto sarebbe in grado di estrarre gli initramfs dal kernel ed estrarre la chiave dall'immagine initramfs.
Per come la vedo io, non importa quanto sia complesso uno schema che riesco a trovare, devo essere in grado di dire alla macchina come eseguire la routine di decrittazione; un utente malintenzionato deve solo leggere la routine di decrittografia per determinare come decodificare il sistema.
Con la memoria disponibile, c'è un modo migliore per crittografare le partizioni che saranno più resistenti contro un utente malintenzionato che ha il possesso dei dischi?