La crittografia degli array RAID6 di SSD sarebbe sicura?

2

Data l'incertezza sui dati lasciati in chiaro, ho esitato a utilizzare SSD in cui ho bisogno di crittografia a disco intero. Mentre alcuni SSD impiegano la crittografia hardware, sono piuttosto costosi, e c'è trasparenza inadeguata sull'implementazione .

Mi sono chiesto se gli array RAID6 di SSD potrebbero essere crittografati in modo sicuro usando dm-crypt / LUKS. Secondo Wikipedia, RAID6 "utilizza lo striping a livello di blocco con due blocchi di parità distribuiti su tutti i dischi membri". Sebbene alcuni dati possano essere lasciati in chiaro su ciascuno degli SSD membri, sembra improbabile che tali resti possano essere correttamente assemblati e decrittografati. È un'ipotesi plausibile?

Modifica: vorrei crittografare il volume RAID6, contenente tutto tranne l'avvio, utilizzando dm-crypt / LUKS. Il volume RAID6 crittografato viene utilizzato per LVM2, con volumi per lo scambio, / e home. Un piccolo volume RAID6 (non crittografato) contiene avvio.

Modifica: nelle domande frequenti di cryptsetup , vedo che la chiave problema con SSD e dm-crypt / LUKS è che l'SSD può spostare un settore che contiene chiavi-chiave e intestazione LUKS in un pool di settori scartati e che questi settori scartati potrebbero rimanere indefinitamente prima della cancellazione. Ciò potrebbe impedire la disabilitazione di uno slot per chiavi compromesso (passphrase) o rendere l'intero volume non disponibile sovrascrivendo l'intestazione LUKS con dati casuali.

