How is the "secure empty trash" option on Mac OS X any more secure than emptying it normally?

On Mac OS X there is an option for securely emptying the trash. How is this any more secure than emptying the trash the normal way? Does it overwrite the old data instead of just erasing it?


Deleting a file (emptying the trash normally) does not erase the blocks on the disk where that file's contents were stored. It just modifies the directory data structure so that that file's name and location on disk is no longer recorded the directory, and it marks those blocks as "free". If nothing else gets written to those blocks, the contents of that file can stay there in a readable, recoverable form indefinitely.

Secure Empty Trash is supposed to cause those blocks to be overwritten with garbage so your data is destroyed. However, if the drive plays games with those write requests behind the OS's back, such as an SSD doing wear-leveling, it's possible that the writes from Secure Empty Trash will actually go to new blocks on disk, leaving the data in the old blocks after all. But the drive would probably never let you read the data from those old blocks, so to read those old blocks you'd have to remove the flash chips from the drive and read them individually, which takes a fair bit of time and effort to do, so unless you're an international super-spy, Secure Empty Trash is probably good enough.


You are correct; "Secure Empty Trash" overwrites the data on-disk with meaningless data before deleting the file. This way even examing the disk with recovery tools will not reveal the deleted data.

This article from the Mac OS X online help explains that "files deleted in this way are completely overwritten by meaningless data".