Come cancellare in modo sicuro un'unità SSD?


36

Sono abbastanza nuovo nella tecnologia SSD, quindi non so come si confronta con i dischi rigidi quando si tratta di cancellare in modo sicuro l'unità. È sufficiente eseguire Utility Disco e cancellare l'unità con l'opzione "sovrascrivi con zero" o è progettata per i dischi rigidi? Ci sono altre azioni da intraprendere?

Non sto cercando la sicurezza di livello NSA, ma solo il tipo di pulizia che faresti se stai tornando o vendendo il Mac.


Hai bisogno di cancellare i dati o devi convincere altre persone che i dati sono stati cancellati? Se devi solo convincerti che i dati sono spariti, dovresti provare il comando ATA Secure Erase. Se è necessario convincere altre persone, potrebbe essere necessario utilizzare un servizio di distruzione del disco.
DanBeale,

Risposte:


45

Dipende dal tuo livello di paranoia. A causa del modo in cui gli SSD gestiscono la scrittura dei dati, fare uno zero una volta su un SSD non è buono come farlo su un disco rigido.

Quando si scrive una determinata pagina di dati su un HD, i nuovi dati vengono semplicemente scritti sui vecchi dati, sostituendoli. Scrivi zeri su tutto il disco e tutti i vecchi dati spariranno. Gli SSD, d'altra parte, non possono semplicemente sovrascrivere singole pagine. Per sostituire i dati in una pagina, i vecchi dati devono prima essere cancellati e gli SSD non possono cancellare singole pagine; devono cancellare interi blocchi costituiti da molte pagine.

Quindi cosa succede quando chiedi a un SSD di sovrascrivere, diciamo, pagina # 5, è che l'SSD lascia i dati sulla sola pagina # 5, ma li contrassegna come non validi, alloca un'altra pagina attualmente vuota (diciamo, # 2305), scrive i nuovi dati alla pagina # 2305 e nota che la prossima volta che il sistema operativo richiede la pagina 5, dovrebbe invece ottenere # 2305. I dati della pagina n. 5 originale rimangono lì fino a qualche tempo dopo, quando l'unità ha bisogno di più spazio, sposta le pagine valide rimanenti lontano dal blocco e le cancella. Gli SSD hanno una capacità di memoria fisica maggiore di quella che espongono al computer, quindi possono destreggiarsi tra blocchi come questo per un po 'prima di dover effettivamente cancellare qualcosa (e quando effettivamente cancellano qualcosa, non c'è modo di prevedere quali blocchi di dati rimanenti saranno essere scelto per la cancellazione). Vedi questa recensione AnandTech per molti più dettagli (attenzione: è abbastanza lungo e le cose rilevanti sono sparse in giro).

Risultato netto: se si scrivono zeri sull'unità "intera", in realtà non è stato sovrascritto tutti i vecchi dati. È stato aggiornato tabella di conversione del controller in modo che tornerò mai più nessuno dei vecchi dati per il sistema operativo (quelle pagine sono tutti validi). Ma se qualcuno è abbastanza hardcore da bypassare il controller, potrebbe recuperare alcuni dei tuoi dati.

La sovrascrittura due volte probabilmente funzionerà, ma dipende dalla strategia di allocazione del controller. Sovrascrivere due volte con dati casuali ( diskutil randomDisk 2 /dev/diskN) è un po 'più probabile che funzioni, ma non è ancora garantito. Entrambi hanno anche alcuni effetti collaterali negativi: usano parte della vita del disco e aumentano anche la frammentazione logica sull'SSD, diminuendone le prestazioni di scrittura.

Si noti che le versioni recenti dell'utilità disco grafica di OS X disabilitano le opzioni di cancellazione sicura su SSD (per i motivi discussi sopra), ma la versione da riga di comando consente comunque. A proposito, ho anche visto diversi consigli per cancellare in modo sicuro SSD convertendoli in formato crittografato, ma questo è (semmai) leggermente meno sicuro rispetto alla sovrascrittura con dati casuali.

Il modo migliore per cancellare in sicurezza un SSD è invocare la funzione di cancellazione sicura integrata nel controller. Questo dovrebbe (se i progettisti del controller hanno fatto il loro lavoro) cancellare veramente tutti i blocchi e avere anche l'effetto collaterale di ripristinare la mappa logica della pagina, essenzialmente deframmentarla e ripristinarne le prestazioni originali. Sfortunatamente, la maggior parte delle utility che ho visto per fare questo (ad esempio HDDErase di CMRR ) funzionano sotto DOS, che non si avvia su un Mac. Ho trovato un post su macrumor con istruzioni (piuttosto complesse) per fare una cancellazione sicura da un CD di avvio GParted. Potrebbe anche essere possibile utilizzare Parted Magic da un'unità flash avviabile , ma non l'ho provato.

