I migliori metodi attuali per prevenire la perdita di dati da SSD

5

Mi sto interrogando sulle attuali migliori pratiche per garantire la riservatezza dei dati su un SSD utilizzato come disco di avvio del sistema operativo (sotto Linux). Considerazioni importanti sono:

  1. Garantisce la perdita di dati nelle solite condizioni (unità rubata, & c ;; la protezione dei dati in movimento è ovviamente una domanda separata)
  2. Consente la cancellazione completa e sicura dei dati su richiesta, preferibilmente sotto il controllo del software puro
  3. Non interferisce eccessivamente con il normale utilizzo

Il primo passo ovvio è utilizzare la crittografia a disco intero, qui LUKS. Questa più o meno soddisfa la condizione 1 (o dovrebbe). Aiuta molto anche la condizione 2, poiché in teoria se l'intestazione viene cancellata il resto dei dati diventa permanentemente inaccessibile. Tuttavia, su un SSD ci sono alcuni potenziali problemi con questo.

Domanda 1: Qual è il modo migliore per cancellare in modo sicuro un'area specifica (l'intestazione LUKS) da un SSD? Il comando TRIM è apparentemente destinato a questo, ma non sono sicuro della sua affidabilità. Su un HDD mi sento abbastanza fiducioso solo sovrascrivendo ripetutamente i blocchi in questione, ma apparentemente il logoramento dell'usura può impedire che funzioni in SSD.

Domanda 2: Assenza della capacità di distruggere l'intestazione da sola, per quanto riguarda la cancellazione dell'intero disco? Intuitivamente, sovrascrivere ripetutamente l'intero disco dovrebbe impedire che il livellamento dell'usura sia un problema, poiché tutti i settori potrebbero essere sovrascritti. Tuttavia, ciò sembra poco saggio su cui contare, data la possibilità di ad es. settori ancora leggibili contrassegnati come danneggiati ed esclusi dalla tabella di mapping. Il comando Secure Erase è ora affidabile? C'è uno studio del 2010 che dice che non era disponibile in molti dischi; esistono dati più recenti? (Sembra che almeno alcuni dischi ora usino la loro crittografia interna e implementino Secure Erase sovrascrivendo le chiavi utilizzate lì. Questo va bene, se funziona davvero, ma meccanismi closed-source e non-audit implementati all'interno dell'unità stessa don Mi riempia di fiducia.)

Esiste anche la possibilità di utilizzare qualcosa come la modalità di intestazione indipendente di LUKS per impedire che i dati chiave vengano memorizzati sull'SSD stesso. Ciò richiederebbe una configurazione non standard sul sistema, ma nulla di irragionevolmente difficile. Tuttavia, introduce un problema di gallina e uovo per assicurarsi che il dispositivo con l'intestazione sia esso stesso sicuro e in grado di cancellarlo. Se memorizzo l'intestazione su una scheda SD o un'unità flash separata, la cancellazione è effettivamente più semplice? Quale altro tipo di dispositivo potrebbe essere utilizzato?

    
posta Tom Hunt 17.02.2017 - 18:37
fonte

2 risposte

1

La breve risposta alla tua prima domanda è che se non ti fidi dell'implementazione della cancellazione sicura e l'unità utilizza il livellamento dell'usura, non puoi essere soddisfatto che tutti i dati siano stati completamente rimossi dall'SSD senza distruggerlo fisicamente. [1]

Un metodo per aggiungere un po 'di serenità alla cancellazione sicura sarebbe cercare di cancellarlo il più possibile prima della mano. Ad esempio, sovrascrivendo l'intero dispositivo e quindi eseguendo la cancellazione sicura dopo come mostrato di seguito:

# dd if=/dev/zero of=/dev/X bs=4096
# hdparm --user-master u --security-set-pass <PASS> /dev/X
# time hdparm --user-master u --security-erase <PASS> /dev/X

Dove "X" è il tuo dispositivo ed è una password. Qui ci sono delle guide che possono fornire maggiori dettagli sulla cancellazione usando dd:

link

E usando la cancellazione sicura:

link

Il comando dd dovrebbe azzerare tutta la memoria che non è contenuta nella riserva o cattiva, e la cancellazione sicura "dovrebbe" ottenere tutto. L'unica domanda che mi viene posta è come funziona il livellamento dell'usura - potrebbe essere possibile che eseguire il comando dd più volte potrebbe sovrascrivere blocchi che non sono stati scritti per la prima volta - ma ciò richiederebbe la conoscenza del livellamento dell'usura che non ho .

Ovviamente questo cancellerebbe l'intero dispositivo (come nella tua seconda domanda), non solo una sezione. Per cancellare una sezione potresti sovrascrivere i dati, oltre a tutto lo spazio libero invece dell'intero dispositivo. Questo può essere fatto usando dd, con l'output che va su un file invece che su un dispositivo. Dovrebbe essere fatto come root per garantire che lo spazio riservato all'utente root venga sovrascritto. Questo aggiunge il livello del filesystem alla procedura, quindi potrebbe non ottenere tutta la memoria a causa di restrizioni lì.

Se metti l'intestazione su un dispositivo separato, puoi semplicemente utilizzare un dispositivo che desideri distruggere fisicamente per assicurarti che l'intestazione non sia recuperabile. Un'altra opzione è quella di utilizzare un dispositivo sicuro (come NitroKey / SmartCard) per archiviare la chiave (o forse anche l'intestazione separata), che potrebbe essere abbastanza lunga da garantire che gli attacchi di forza bruta non siano fattibili sul dispositivo di memorizzazione. / p>

[1] Se c'è un modo in cui ti fidi della cancellazione sicura; per esempio. reverse engineering o altrimenti ottenere informazioni sulla funzione di cancellazione sicura sull'unità, quindi eseguire la cancellazione sicura lo farebbe naturalmente.

    
risposta data 02.05.2017 - 20:32
fonte
-1

La maggior parte degli SSD sono compatibili con Opal. Questa è una funzionalità di crittografia gestita dall'hardware progettata per rendere molto più semplice ciò che dici. Cerca OpalTool e altra documentazione Opal per informazioni su intervalli, autorizzazioni, cancellazione sicura e così via.

    
risposta data 10.07.2017 - 03:41
fonte

Leggi altre domande sui tag