Crittografia disco automatica

2

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?

    
posta millinon 14.06.2017 - 17:07
fonte

4 risposte

3

Questo è l'infinito problema di: So come crittografarlo in modo sicuro, ma dove dovrei conservare la chiave in modo sicuro? . Sfortunatamente, non esiste una soluzione piacevole, perché se si desidera consentire un riavvio non presidiato, la chiave deve essere accessibile dalla macchina. Ciò significa che puoi contare solo su qualcosa che hai .

Ha detto in modo diverso, se viene rubato solo il disco di archiviazione, il sistema sarà sicuro, ma se entrambi i dischi sono, l'attaccante avrà tutto ciò che gli serve per decodificare tutto.

La migliore soluzione tecnica che posso immaginare sarebbe quella di utilizzare un HSM per decodificare le chiavi. Ma aggiunge sicurezza solo se si può sperare che l'HSM non venga rubato con i dischi. Ciò significa che l'unico modo efficace sarà migliorare la sicurezza fisica del data center.

    
risposta data 14.06.2017 - 17:45
fonte
0

"Un criptosistema dovrebbe essere sicuro anche se tutto ciò che riguarda il sistema, ad eccezione della chiave, è di dominio pubblico." Principio di Kerckhoff

Dato che c'è già una risposta eccellente, la indicherò qui di seguito: Quanto è prezioso il segreto di un algoritmo?

    
risposta data 14.06.2017 - 17:23
fonte
0

Come hai detto, e anche altri, il problema è di consentire al computer di riavviarsi mentre si memorizza la chiave da qualche parte leggibile.

Dici che il sistema sarà incustodito quindi assumerò senza testa / inaccessibile. Hai preso in considerazione l'utilizzo di KVM su IP? Ovviamente con questo c'è un potenziale problema di un attaccante sul posto che spegne il computer e posiziona uno sniffer tra le porte della tastiera prima di prendere i dischi. La mia unica vera idea qui qui è decente sulla sicurezza del sito.

    
risposta data 14.06.2017 - 22:12
fonte
0

La soluzione migliore è usare un HSM. Ma se non puoi farlo, allora hai bisogno di un server delle chiavi. Questo server chiave dovrebbe essere un altro computer che si trova nella stessa rete protetta o accessibile tramite una VPN se sei preoccupato per il furto fisico. Il server delle chiavi dovrebbe contenere la chiave ed essere accessibile solo dalle macchine locali (cioè non dovrebbe essere esposto pubblicamente), al momento dell'avvio, le macchine dovrebbero richiedere la chiave di decodifica dal server delle chiavi.

Il server delle chiavi potrebbe essere il tuo unico punto debole, dovrai comunque inserire manualmente la chiave di decodifica sul server delle chiavi manualmente quando devi riavviare il server delle chiavi. In alternativa all'introduzione manuale della chiave sul server delle chiavi, è possibile avere cluster di server delle chiavi ridondanti. Quando il server delle chiavi si riavvia, recupera le chiavi di decrittografia da altri key server con peering. In questo modo, ogni singola macchina nel sistema può riavviarsi da sola, anche se è necessario fare in modo che i server delle chiavi non si riavviino tutti contemporaneamente.

È possibile che il server delle chiavi registri gli accessi ai tasti e possibilmente invii avvisi e-mail quando si accede ai tasti dal server delle chiavi.

    
risposta data 15.06.2017 - 04:54
fonte

Leggi altre domande sui tag