secure-os.org
Tutte le guideQubes OSTailsWhonixLinux rafforzatoCrittografia del discoModello di minaccia
encryption

Come cancellare in modo sicuro un SSD (NVMe Secure Erase, prima di vendere o smaltire)

secure-os· Aggiornato 28 giugno 2026· 9 min di lettura #encryption#data-sanitization#opsec
Un SSD SATA da 2,5 pollici etichettato SanDisk X110 Solid State Drive appoggiato su una scrivania

Risposta rapida: su un SSD (unità a stato solido), non ricorrere agli strumenti che useresti su un disco rigido meccanico - shred, dd if=/dev/zero, il multi-passaggio Gutmann o DBAN. Sono inaffidabili sugli SSD e usurano l’unità senza alcun beneficio di sicurezza. Usa invece uno di due metodi: (1) il comando di sanitizzazione del firmware dell’unità stessa - ATA Secure Erase per gli SSD SATA, oppure NVMe Format / NVMe Sanitize per le unità NVMe - o (2) la cancellazione crittografica: se l’unità è cifrata, distruggi la chiave di cifratura e ogni blocco diventa istantaneamente illeggibile. L’uno o l’altro è appropriato prima di vendere, donare o smaltire un’unità.

Questa guida spiega perché gli SSD sono diversi, illustra i comandi firmware su Linux e copre la scorciatoia della cancellazione crittografica, spesso l’opzione più semplice e affidabile.


Perché un SSD non è un disco rigido

Su un disco rigido meccanico, un indirizzo di blocco logico corrisponde a una posizione fisica fissa su un piatto rotante. Sovrascrivi quel blocco e hai sostituito fisicamente lo stato magnetico in cui vivevano i dati. Ecco perché la cancellazione basata su sovrascrittura (shred, dd, strumenti multi-passaggio) funziona sui dischi rigidi.

Gli SSD infrangono questo presupposto in tre modi:

  • Wear-leveling. Le celle di memoria flash NAND si degradano a ogni scrittura, quindi il controller dell’SSD distribuisce le scritture tra i chip per uniformare l’usura. Quando „sovrascrivi” un file, di solito il controller scrive i nuovi dati in un blocco fisico diverso e nuovo e rimappa l’indirizzo logico - lasciando i dati originali in una cella ormai orfana che non puoi indirizzare dal sistema operativo.
  • Over-provisioning. Ogni SSD riserva capacità fisica extra (spesso dal 7 al 28 %) mai esposta al sistema operativo. I dati possono restare in questo spazio di riserva, completamente fuori dalla portata di qualsiasi sovrascrittura tu lanci.
  • TRIM e il livello di traduzione flash. Il controller mantiene la propria tabella di corrispondenza tra indirizzi logici e fisici. Non hai alcun percorso di comando diretto verso una cella specifica; chiedi solo al controller, ed è lui a decidere.

La conseguenza: un passaggio di sovrascrittura software non può garantire di aver toccato ogni cella fisica che abbia mai contenuto i tuoi dati. I metodi multi-passaggio come Gutmann sono stati progettati per la codifica magnetica dei dischi rigidi degli anni ‘90 e non offrono alcun beneficio aggiuntivo sulla flash - moltiplicano soltanto l’usura da scrittura. L’approccio corretto affida il compito all’unico componente che può raggiungere ogni cella: il controller dell’SSD stesso.

Il circuito stampato nudo di un SSD SATA che mostra i suoi chip di memoria flash NAND neri e il connettore di bordo dorato

Metodo 1 - Sanitizzazione firmware (ATA Secure Erase / NVMe Sanitize)

Ogni controller SSD moderno implementa un comando integrato che azzera le celle che il controller conosce - inclusa la riserva di over-provisioning. È il modo autorevole per cancellare il supporto fisico.

Un avvertimento deciso prima di qualsiasi comando qui sotto: queste operazioni cancellano l’intera unità in modo irreversibile, incluse le partizioni, il sistema operativo e qualsiasi dato che avevi dimenticato. Identifica prima il dispositivo corretto (lsblk, sudo nvme list), smontalo e non eseguirli mai contro il tuo disco di sistema in funzione. Esegui prima il backup di tutto ciò che ti serve.

