Tutti i flash NAND devono cancellare il blocco prima di scriverlo. Ma riguardo alla sicurezza, devi capire che non sai mai quale blocco è stato scritto.
Le unità flash USB e SSD dispongono di controller interni e rimappano le celle flash effettive. Ogni cella flash ha solo una quantità limitata di scritture prima che fallisca. Con l'uso tipico di un'unità flash USB o ssd (hai alcuni file statici e poi hai una parte dell'unità in cui scrivi / cancelli / modifichi costantemente il contenuto) parti specifiche del flash fallirebbero molto presto, distruggendo la tua unità .
Per questo motivo viene utilizzato livellamento dell'usura .
Questo significa che se scrivi sul settore X sull'unità, il controller potrebbe scriverlo nella cella flash 1234. Quindi vuoi cancellare i dati lì e scrivere i bit casuali nel settore X. Ma il controller decide, quella cella flash 1234 è più utilizzato della media e decide di scrivere i dati sulla cella flash 543.
I dati originali sono ancora nella cella flash 1234! Non puoi leggerlo usando il controller, perché è contrassegnato come vuoto. Ma se qualcuno smonta l'unità flash USB e legge il contenuto delle celle flash, i dati saranno lì.
Poiché ci sono più celle flash rispetto all'archivio pubblicizzato per consentire ad alcuni di fallire, non esiste un modo semplice per prevenirlo. Anche se si riempie l'intera unità flash con dati casuali, ci sono ancora celle flash non scritte. Il modo in cui i nuovi dischi SSD prevengono la perdita di dati è che hanno una crittografia hardware sempre abilitata. Ogni bit scritto è crittografato con una chiave memorizzata nel controller. Se si invia un comando di "cancellazione sicura" allo ssd, si elimina semplicemente la chiave per la crittografia e tutti i dati diventano inutili.
Quindi non memorizzare mai dati segreti non criptati sulla memoria flash!