Eliminare in modo sicuro i dati dai dischi, o cancellarli definitivamente, significa principalmente far sì che questi non possano più essere recuperati (o ridurre al minimo le possibilità di recupero). Abbiamo scoperto come cancellare file in modo sicuro sia con Linux che con Windows, oltre che come cancellare definitivamente un hard disk effettuando una formattazione a basso livello. Solitamente questa operazione viene definito in gergo “wipe”.
Però… c’è un però: procedure del genere sono indicate soltanto per i classici dischi meccanici (HDD) e non vanno assolutamente bene per gli SSD, in quanto potrebbero rivelarsi inutili ai fini della sicurezza o addirittura dannose. E leggendo le righe in basso capiremo insieme il perché!
In questo articolo cercheremo di usare termini molto semplici, che possano essere compresi da tutti; non scenderemo nei dettagli implementativi né esporremo spiegazioni complesse: in nome della facile comprensione ci limiteremo a dare le informazioni che servono per capire perché i metodi classici di cancellazione sicura dei dati che abbiamo usato per i dischi meccanici sono inutili e dannosi per gli SSD.
Capire la struttura
Per capire il motivo per cui il metodo “classico” che usiamo per i dischi meccanici non va bene sugli SSD, dobbiamo cercare di comprendere come queste due unità scrivono i dati.
Un disco meccanico è fatto da diversi piatti divisi “virtualmente” dal sistema operativo; ciascun pezzetto fisico (che chiameremo “settori”) contiene un dato; perché questo dato venga letto, il braccetto del disco meccanico deve muoversi e raggiungere il settore. Ora, in breve, possiamo dire che il driver del disco “fa muovere il braccetto” ma è il sistema operativo, grazie al filesystem, a sapere dove sono memorizzati i vari dati.
La struttura di un SSD è completamente diversa: in esso non esistono componenti meccaniche e i dati vengono letti e memorizzati dal sistema operativo intervenendo sulle tante piccole memorie fisiche (memorie NAND in gergo) di cui è composto un SSD. Anche se il filesystem gioca comunque un ruolo chiave nella memorizzazione dei dati, in realtà il sistema operativo non sa in quale parte dell’SSD i dati scritti andranno a finire.
“Trovare” il posto per un dato da scrivere, “trovare” la posizione di un dato necessario e “segnalare” un dato come non più valido è a completo carico dell’SSD stesso, senza nessun intervento del sistema operativo. Proprio per la sua struttura, negli SSD sono presenti anche zone di memoria “riservate” per trasferire i dati da un punto all’altro.
Perché il metodo di eliminazione usato per i dischi meccanici non va bene per gli SSD?
Comprese le differenze nella gestione dei dati dei due tipi di supporto, se sappiamo come funziona l’eliminazione sicura la risposta vien da sé; se non ne siamo al corrente, invece, scopriamolo insieme.
Sostanzialmente i classici programmi di cancellazione definitiva dei dati tendono a sovrascrivere lo spazio vuoto, un file (per l’eliminazione sicura) o l’intero disco – a seconda di cosa dobbiamo fare – con più cicli di riscrittura di dati casuali che a volte possono essere cifrati. Sostanzialmente ciò va fatto perché, su un disco meccanico, è il sistema operativo a rendere “libero” un settore – ma in quel settore, in realtà, i dati precedenti restano lì finché non vengono sovrascritti.
Su un SSD questo meccanismo non soltanto non è efficace, ma può risultare anche dannoso. Il motivo è semplice: come vi abbiamo spiegato prima, è il driver dell’SSD a sapere (in modo diretto) le cellette NAND in cui sono presenti i dati e non il sistema operativo; dunque un software di eliminazione non saprebbe la posizione fisica dei dati da eliminare.
Oltretutto ciò è quasi inutile: grazie ad una particolare procedura di cancellazione implementata dai sistemi operativi già da qualche anno, il comando TRIM, il dato dalla celletta NAND viene eliminato completamente (“smagnetizzando” provvisoriamente la cella stessa) subito dopo che il sistema operativo avrà impartito l’ordine di eliminare un file, una cartella o altro; se così non fosse, la celletta di memoria non potrebbe essere riscritta facilmente. Dunque è già il TRIM di per sé ad implementare una cancellazione “definitiva” (a meno di non applicare le procedure di recupero della traccia elettrica, ma stiamo parlando di interventi fatti da veri e propri specialisti nei centri di recupero).
Quasi inutile perché, come vi abbiamo detto, la parte di SSD dedicata allo “scambio dei dati” (il buffer) può restare immune dal TRIM. Ed è proprio per casi come questo che si può procedere ad una cancellazione definitiva con un metodo diverso, ma di questo parleremo tra poco.
Dicevamo, è anche pericoloso. I programmi di cancellazione definitiva dedicati agli hard disk scrivono e riscrivono dati sui dischi meccanici per far sparire quelli precedenti; ciò su un SSD è inutile (e lo abbiamo visto prima) ma può anche fisicamente deteriorare il disco, poiché – trattandosi di memorie NAND soggette solo ad impulsi elettrici – ogni SSD ha un ciclo di vita strettamente collegato alle scritture; più si scrive e meno l’SSD vive, dunque il comportamento dei programmi di cancellazione definitiva potrebbero diminuire ancor di più la vita del nostro disco a stato solido.
E’ possibile cancellare definitivamente dati da un SSD?
La risposta è si, ma resta comunque la raccomandazione di farlo soltanto se è strettamente indispensabile (ad esempio in caso di vendita o di presenza di dati estremamente sensibili). Per farlo, però, non andremo ad usare un software di quelli adatti ai dischi meccanici (che, come abbiamo detto, sono inutili ed anche pericolosi) ma il comando ATA “Secure Erase“. Di fatto si tratta di un comando hardware presente nella specifica ATA che, negli SSD, trova un’implementazione tale da limitare al minimo i “danni” potenziali.
Il Secure Erase, che può essere applicato sulla grande maggioranza degli SSD in commercio, fa sì che gli elettroni vengano eliminati dalle memorie NAND ponendole in stato “erase” (quello che TRIM riconosce come “da cancellare”). Di fatto sull’SSD non viene scritto nulla, ma viene inviato un picco di tensione a tutte le memorie NAND disponibili contemporaneamente; in tal modo, tutti i blocchi di memoria (inclusa la zona buffer) vengono ripristinati in un solo colpo.
Durante questa operazione l’SSD deve essere “bloccato” e protetto da password fino al termine; se qualcosa dovesse andare storto (ad esempio per un calo di tensione o per un errore umano), esiste il rischio di briccarlo e di renderlo definitivamente inutilizzabile.
Il comando Secure Erase può essere impartito usando il software di gestione SSD proprietario dei vari produttori, è presente in Parted Magic (che costa circa 8€) e può essere avviato anche da Linux grazie all’utility hdparm. Il “come fare” tuttavia non è tema di questa guida.