数据存储产业服务平台

研究员称固态硬盘几乎无法完全清除数据

你认为你已经清除掉了那些存放在SSD上的机密信息吗?一项新的研究结果表明情况并非如此。

位于圣地亚哥的加利福尼亚大学的研究人员们最近发布了一份报告,报告指出几乎没有一种方法可以可靠地清除掉固态硬盘上的数据。

在这篇报告――《可靠地从基于闪存的固态硬盘上清除数据》(Reliably Erasing Data from Flash-Based Solid State Drives)中,介绍了各种已知的数据清除技术。这项研究的方法非常简单:他们在SSD或者U盘上存放重复数据,利用不同的数据清除技术,分别清除这些设备上的原数据。如果原数据还存在的话,清除工作就失败。

为什么要进行这样一项研究呢?SSD所谓的闪存转换层(Flash Translation Layer)是一个固件界面,它让SSD对于电脑成为一个大的FAT设备。操作系统需要使用文件地址表和簇。SSD必须要面对变幻莫测的闪存介质,它和旋转磁性存储介质有很大的不同。例如,SSD块必须要先清除之后才能写入,而清除需要花很长的时间。FTL会在SSD没有其他任务的时候,指明如何清除存储中没有使用的块。SSD设备如果总是在同一个块上进行写入和重新写入操作,就会很快损坏,所以FTL会在所有可用的存储空间之间进行平衡,让写人负荷变得均衡。

你应该能够想象SSD对于存放在边边角角的数据进行延迟删除的情况,这就可能造成错误。而且,可能造成错误的潜在风险不止一个。

下面是他们的发现:

清除整个SSD硬驱动器非常困难

当研究人员使用驱动器内置的“擦除单元”命令――这是一个ATA时代遗留下来的命令,它在U盘上不适用――测试了12个SSD设备,只有4个设备完成了擦除。(其中一个驱动自动加密了,所以无法知道是否正确擦除了。)其中一个驱动器报告已经擦除完毕,可是事实上,所有的数据还是可以访问。测试失败。

覆盖写入整个磁盘的做法结果稍微好一点。对于普通硬盘,重写通常是把所有的数据改写成1或者改写成0或者是任意数――重复这个过程会花费一些时间。在参加测试的8个驱动器中,一个驱动器经过了一次重写就完成了数据清除,两个驱动器在经历了两次重写之后完成了数据清除。一个驱动器在进行了20遍重写操作之后,仍然存留了1%的原数据。但是一半的驱动器都花了58个小时一场才完成了一遍重写操作。研究人员最后放弃了。

研究人员也尝试了消磁的方法,但是完全不起作用。

加密驱动器全部通过了测试,因为只要从密钥存储区(Key Storage Area)删除掉密钥,所有的数据就不可用了。但是这份报告的作者们对此并不感兴趣,因为没有方法能够证明制造商的密钥删除机制能够完全删除密钥存储区里的内容。

清除单一文件情况不一

单一文件清除通常采用对于这个文件使用的存储空间进行重写的方式进行。如同你能够想象到的那样,FTL运行这个操作,它很难找到这个文件的所有片段。

当研究人员尝试平常的方法的时候――在文件覆盖方面,波动幅度达到35%,甚至包括几种军队专用算法――他们发现单一文件删除根本不起作用:“所有的单一文件覆盖清除协议都失败了:在4%和75%之间的文件内容依然在SATA SSD上。U盘的情况也没有更好:0.57%到84.9%的数据依然存留在存储介质上。”

总结:没有方法能够可靠地删除整个SSD上的内容,或者存放在SSD或者U盘上单个文件的内容,虽然使用加密驱动器能够达成差不多的目标。一些专门的SSD可以实现整盘清除,但是你没办法知道哪些设备具备这种能力。

研究报告的作者介绍了一整套新的基准FTL扩展集,这个新的扩展集让SSD上的内容可以被清除。

也许有一天我们会看到这套新的扩展集应用于SSD设备上。同时,关于在SSD或者U盘上清除数据,我们现在唯一有保障的方法就是用大铁锤砸碎它。

未经允许不得转载:存储在线-存储专业媒体 » 研究员称固态硬盘几乎无法完全清除数据