Tuttavia, non vi è apparentemente alcun rischio di perdita diretta di dati crittografati, poiché il testo in chiaro esiste solo nella RAM. Verranno scartati solo i settori crittografati (ad eccezione delle key-slot e dell'intestazione LUKS, che ovviamente non sono crittografate).

Modifica: riflettendo, sono quasi tornato alla domanda originale. Dato che le key-slot e l'intestazione LUKS risiedono sul volume RAID6, solo una striscia di esse potrebbe rimanere nei settori scartati su qualsiasi disco di un membro. A meno che ciò non si sia verificato in modo coerente sui membri N-2, il che sembra improbabile, nulla sarebbe recuperabile. Giusto?

    
posta mirimir 20.01.2014 - 03:05
fonte

2 risposte

1

Non è stata implementata alcuna sicurezza in RAID6. Da quello che raccolgo nella tua domanda stai suggerendo che la disposizione dei dati attraverso i dischi potrebbe rendere difficile l'acquisizione di dati significativi, ma non del tutto impossibile. Se è un array sano, allora è del tutto possibile.

L'idea sbagliata principale sulla crittografia su SSD è che le persone credono che sia impossibile ottenere senza "perdita di dati". Ciò deriva dal fatto che, a differenza degli HDD, il sistema operativo non può solitamente indirizzare direttamente i settori dell'SSD per le operazioni di lettura / scrittura. Questo perché il firmware dell'SSD implementa un algoritmo di livellamento dell'usura che sceglie dove archiviare realmente i dati in base a quali blocchi flash sono stati scritti o non sono stati scritti, nel tentativo di distribuire le scritture su tutti i blocchi flash nel modo più uniforme possibile ( prolungando così i tuoi SSD MTBF). Questo viene eseguito a prescindere da dove il sistema operativo lo richiede ad andare via LBA.

In definitiva questo significa che se si sceglie di crittografare un SSD dopo aver già memorizzato i dati in testo semplice su di esso, voi come estranei al firmware SSD non avete modo di garantire che i dati archiviati sui blocchi flash non funzionanti don ' t avere informazioni sensibili Ma se non vengono mai scritti dati in chiaro sull'SSD, non ci può mai essere una perdita di informazioni sensibili perché l'SSD non vede mai il testo in chiaro. Pertanto è irrilevante che l'algoritmo di livellamento dell'usura elimini le informazioni sulla posizione dei dati reali, poiché tutti i dati sono protetti.

Credo che siano stati scritti altri attacchi agli SSD, come la possibilità di recuperare dati da altri guest VM in ambienti virtualizzati, ma ancora una volta se il contenitore VM utilizza la crittografia full-disk (FDE), quindi senza le chiavi di decodifica altri ospiti vedrà solo garbage.

    
risposta data 20.01.2014 - 13:05
fonte
0

In una sorta di risposta alla risposta deed02392 , ci sono modi per aggirare questi problemi menzionati, ma dipende in gran parte su come è configurato il tuo array. Sono assolutamente d'accordo che RAID-6 da solo è in assolutamente non sicuro , la gente vuole essere in grado di aggiungere e rimuovere le unità da un array RAID e desidera recuperare nel caso in cui un'unità guasta, quindi se è possibile, puoi essere certo che un avversario con accesso fisico ai dischi potrebbe ottenere quello che vuole una volta che avrà capito in che ordine sono le unità.

Se dovessi configurare un RAID-5, RAID-6, (o 1, 10, 50 o 60 per quella materia) e ho valutato la riservatezza dei dati, ecco cosa farei.

Rilascio di cancellazioni protette

Immediatamente dopo aver ricevuto i dispositivi, emettere i comandi di cancellazione sicura SATA su tutte le unità. Non scrivere nulla per le unità. Se sei inutilmente paranoico, dd if=/dev/zero of=/path/to/device . Ricordati di farlo su tutti i tuoi dispositivi.

Imposta la matrice RAID

Il tuo processo divergerà in una serie di possibilità qui.

RAID hardware

Se stai usando il RAID hardware, dovrai scollegare tutte le unità dopo aver impartito il comando di cancellazione sicura SATA (e scrivere gli zeri, che è abbastanza inutile e ti fa sentire più sicuro) e collegarli al controller RAID. Accedi al tuo RAID BIOS o configura la configurazione RAID dal tuo sistema operativo preferito, anche se di solito il BIOS RAID è più facile da utilizzare rispetto all'esecuzione di una serie di comandi che sembrano progettati per essere confusi. Imposta il tuo livello RAID, quindi esegui il riavvio in un Linux sicuro, magari Kali se sei paranoico.

RAID software

Questo è più complicato e qui ottieni una serie di scelte. LVM? ZFS? BTRFS? Ci sono diversi modi per configurare il software RAID, quindi non posso essere di troppo aiuto qui, Google per te stesso. Assicurati che alla fine di tutte le impostazioni, hai un singolo dispositivo (virtuale, probabilmente) che puoi scrivere su una lunghezza che si estende correttamente per la lunghezza dell'array.

Randomizza l'intera estensione della matrice

Questo passaggio è facoltativo, ma altamente raccomandato. Protegge da alcune preoccupazioni di negazione, che spiegherò di seguito. Non ti proteggerà se sei costretto a decifrare l'array per qualcuno. Il modo più semplice per farlo è utilizzare /dev/urandom o un altro codice sicuro con dd per sovrascrivere tutto:

dd if=/dev/urandom of=/dev/mapper/raid6blockdevice bs=SECTOR_SIZE

Utilizza parted /dev/mapper/raid6blockdevice print per determinare SECTOR_SIZE . Questo potrebbe richiedere molto tempo per completare.

Il risultato di questo passaggio è che ogni bit dell'array esistente sull'SSD è effettivamente casuale. Qualcuno non può dire "quanto è pieno" il proprio filesystem, poiché l'intera cosa è costituita da bit casuali, come l'output da un buon codice dovrebbe essere indistinguibile dai dati casuali .

Setup LUKS / TrueCrypt / VeraCrypt / Your Disk Encryption of Choice

Usando l'arma di crittografia del disco scelta, crittografare il dispositivo a blocchi, quindi installare un filesystem all'interno.

In risposta alle tue preoccupazioni riguardo all'SSD che memorizza internamente l'intestazione del volume LUKS internamente, hai ragione che è possibile. Acquista un dispositivo flash USB da $ 5 e archivia l'intestazione LUKS lì anziché sull'array SSD. Credo che ci sia un modo per farlo.

Senza questo, tieni presente che se dovessi mai bruciare la casa (distruggere tutto!), dovresti avere un accesso fisico per rimuovere tutti gli SSD dal server, collegarli a SATA e proteggere cancellare. Nonostante ciò, è difficile essere completamente sicuri che tutto sia stato davvero cancellato. Inizia a lavorare nel campo di recupero dei dati e trova un SSD che protegge in modo affidabile o almeno chiedi a un amico in quel campo. Senza garanzie e senza legami, probabilmente scriverei semplicemente un ciclo che riscrive per sempre l'intestazione LUKS con dati casuali sperando che l'SSD con tutto ciò che scriverà alla fine sostituirà i dati sequestrati con nuovi dati dalla casualità.

    
risposta data 21.01.2015 - 19:25
fonte

Leggi altre domande sui tag