Nel mondo Unix e Linux, dd è probabilmente uno dei comandi più famosi e più temuti. La sua potenza brutale – scrivere byte grezzi direttamente su un device block – lo rende uno strumento perfetto per la cancellazione dei dati, ma anche per distruggere irrimediabilmente il sistema con una singola riga di comando.
L’archetipo del disastro è noto: prendiamo il comando dd if=/dev/zero of=/dev/sdX. Scrive zeri su tutto il dispositivo denominato /dev/sdX, sovrascrivendo ogni settore accessibile. Un errore di una lettera, un device che cambia nome dopo un hot-swap, una disattenzione di pochi secondi: il danno è immediato, totale e irreversibile.
È in questo spazio, lasciato scoperto da decenni di strumenti software “low-level”, che si inserisce dwipe, un progetto che non tenta di reinventare la cancellazione dei dati, ma di ridurre drasticamente il rischio umano associato alla sua esecuzione.

Per l’installazione di dwipe su Linux è consigliato l’uso di pipx: pipx install dwipe. Per la rimozione, si può usare l’istruzione pipx uninstall dwipe mentre per l’accesso alla guida in linea e per verificare l’avvenuto caricamento, si può usare dwipe --help.
dwipe: non un nuovo algoritmo, ma una nuova filosofia
dwipe non introduce nuovi metodi di cancellazione crittografica o fisica. Dal punto di vista teorico, fa ciò che fanno dd, shred o nwipe: scrive pattern (zeri o dati random) su un device. La differenza è architetturale e operativa, non matematica.
Il problema principale della cancellazione dati oggi non è l’efficacia del pattern, ma identificare correttamente il dispositivo, evitare conflitti con mount attivi, gestire più dispositivi contemporaneamente, prevenire errori dovuti a hot-swap, capire cosa è stato già cancellato e quando.
Una volta avviato, dwipe espone visivamente:
- dimensione reale del disco
- vendor e modello
- filesystem e label
- stato di mount
- stato di wipe persistente
- porta fisica e seriale (USB, SATA, NVMe)
Queste informazioni, quando presentate prima di qualsiasi operazione distruttiva, grazie alla TUI (Text User Interface), riducono drasticamente la probabilità di errore rispetto a un comando dd lanciato “a memoria”.
Persistenza dello stato: sapere se un disco è già stato cancellato
Negli ambienti operativi (laboratori, data center, assistenza IT) ci si chiede spesso “questo disco è già stato cancellato o no?” dwipe affronta il problema scrivendo metadati persistenti direttamente sul device, fuori da qualsiasi filesystem: percentuale completata, modalità di wiping, timestamp, stato di verifica.
Questo tipo di approccio permette di ricollegare un disco settimane dopo, sapere se la cancellazione è completa, riprendere un’operazione di wiping interrotta senza ripartire da zero. Utilità quali dd, shred o nwipe non hanno memoria. dwipe sì.
Confronto tra dwipe, dd, shred e nwipe
| Funzionalità | dwipe | nwipe | shred | dd |
|---|---|---|---|---|
| Interfaccia TUI interattiva | ✓ | ✓ | ✗ | ✗ |
| Cancellazioni multiple simultanee | ✓ | ✗ | ✗ | ✗ |
| Rilevamento hot-swap | ✓ | ✗ | ✗ | ✗ |
| Blocco dispositivo/partizione | ✓ | ✗ | ✗ | ✗ |
| Stato di cancellazione persistente | ✓ | ✗ | ✗ | ✗ |
| Ripresa cancellazioni interrotte | ✓ | ✗ | ✗ | ✗ |
| Registrazione delle operazioni di wipe | ✓ | ✗ | ✗ | ✗ |
| Rilevamento e prevenzione dei mount | ✓ | ✓ | ✗ | ✗ |
| Verifica statistica rapida a campionamento | ✓ | ✗ | ✗ | ✗ |
| Standard di cancellazione multi-pass | ✗ | ✓ | ✓ | ✗ |
| Verifica sequenziale completa | ✗ | ✓ | ✓ | ✓ |
| Generazione di certificati | ✗ | ✓ | ✗ | ✗ |
Direct I/O e affidabilità del wipe
Una delle scelte tecniche più rilevanti di dwipe consiste nell’uso sistematico di Direct I/O per le operazioni di scrittura. I dati non transitano attraverso la page cache del kernel Linux, ma sono inviati direttamente al controller del dispositivo di memorizzazione. In un’operazione di wipe, questo dettaglio è tutt’altro che marginale: la page cache può introdurre buffering aggressivo che restituisce all’utente una sensazione di avanzamento non sempre corrispondente allo stato reale del disco.
Evitando la cache, dwipe ottiene scritture più prevedibili e osservabili, riduce l’impatto sul resto del sistema e, soprattutto, rende molto più affidabile l’interruzione di un’operazione in corso.
Quando si arrestasse un’attività di wiping, ciò che risulta scritto è realmente scritto sull’unità, non semplicemente accodato in memoria. La velocità massima non è l’obiettivo principale: la certezza che i byte abbiano effettivamente raggiunto l’hardware è molto più importante.
Verifica statistica: un approccio moderno alla validazione del wipe
La verifica completa tramite lettura sequenziale dell’intero disco è una pratica tradizionale, ma sempre meno efficiente con l’aumento delle dimensioni dei supporti di memorizzazione.
dwipe adotta un modello di verifica statistica distribuita, che privilegia la copertura intelligente rispetto alla lettura esaustiva. Il supporto di memorizzazione è suddiviso logicamente in un numero fisso di sezioni, ciascuna delle quali campionata in modo casuale; i dati letti sono poi analizzati per verificare la coerenza con il pattern di scrittura atteso (zeri o dati pseudo-casuali).
Si tratta di uno schema che consente di individuare errori, settori problematici o scritture incomplete in modo molto rapido, senza dover leggere sequenzialmente terabyte di dati. Il risultato è una verifica che si adatta bene alle unità moderne, pur mantenendo un buon livello di affidabilità operativa.
SSD e NVMe: il limite strutturale dell’overwrite
Su un punto è necessario essere spendere qualche parola in più: la sovrascrittura logica non equivale alla “sanitizzazione completa” su unità SSD e PCIe NVMe. Meccanismi intrinseci come wear leveling, blocchi rimappati, aree di riserva e garbage collection fanno sì che una parte dei dati storici possa rimanere fisicamente memorizzata in aree non direttamente indirizzabili dal sistema operativo. Non è un limite di dwipe in quanto tale, ma una conseguenza dell’architettura dei dispositivi a stato solido.
Di conseguenza, dwipe – esattamente come dd, shred o nwipe – rientra nella categoria degli strumenti di tipo Clear, non Purge. Significa che l’applicazione è adeguata per la maggior parte degli scenari operativi comuni, ma non può garantire la distruzione completa dei dati su SSD senza il supporto del firmware del dispositivo.
Proprio per colmare questo divario, la roadmap di dwipe prevede l’introduzione del supporto ai comandi NVMe Sanitize e Crypto Erase, utilizzabili quando l’unità risulta collegata tramite bus NVMe nativo. L’idea non è semplicemente esporre questi comandi, già disponibili tramite utility come nvme-cli, ma incapsularli in un’interfaccia TUI progettata per ridurre il rischio operativo.
L’evoluzione rappresenta uno degli aspetti più promettenti del progetto: portare operazioni estremamente potenti – e potenzialmente distruttive – fuori dall’ambiente CLI tradizionale, senza però abbassare la soglia di sicurezza o illudere l’utente sulle garanzie offerte.
Critiche legittime e posizionamento corretto di dwipe
Alcune critiche dirette a dwipe sono tecnicamente fondate: i meccanismi di lock operano a livello applicativo e non kernel-level, la ripresa delle operazioni non è atomicamente crash-safe e non esistono protezioni contro accessi concorrenti esterni al tool. Tuttavia, il punto centrale è che dwipe non promette mai ciò che non può garantire.
Non si presenta come strumento forense certificato, non sostituisce i sistemi di secure erasing lato hardware e non elimina la necessità di cifratura preventiva dei dati sensibili.
Si propone invece come un’alternativa significativamente più sicura a dd, pensata per ambienti reali: in questa prospettiva, la riduzione drastica dell’errore umano è il suo vero successo.
Quando dwipe è la scelta giusta (e quando no)
dwipe è particolarmente indicato quando si lavora frequentemente con unità di memorizzazione USB, SSD, hard disk e supporti esterni, in contesti caratterizzati da hot-swap, più operazioni simultanee e dalla necessità di sapere con certezza cosa è stato cancellato e quando. È uno strumento pensato per chi vuole mantenere il controllo operativo senza affidarsi a comandi “ciechi”.
Al contrario, non è la scelta giusta quando sono richiesti standard formali di distruzione certificata, attestazioni ufficiali di sanitizzazione, oppure quando si opera su SSD che richiedono obbligatoriamente operazioni di purge firmware in contesti in cui le specifiche solo di elevatissimo profilo.. In questi casi, dwipe può affiancare, ma non sostituire, strumenti e procedure di livello superiore.