SSD NVMe su Linux (nvme-cli)

Il pacchetto nvme-cli fornisce i comandi standardizzati di sanitizzazione e formattazione per le unità NVMe. Sostituisci /dev/nvmeXn1 con il vero namespace dell’unità che intendi cancellare - e verificalo due volte.

# Elenca i dispositivi NVMe per scegliere quello giusto
sudo nvme list

# Cancellazione crittografica: ruota la chiave di cifratura interna del supporto,
# rendendo tutti i dati esistenti indecifrabili all'istante (se supportato)
sudo nvme format /dev/nvmeXn1 --ses=2

# Oppure una cancellazione a blocchi (dati utente) invece della crypto-erase
sudo nvme format /dev/nvmeXn1 --ses=1

# Il comando dedicato sanitize (cancellazione a blocchi); verifica prima il supporto
sudo nvme sanitize /dev/nvmeXn1 --sanact=2

--ses=2 richiede una cancellazione crittografica: molti SSD NVMe cifrano in modo trasparente tutti i dati con una chiave interna, e ruotare quella chiave rende il vecchio contenuto irrecuperabile in pochi secondi. --ses=1 richiede una cancellazione dei dati utente. Il supporto a ciascuna modalità varia da unità a unità; sudo nvme id-ctrl /dev/nvmeXn1 riporta le capacità di sanitize e format che il controller dichiara.

SSD SATA su Linux (hdparm)

Per gli SSD SATA, il comando ATA Secure Erase viene emesso tramite hdparm. L’unità non deve essere „frozen” (un ciclo di alimentazione o una sospensione/ripresa spesso rimuove lo stato frozen). La sequenza imposta una password utente temporanea, quindi emette la cancellazione, che rimuove la password come parte dell’operazione.

# Conferma che l'unità sia "not frozen" e supporti il comando
sudo hdparm -I /dev/sdX | grep -i -A2 security

# Imposta una password temporanea (richiesta dalla specifica ATA per armare la cancellazione)
sudo hdparm --user-master u --security-set-pass p /dev/sdX

# Emetti il secure erase (o --security-erase-enhanced se elencato come supportato)
sudo hdparm --user-master u --security-erase p /dev/sdX

Anche qui, /dev/sdX è un segnaposto - sostituisci il nodo di dispositivo verificato. blkdiscard /dev/sdX è un’alternativa più leggera che emette un TRIM/discard sull’intero dispositivo; è più veloce ma, a differenza del sanitize, non garantisce che l’area di riserva sia cancellata, quindi per lo smaltimento preferisci il sanitize firmware.

Strumenti dei produttori

La maggior parte dei produttori di SSD fornisce utility desktop che incapsulano questi stessi comandi firmware dietro un pulsante - la via più semplice per gli utenti Windows: Samsung Magician (Secure Erase), Crucial Storage Executive, WD Dashboard / SanDisk Dashboard e simili. Emettono i comandi standard ATA/NVMe di sanitize dietro le quinte.

Metodo 2 - Crypto-erase (distruggere la chiave)

Il metodo più semplice e robusto non cancella affatto le celle - rende i dati definitivamente indecifrabili distruggendo la chiave.

Se l’intera unità è già cifrata - con LUKS su Linux, BitLocker su Windows o FileVault su macOS - allora ogni blocco del disco è testo cifrato. Il testo in chiaro esiste solo quando la chiave è caricata. Cancella o sovrascrivi il materiale della chiave e l’intero volume diventa un campo di byte dall’aspetto casuale che nessuno può decifrare, all’istante e indipendentemente dal wear-leveling o dall’over-provisioning.

Su un volume LUKS questo significa distruggere l’header che contiene gli slot delle chiavi:

# Cancella in modo irreversibile uno specifico slot di chiave LUKS, o l'intero header
sudo cryptsetup luksErase /dev/sdX

Una volta sparito l’header LUKS, la chiave di volume che proteggeva non può più essere recuperata, quindi i dati sono irrecuperabili anche se il testo cifrato resta fisicamente nelle celle. Ecco perché cifrare un’unità fin dal primo giorno è la migliore strategia di smaltimento: quando arriva il momento, non devi affatto fidarti del sanitize firmware - butti via semplicemente la chiave. Vedi le nostre guide sulla cifratura completa del disco e su cos’è davvero la cifratura per impostarla correttamente.