I ricercatori del Non Volatile Systems Lab dell'UCSD hanno testato vari modi per disinfettare gli SSD "cancellando" l'unità, quindi smontandola per bypassare il controller e controllando i dati rimanenti ( riepilogo , documento completo ). I loro risultati sono per lo più in accordo con quanto detto sopra (e mostrano anche che il comando di cancellazione sicura integrato non è sempre implementato correttamente):

I nostri risultati portano a tre conclusioni: in primo luogo, i comandi integrati sono efficaci, ma a volte i produttori li implementano in modo errato. In secondo luogo, la sovrascrittura dell'intero spazio di indirizzi visibile di un SSD due volte è di solito, ma non sempre, sufficiente per disinfettare l'unità. In terzo luogo, nessuna delle tecniche esistenti orientate al disco rigido per la sanificazione dei singoli file è efficace sugli SSD.


1
Grazie per la risposta estesa. Non è un problema per me eseguire un comando Terminal come suggerisci. Ma per riferimento futuro: cosa possono fare gli utenti normali che non sono così a proprio agio con Terminal? Usa semplicemente l'opzione a 7 passaggi di Utility Disco?
Rinzwind,

4
Non so se posso davvero "raccomandare" nessuna delle opzioni a questo punto - fanno tutti schifo. Qualsiasi opzione di sovrascrittura utilizzerà il limite di scrittura della durata dell'unità e tenderà ad aumentare la frammentazione e ridurre le prestazioni. La cosa migliore sarebbe che Apple aggiungesse ATA-secure-erase (cioè l'opzione basata sul controller) come opzione in Utility Disco, ma chissà quando / se ciò accadrà.
Gordon Davisson,

2
@Gordon - È stata una risposta grandiosa e istruttiva! +1
Dolan Antenucci,

Ciao @GordonDavisson. Curioso se qualcosa è cambiato da quando hai scritto questa risposta (da allora ci sono stati alcuni aggiornamenti del sistema operativo).
samthebrand

