> On 9/14/17 00:37, Philipp Guendisch wrote:> > This patch adds a software based secure erase option to improve data> > confidentiality. The CONFIG_BLK_DEV_SECURE_ERASE option enables a mount> > flag called 'sw_secure_erase'. When you mount a volume with this flag,> > every discard call is prepended by an explicit write command to overwrite> > the data before it is discarded. A volume without a discard compatibility> > can be used as well but the discard calls will be enabled for this device> > and suppressed after the write call is made.> > Writing once to a sector stored on spinning rust will *not* fully erase> the previous data. Part of the signal used for storing that data will> remain on the track (because the disk head is never perfectly aligned on> the track). With some signal processing work, the old data can be retrieved.> > You will need a *lot* of normal writes to make sure nothing remains of> the old data signal. Granted, even a single write will make it hard to> get to the old data, but it is possible nevertheless. Hence the standard> defined SANITIZE with cryptographic erase option to ensure that the old> data is really dead.

Single overwrite is enough if you are not defending against with NSA(or someone with way too much time and osciloscope). Two overwritesshould be enough against them, too.

OTOH... discard is performance optimalizaton. Are they sure it isalways used when they need it?

> I think that a similar problem also exist for SSDs, and it is even worse> there since writing twice to the same logical sector does not even go to> the same physical sector. The old data is not even overwritten.

Exactly -- overwrite will not help on SSD. But discard _should_normally work on SSD, so this actually makes stuff worse on SSDs:you'll write random data to a new place, and then discard will erasethat... making sure original data is intact.