L'eliminazione delle chiavi LUKS durante l'operazione è un buon modo per proteggere i miei dati?

1

Diciamo che Alice possiede un server che memorizza dati altamente sensibili. Supponiamo inoltre che i dati valgano molto, ma perdere tutti i dati è molto meno un problema che averlo letto dall'attacco Mallet.

Per mantenere i dati al sicuro durante il normale funzionamento, tutti i dischi rigidi dispongono di LVM e LUKS con crittografia a pieno volume abilitata. C'è un keyslot abilitato. Il server è protetto contro la perdita di alimentazione tramite UPS.

Alice ha potuto vedere Mallet, che cercava fisicamente di rubare i dischi rigidi, arrivare, ssh nel server e rilasciare cryptsetup luksErase per distruggere definitivamente l'intestazione e quindi rendere i dati irrecuperabili.

Se, tuttavia, Mallet è entrato di nascosto nella stanza del server, scollegato il server dall'UPS senza spegnerlo e quindi rimosso le unità, le intestazioni LUKS con le chiavi sarebbero ancora presenti. Supponendo che Mallet avesse il potere di calcolo tra le mani per infrangere la password, poteva sbloccare i volumi.

Ora mi è venuto in mente questo: cosa succede se il server, una volta sbloccati i volumi, ha sovrascritto le intestazioni? In caso di improvvisa perdita di energia, tutti i dati sarebbero andati perduti per sempre. Quando Alice ha bisogno di riavviarsi, potrebbe copiare i dati dal volume sbloccato su un altro disco, riavviare, reinizializzare il volume LUKS e ripristinare i dati, quindi distruggere il disco esterno.

Sarebbe più sicuro o è sufficiente scegliere una password abbastanza lunga per LUKS? (Per non parlare della soluzione è sicuramente paranoico, ma solo in teoria)

    
posta RenWal 25.10.2016 - 19:09
fonte

2 risposte

2

La tua soluzione sarebbe più sicura rispetto alla scelta di una password veramente lunga?

Dipende dalla dimensione della passphrase.

L'intestazione luks contiene una chiave di dimensioni certe e iv.II non conosce le dimensioni in bit di quei due senza guardarle, ma lascia supporre che insieme siano lunghe 512 bit.

Se si sovrascrive l'intestazione luks, per decrittografare la partizione, è necessario indovinare correttamente questi 512 bit. Questo è attualmente impossibile da fare in un lasso di tempo utile (pensa in qualsiasi momento prima che il sole esploda ...)

Se si assume che luks non esegue alcun allungamento dei tasti (cosa che fa), è necessario avere una passphrase casuale di 64 caratteri per abbinarli. Puoi facilmente creare una chiave di questo tipo:

$ dd if=/dev/random of=my-key bs=64 count=1

È anche possibile passare direttamente una chiave del genere durante la creazione di una partizione luks. Questo è il modo in cui lo swap crittografato funziona su Linux. La partizione di swap viene reinizializzata con una nuova chiave casuale ogni volta che il sistema si avvia, quindi i vecchi contenuti di swap vengono distrutti in modo sicuro.

Per il tuo sistema, potresti renderlo più facile da gestire memorizzando la chiave di accesso in memoria (o / dev / shm). Quando il sistema si arresta in modo imprevisto, la partizione viene persa. quando si desidera riavviare, si memorizza la chiave sul disco (o la si esporta sulla rete) e si apre il contenitore dei luks utilizzando la chiave memorizzata dopo il riavvio. Quindi si sostituisce la chiave con una nuova chiave, che si conserva solo in memoria.

In questo modo, non perderai i dati sugli arresti programmati.

    
risposta data 04.11.2016 - 20:26
fonte
0

Questo sembra piuttosto complicato dato che esiste una soluzione molto più semplice. Invece di avere la chiave di crittografia generata da una password che può essere trovata dalla forza bruta, fallo generare da una password che non può essere trovata dalla forza bruta.

Una password non è ipotizzabile in quanto è una password, è probabile perché è troppo breve, o più precisamente perché ha troppo poca entropia. Se una password ha 128 bit di entropia, non è più immaginabile di qualsiasi altra chiave a 128 bit. (Sostituisci "128" con "256" se credi nella crittanalisi quantica magic .)

Una password così lunga non può essere realisticamente ricordata da un essere umano, ma può essere scritta e digitata dall'operatore o, meglio, memorizzata su una smartcard inserita dall'operatore. L'operatore è necessario per avviare il sistema in ogni caso poiché qualcuno deve fornire le credenziali.

Puoi e dovresti continuare a utilizzare più slot in modo da poter revocare una delle chiavi senza invalidare le altre (ad esempio se una smartcard o un pezzo di carta di un operatore vengono rubati).

Poiché sei preoccupato per un utente malintenzionato con accesso fisico, probabilmente vorrai applicare la patch TRESOR a proteggersi dall'attaccante che arriva con una bomboletta di aria compressa, strappando i moduli RAM e leggendo la chiave dalla RAM.

    
risposta data 04.11.2016 - 22:37
fonte

Leggi altre domande sui tag