@SamtheBrand: non è cambiato molto. Ho aggiunto una nota che Utility Disco (versione GUI) ora non consente la cancellazione sicura su SSD (perché non funziona davvero), riparato il collegamento a HDDErase e aggiunto una nota che Parted Magic potrebbe funzionare (anche se non l'ho provato ).
Gordon Davisson,

8

Apri un terminale e digita il seguente comando:

df -k

Nota la prima colonna corrispondente alla partizione dell'SSD che desideri cancellare irreversibilmente. Diciamo che lo è /dev/disk1s2.

Digita il seguente comando:

dd if=/dev/zero of=/dev/rdisk1s2 bs=100k

dove si /dev/rdisk1s2trova il dispositivo raw associato alla partizione su SSD. Questo comando scriverà completamente questa partizione dal 1 ° blocco disponibile all'ultimo. Questo comando durerà a lungo (~ 1/2 h per 100 Gbyte) senza una bella barra di avanzamento.

Una volta che questo comando ti restituisce il prompt della shell, il disco è stato completamente e irreversibilmente cancellato. Avvia Disk Utilitye controlla questa partizione. Ti dirà che è danneggiato oltre ogni forma di riparazione. Ed è giusto

Basta formattare questa partizione come preferisci.

Ecco cosa sta succedendo a livello di blocchi fisici:film di dd & DU che cancella un SSD


1
Ciò equivale all'opzione Utility Disco per sovrascrivere con zero e non sarà completamente sicuro su SSD per lo stesso motivo. Vedi la mia risposta per la spiegazione dettagliata.
Gordon Davisson,

→ Gordon: ho letto la tua risposta e penso di averla capita, e l'ho votata per la sua qualità. La mia risposta sta usando il dispositivo disco non elaborato e non il blocco (come Utility Disco). Questo deve essere verificato su SSD (con strumenti affidabili) ma per quanto ne so su vecchi HD standard che utilizzano cache, l'interfaccia del disco grezzo era il modo semplice per evitare questa cache. Un dispositivo SSD è semplicemente un disco HD in cui la cache è la piena capacità e il disco fisico viene rimosso.
dan

L'uso del dispositivo raw (/ dev / rdisk *) ignora le cache del sistema operativo, ma non elude il livello di traduzione flash (che è la fonte del problema che ho descritto). In effetti, non c'è modo di bypassarlo dal sistema operativo: il controller del dispositivo semplicemente non espone mai il vero archivio flash raw al bus (SATA o altro) e poiché il sistema operativo può interagire solo con l'unità sul bus, non c'è modo per ottenere l'accesso abbastanza grezzo per eseguire una sovrascrittura sicura.
Gordon Davisson,

Il primo passo ddè qui non solo per bypassare un certo livello di cache (non abbiamo modo di conoscerne la capacità), ma per esaurirli parzialmente (questo è lo stato della figura 3). Il secondo passaggio dovrà davvero trovare nuovi blocchi e cancellarli in modo sicuro.
dan

Ciò non è ancora sufficiente, per due motivi: in primo luogo, quando Utility Disco formatta il disco, ne sovrascrive solo un po '(la tabella delle partizioni, le intestazioni del volume, ecc.) E non vi è alcuna garanzia che sia sufficiente per esaurire la capacità aggiuntiva. In secondo luogo, non vi è alcuna garanzia che la scrittura aggiuntiva di DU colpirà blocchi fisici diversi da quelli cancellati in precedenza - a seconda della strategia di allocazione del controller, è del tutto possibile che si stiano cancellando gli stessi blocchi fisici più e più volte. Ecco perché ho detto che anche sovrascrivere due volte tutto lo spazio potrebbe non essere sufficiente.
Gordon Davisson,

7

Il pulsante "Opzioni di sicurezza ..." in Utility Disco è attualmente disattivato per gli SSD. Secondo http://support.apple.com/kb/HT3680 , la cancellazione di un SSD normalmente potrebbe essere abbastanza sicura:

Nota: con OS X Lion e un'unità SSD, Cancellazione sicura e Cancellazione di spazio libero non sono disponibili in Utility Disco. Queste opzioni non sono necessarie per un'unità SSD perché una cancellazione standard rende difficile il recupero dei dati da un SSD. Per maggiore sicurezza, considerare l'attivazione della crittografia FileVault 2 quando si inizia a utilizzare l'unità SSD.

È ancora possibile eseguire qualcosa di simile diskutil secureErase freespace 4 disk0s2da Terminal sulla partizione di ripristino.

Tuttavia, semplicemente accendere FileVault 2 prima di cancellare l'unità è probabilmente un'opzione migliore. Secondo questa risposta , l'esecuzione di una cancellazione remota cancella anche la chiave di crittografia se FileVault 2 è abilitato:

Sì, quando si cancella in remoto il computer esegue una cancellazione sicura. Apple ti avverte persino che potrebbe richiedere fino a un giorno. Tuttavia, se l'unità è stata crittografata con FileVault 2, non è necessario cancellare il disco. È sufficiente cancellare in modo sicuro le chiavi di crittografia memorizzate sul disco, quindi è quello che fanno. È molto rapido e sicuro come il sistema di crittografia sottostante, che per ora è molto sicuro.

http://training.apple.com/pdf/wp_osx_security.pdf :

FileVault 2 offre ai dipartimenti IT la possibilità di cancellare la chiave di crittografia da un determinato Mac in qualsiasi momento per garantire che l'accesso agli utenti o gli strumenti di recupero dati non possano accedere ai dati crittografati. Questo processo viene definito cancellazione remota.


5
L'attivazione della crittografia (ad esempio FileVault) prima di archiviare i dati sensibili è un'opzione eccellente, ma mi viene in mente che il processo utilizzato per "cancellare" la chiave di crittografia potrebbe non essere completamente sicuro per lo stesso motivo che non è una cancellazione sicura standard - - la vecchia chiave di crittografia verrà comunque archiviata in Flash, proprio in una pagina mappata. Quindi qualcuno che può bypassare il controller potrebbe ancora ottenere il tasto "cancellato" ...
Gordon Davisson

@GordonDavisson ma se si abilita nuovamente la crittografia durante la formattazione dell'unità, la vecchia chiave di crittografia deve essere sovrascritta, quindi i vecchi dati non sono accessibili in modo sicuro?
Sostituisci il

@supersize La vecchia chiave di crittografia potrebbe essere sovrascritta, ma dipende esattamente da quali pagine fisiche vengono cancellate durante la riformattazione, ed è qualcosa che controlla il firmware dell'unità, non il sistema operativo.
Gordon Davisson,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.