!cultOfApple wrote:
Your assumptions are half baked based on comments from someone who has partially understood the problem.
Anyway, as long as UNIX is still around, here are 3 commands you could use - you could also create an alias for anyone of these...
- rm -rP /<path>
- srm -rfv -s /path (try the m and z switches for more options)
- diskutil secureErase freespace LEVEL /Volumes/<drive>
SSDs don't map sectors in the same way that hard disks traditionally did (hard disks also no longer map the same way they once did, but that's fodder for another discussion), and when an overwrite is requested on an SSD, the SSD reallocates all writes into previously erased blocks or free space sourced from elsewhere on the SSD, and adjusts the mapping to reference the newly-written storage. The user and the applications still the traditional view of the hard disk due to the mapping. That mapping is used both as a cache to make writes faster as the erasure operation on SSD is glacial, and also to spread the write activity across all of the available storage to avoid wearing out specific parts of the SSD — but this means that the underlying storage isn't overwritten until it's erased and written sometime later, or until the whole disk is erased with an SSD-level reformat (technically the ERASE UNIT / Secure Erasure mechanisms)... For how SSD storage is freed, see the TRIM command. That's how the host tells the SSD that the storage is no longer in use and can thus be erased and cached for reuse. So until and unless the user has written enough to clear out the cache of all previously erased data, traditional overwrite operations don't overwrite the storage that held the previous data.
srn and diskutil will probably get you most of the way here, but you'll want to overwrite several times to hopefully catch all storage. (Depending on the sensitivity of the data on the device, words like "most" and "probably" and "hopefully" aren't what you want to hear, either.)
https://www.usenix.org/legacy/events/fast11/tech/full_papers/Wei.pdf
http://apple.stackexchange.com/questions/6278/how-to-securely-erase-an-ssd-drive
http://www.anandtech.com/show/2738
http://www.intel.co.uk/content/dam/www/public/us/en/documents/technology-briefs/ ssd-520-aes-tech-brief.pdf
http://www.kingston.com/us/community/articledetail?ArticleId=10
Apple recommends using FileVault (FileVault 2). FileVault also has advantages around avoiding problems with data remanence in revectored (bad) sectors that can arise on hard disk drives, as well.