Come dimenticare le chiavi LUKS durante l'emergenza?

7

Un giorno, mentre Alice sta scaricando alcune foto dal server Bobs, la sveglia si attiva. Trudy è venuto a rubare tutti i dati.

Fortunatamente, il server è configurato per l'arresto in caso di allarme della stanza del server e dispone di una completa crittografia del disco. Sfortunatamente, l'arresto sta avvenendo piuttosto lentamente perché il server è occupato con Alice. Cosa c'è di peggio, Trudy ha portato dell'azoto liquido.

Ora Trudy è tornato in laboratorio ed estrae le chiavi di crittografia dalla RAM dei server rubati. Presto Trudy conoscerà le attività segrete di Alice e Bob.

Q: Cryptsetup non è pensato per chiudere il dispositivo contenente la root di sistema. Ci sono altre soluzioni che, più velocemente del solo echo b > /proc/sysrq-trigger , aumentano il costo degli sforzi forensi su un sistema Linux?

EDIT: Sì, questa domanda è intenzionalmente limitata ad assumere un tempo di preparazione finito e dettagli di implementazione coinvolti nella gestione dei contenitori LUKS tramite cryptsetup, altre domande più generali esistono.

    
posta anx 12.06.2016 - 19:01
fonte

2 risposte

9

Pulire l'intestazione LUKS renderebbe i dati completamente irrecuperabili, anche se la chiave di password / crittografia viene in seguito scoperta, poiché le password / chiavi utilizzate da LUKS si limitano a crittografare una chiave master memorizzata nell'intestazione e tale chiave master effettivamente crittografa i dati .

Quindi, innanzitutto, l'eliminazione dei primi 2 MB del dispositivo su cui risiede il volume LUKS dovrebbe rendere impossibile la decrittografia aggiuntiva anche se la password viene successivamente ottenuta (tramite ad esempio la cryptanalisi di gomma). Assicurati di sovrascrivere l'intestazione in modo sincrono in modo che le scritture non finiscano nel buffer e scartate perché riavvii il computer senza attendere che i buffer vengano scaricati.

Quindi, la RAM deve essere cancellata. Arrestare il computer è una possibilità, ma i dati possono rimanere nella RAM abbastanza a lungo da consentire a qualcuno di immergerlo nell'azoto liquido e prolungare ulteriormente il periodo di rimanenza dei dati. Un altro approccio che viene utilizzato da Tails è quello di cancellare la RAM dal software di kexec 'con un kernel speciale che sovrascrive la RAM. Questo dovrebbe sconfiggere l'attacco di avvio a freddo.

    
risposta data 12.06.2016 - 23:02
fonte
1

Ci sono due modi per approcciare questo, a seconda di quanto semplicemente vuoi rendere inaccessibili i dati.

Se si desidera semplicemente richiedere la conoscenza della passphrase LUKS per riottenere l'accesso ai dati (più o meno il caso normale, ma espletato), è possibile utilizzare cryptsetup luksSuspend sul nome del dispositivo dm-crypt. Secondo la pagina man, questo:

Suspends an active device (all IO operations will blocked and accesses to the device will wait indefinitely) and wipes the encryption key from kernel memory.

Per ripristinare da un luksSuspend, fai un luksResume.

Se vuoi garantire che Trudy non possa ottenere l'accesso ai dati, allora hai bisogno di qualcosa di più drastico. Nel caso facile, assumiamo che Trudy non abbia un backup dell'intestazione LUKS, nel qual caso è sufficiente sovrascrivere l'intestazione LUKS. Puoi sovrascrivere esattamente l'intestazione e nient'altro (la dimensione dell'intestazione è "offset del payload" (come riportato da cryptsetup luksDump) per 512 byte, e inizia proprio all'inizio del dispositivo), oppure puoi giocare sul sicuro e sovrascrivi ancora. La sovrascrittura dei primi 100 MB di un HDD rotativo richiede da 1 a 3 secondi circa, in base alla velocità di rotazione del convertitore (le unità da 7200 giri / min tendono a raggiungere 100-120 MB / s, con le unità più lente ovviamente più lente ):

ATTENZIONE: NON FARE QUESTO A MENO CHE NON CONOSCI CHE DESIDERI

dd if=/dev/urandom of=/dev/sdb1 bs=1M count=100 conv=sync

AVVISO: COMANDI PERICOLOSI SOPRA

Dopo aver sovrascritto l'intestazione, assicurati di cancellare la chiave dalla memoria del kernel per assicurarti che i dati rimanenti non possano essere decifrati. Questo è semplice come cryptsetup luksSuspend dm-name o cryptsetup remove dm-name . Dopo averlo fatto, il contenitore contiene solo dati dall'aspetto casuale che (a meno di rompere l'algoritmo di crittografia utilizzato) non possono essere decifrati. L'output di qualsiasi buon algoritmo di crittografia, in assenza della chiave di decodifica, sarà statisticamente indistinguibile dal rumore casuale.

In quest'ultimo caso, se veramente vuoi rendere difficile la vita di Trudy, puoi invia una cancellazione sicura ATA al dispositivo di archiviazione sottostante. Supponendo che Secure Erase sia implementato correttamente sull'unità, una volta terminato (che può richiedere diverse ore su HDD rotanti non auto-crittografati, ma normalmente non può essere interrotto una volta avviato), i dati precedentemente salvati no saranno accessibile. Per la maggior parte dei modelli di minacce, tuttavia, è probabile che sia eccessivo; sovrascrivere l'intestazione LUKS e cancellare la chiave nella RAM sarà quasi certamente sufficiente per impedire l'accesso ai dati da parte di qualsiasi avversario ragionevole. Tuttavia è possibile utilizzare la funzione di cancellazione sicura per garantire che non vi siano residui di materiale chiave su un SSD, a causa di indossare livellamento .

    
risposta data 14.06.2016 - 14:13
fonte

Leggi altre domande sui tag