Here is a list of the main manufacturers so you can download the one that suits you best:
This is the policy of most companies in health care, banking, and government when surplussing equipment.Almost all SSD manufacturers have their own software to perform a secure erase of it, using the ATA Secure Erase command. The only way to securely erase an SSD is to destroy it. A SECURE_ERASE may (probably does) TRIM those cells, but a blkdiscard or fstrim certainly wouldn't, since they use sector numbers to identify the areas to be TRIMmed. Garbage collection can reallocate cells on-the-fly and can still work even on a drive that is 100% full. These extra cells are used in garbage collection. Also, there is more storage on the device than what is accessible from user-space. Forensics tools that can interface with the firmware directly can see the cells' contents. There is no effective way of securely wiping an SSD.
A read request from an unallocated cell simply causes the device to return 0x00 (or some other bit pattern) without actually checking the cell's contents. No attempt is made to actually erase the data. A TRIM simply marks a cell as unallocated the same way deleting a file causes the filesystem to mark a cluster as unallocated.
The SSD firmware keeps a list of which cells are allocated and which are not. If data security is your concern, it should be noted that neither a SECURE_ERASE nor a TRIM actually erase the flash cells. I've also seen drives from SanDisk that its "head" and "tail" cannot be wiped with TRIM command in any form. (There are still leftover at the end since 65535 * 2 = 131070 is not a multiple of 8, but you can see that 131064 blocks are continuously wiped.) See the difference of my Intel 530 ( sda) and Silicon Power S70 ( sdb):Īnd the difference when the ranges are not aligned and aligned: This can be checked with something like hexdump after the TRIM. of block in a single range) - 65535 % 8), assuming the starting offset is 0 (or a multiple of ), otherwise there will be leftover blocks that will not be wiped. So when I want to wipe it clean with blkdiscard or hdparm, I will need to make sure that no "minimum unit" is "covered" by two TRIM ranges. However, be aware that TRIM implementation in some of the disks has a "requirement" in the TRIM commands issued, so only when it is fulfilled, all the blocks on the drive will then "read zero" after TRIM.įor example, the Intel 530 SSD requires the TRIM block ranges to be "aligned" to 8 blocks. You can use blkdiscard to wipe a whole block device (disk/partition) including the GPT and superblock and whatsoever. On the other hand, fstrim is not the only way to TRIM a device. So after all ATA Secure Erase in SSDs is not really THAT secure, unless yours support "hardware encryption". Except those with "hardware encryption", where ATA Enhanced Secure Erase is basically a regeneration of the encryption key.
The truth is, in most, if not all, SSDs, ATA Secure Erase is an equivalence to a full device TRIM.