Per le unità che non sono mai state cifrate, la crypto-erase non è disponibile a posteriori, quindi ripiega sul sanitize firmware del Metodo 1.

Prima di vendere, donare o smaltire

MetodoQuando usarloAffidabilità su SSD
ATA Secure Erase / NVMe SanitizeQualsiasi SSD che controlli direttamente; prima della rivenditaAlta - il controller azzera tutte le celle, riserva inclusa
Crypto-erase (distruggere la chiave)Unità già cifrata (LUKS/BitLocker/FileVault)Alta - istantanea, indipendente dal wear-leveling
blkdiscard (TRIM)Cancellazione rapida quando sanitize non è disponibileMedia - area di riserva non garantita
Cifrare poi reset di fabbricaTelefoni, laptop con reset integratoAlta se la cifratura era attiva prima del reset
shred / dd / multi-passaggio GutmannSolo dischi rigidi meccaniciBassa su SSD - non raggiunge le celle rimappate
Formattazione rapida / eliminazione / svuotare cestinoMai, per uno smaltimento sicuroNessuna - rimuove solo la voce nella tabella dei file

Vendere o regalare l’unità: esegui un Secure Erase firmware (o lo strumento del produttore), oppure se era cifrata, fai una crypto-erase distruggendo la chiave, poi eventualmente un singolo sanitize firmware per tranquillità. Distruggere fisicamente un’unità morta che non si accende più (quindi nessun comando può raggiungerla): la distruzione meccanica dei chip NAND è il ripiego quando il sanitize è impossibile.

Cosa NON funziona

  • La formattazione rapida riscrive l’indice del filesystem, non i dati; i blocchi sottostanti restano intatti.
  • Eliminare file / svuotare il cestino rimuove solo dei puntatori.
  • Un singolo passaggio di zeri su un SSD manca le celle rimappate e in over-provisioning e non fa autorità.
  • shred, dd, Gutmann, DBAN sono stati costruiti per i piatti magnetici e non offrono alcuna garanzia sulla flash, aggiungendo usura da scrittura.

Domande frequenti

shred funziona su un SSD?

Non in modo affidabile. shred sovrascrive i blocchi logici a cui lo punti, ma il controller di un SSD usa wear-leveling e over-provisioning, quindi la tua sovrascrittura spesso finisce su celle nuove mentre i dati originali sopravvivono in celle rimappate o riservate che non puoi indirizzare. Usa invece il Secure Erase / Sanitize firmware dell’unità, o la crypto-erase se l’unità è cifrata.

ATA Secure Erase è sicuro per l’unità?

Sì. ATA Secure Erase e NVMe Sanitize sono comandi standard che il controller è progettato per eseguire; azzerano le celle invece di martellarle con passaggi, quindi causano molta meno usura di una sovrascrittura multi-passaggio. Il vero rischio è umano: il comando cancella l’intera unità in modo irreversibile, quindi verifica il nodo di dispositivo ed esegui prima il backup di ciò che ti serve.

Come cancello in modo sicuro un SSD NVMe su Linux?

Installa nvme-cli, esegui sudo nvme list per identificare il namespace corretto, poi emetti sudo nvme format /dev/nvmeXn1 --ses=2 per una cancellazione crittografica (o --ses=1 per una cancellazione dei dati utente). Alcune unità supportano anche sudo nvme sanitize. Controlla con sudo nvme id-ctrl quali modalità dichiara la tua unità e ricontrolla il percorso del dispositivo - l’operazione non può essere annullata.

Cifrare e poi distruggere la chiave è sufficiente?

Sì, quando l’intera unità era cifrata fin dall’inizio. Se ogni blocco è testo cifrato (LUKS, BitLocker, FileVault), distruggere il materiale della chiave - per esempio cancellando l’header LUKS con cryptsetup luksErase - rende tutti i dati indecifrabili all’istante, indipendentemente dal wear-leveling o dall’over-provisioning. Non aiuta con i dati scritti prima che la cifratura fosse attivata, motivo per cui cifrare un’unità fin dal primo giorno è il piano di smaltimento più pulito.