固态硬盘上存储的数据能确保安全吗?

你知道么?时下最新潮的固态硬盘或许并不安全。很少有专家认为:擦除存储在固态硬盘上的数据比擦除存储在普通硬盘上的数据来得困难。

研究发现,为存储在固态硬盘上的数据确保安全是项困难的任务;覆盖或密码擦除似乎是销毁固态硬盘的最有效方法。

就在上周一项大学研究结果出来之前,很少有专家认为:擦除存储在固态硬盘上的数据比擦除存储在普通硬盘上的数据来得困难。

业内专家们被这项研究大吃一惊,但是强调市面上有些固态硬盘本生具有加密功能,就算硬盘报废后,也能防止里面的数据被人看到;一些固态硬盘销毁方法比另一些更有效。

安全技术专家Bruce Schneier说:“我不认为谁都了解这一点。”

加州大学圣迭戈分校的研究人员开展的这项研究表明,销毁固态硬盘的数据是项困难的任务,甚至几乎不可能实现。虽然数次覆盖数据能确保可以擦除许多固态硬盘上的数据,但研究人员发现他们还是能够恢复一些产品上的数据。

固态硬盘控制器制造商SandForce的产品营销高级主管Kent Smith表示,肯定可以保护固态硬盘上数据的一个办法就是密码擦除(cryptographic erasure)。

密码擦除需要先对固态硬盘进行加密,那样只有持有密码的用户才能访问里面的数据。固态硬盘报废后,用户可以删除硬盘上的加密密钥,这就排除了解密或者访问数据的可能性。

Smith说:“除非你能破解128位AES加密算法,否则根本没办法获取数据。报废后的硬盘现在仍是完全可以使用的硬盘,能够再次开始写数据。那只是一刹那的工夫。”

采用SandForce技术的固态硬盘提供的另一种安全方法是,擦除所有NAND闪存。

Smith说:“我们不但执行密码擦除,还检查可能存储用户数据的每一个逻辑块地址(LBA)和每一个位置。这需要更长的时间,因为你得擦除闪存。这可能需要几分钟。”

SandForce的控制器(大多数知名固态硬盘厂商都使用它)包括自带的128位AES加密功能,让用户可以设置密码。但一些固态硬盘并不自带基于硬件的加密功能。

还可以通过两种方法对硬盘进行数据擦除,一个是安全擦除单元(SEU)命令,另一个是不久将发布的SATA规范的附加命令:Sanitize Device Set。

Secure Erase是嵌入式SATA存储设备,允许用户将数据从可能存储在普通硬盘或NAND闪存产品上的所有位置删除。

用户选择SEU命令后,Device Configuration Identity里面的所有逻辑块地址都被擦除,固态硬盘将用户数据存储在Device Configuration Identity。此外,加密密钥被归零或被销毁,因而任何现有的数据都是乱码数码,所有映射数据也被擦除,那样硬盘甚至无法找到之前的乱码数据。控制器可为任何新写入的数据自动创建新的加密密钥。

加州大学圣迭戈分校的研究人员在报告中写道:“密码销毁的效果不但取决于设计人员杜绝‘旁路’攻击的能力——旁路攻击让攻击者可以提取密钥或者以其他方式绕开加密机制,还取决于所用加密系统(如AES)的安全性。”

AES(高级加密标准)是旧版DES(数据加密标准)的后续技术。美国政府采用了这项标准,分别使用128位强度和256位强度来加密机密文件和绝密文件。

但仅仅提供AES加密还不够;安全性主要取决于如何采用加密技术。

这之所以很重要,一方面是由于用户并不总是希望使用与生成有效密钥所需要的长度一样长的密码。如果用户选择的密码所用字符少于生成128位密钥或256密钥所需的字符(一个字符是8位,所以我们谈论的分别是16个字符或32个字符的密码),其余字符常常变成零。

这种情况下,IDC公司的安全内容和威胁管理产品调研主管Charles Kolodgy表示,密码更容易被猜出来。

Kolodgy建议用户创建口令短语(passphrase),而不是创建密码。 他说:“第一步是满足外头90%的用户的需要。”之后,最好的解决办法就是硬盘上有一个随机密码字符生成器。

即使你使用的硬盘本身自带加密功能,Schneier认为,还是无法判断厂商的安全是否万无一失,“除非厂商投入了巨资研发加密技术”。

Schneier主张购买尽量便宜的硬盘,然后使用自由软件对里面的数据进行加密,比如TruCrypt或者像PGPDisk这些成本比较低的产品。

加州大学圣迭戈分校的研究人员一致认为,密码擦除是个好方法,可以确保固态硬盘报废后或者准备重新使用时,数据已被销毁。

研究人员测试了12款固态硬盘,结果发现用来擦除单个文件的软件技术没一个有效。利用本地销毁命令擦除整个固态硬盘是最有效的,但前提是使用得当;软件技术大多数时候管用,但不是总是管用。

研究人员没有具体透露测试中所用的产品。

加州大学圣迭戈分校的非易失性存储系统实验室设计了一个程序,绕开固态硬盘上的闪存转换层(FTL),直接访问原始的NAND闪存芯片,看看任何一种特定的销毁技术是否成功。

固态硬盘的FTL通过ATA或SCSI接口,在逻辑块地址(LBA)与NAND闪存的物理页面之间进行数据映射工作。

这所大学的研究人员在一份题为《可靠擦除闪存型固态硬盘上的数据》的报告中写道:“所有单个文件覆盖销毁协议都失效了:文件中4%至75%的内容仍留在SATA固态硬盘上。”

U盘的情况好不了多少。进行覆盖操作后,0.57%至84.9%的数据仍留在U盘上。

研究人员甚至试图覆盖固态硬盘上的闲置空间,对硬盘进行碎片整理,以便重新分布数据,鼓励FTL重新使用更多的物理存储位置,但结果证明这是无效的。

他们使用固态硬盘自带的Erase Unit命令进行测试后发现,12款固态硬盘中只有4款真正被擦除了。一款固态硬盘声称已销毁,不过研究人员还是可以恢复里面的数据。

在单独的覆盖测试中(有些固态硬盘的测试时间长达58小时),研究人员发现剩余8款固态硬盘中只有1款被真正销毁。经过两次覆盖后,所有固态硬盘中只有1款被擦除干净。就算覆盖了20次后,有一款硬盘中仍留有1%的数据。

研究人员发现,销毁普通硬盘则比较简单。消费级普通硬盘可以重新格式化和覆盖。对于商业用户来说,消磁器可以有效地擦除所有数据,这种装置采用了强磁场对磁盘碟片进行消磁处理。

但固态硬盘的工作原理与普通硬盘不一样。

在普通硬盘上,写扇区和擦除扇区是相同的;这意味着当主机覆盖数据时,它会进入到与原始数据写入的同一个数据块。

闪存则由许多页面和块组成。数据写入到8KB页面中,而擦除操作在2MB块(又叫“段”)中进行。因而,擦除进行后,整个2MB块必须被标记为删除。

所以,数据写到NAND闪存时,这是分为两步的过程,名为读-修改-擦除-写周期。首先,现有数据必须被擦除,然后旧数据连同新数据可以写到内存中的不同页面。不过,写入新数据时,旧数据其实并没有被擦除;它只是被标记为删除。

制造商使用“废料收集”算法,以便晚些时候(通常是硬盘空闲时),回去擦除标记为删除的数据。所有NAND闪存设备都采用这种工作原理。在此期间,重复数据留在NAND闪存上。

市场研究公司Forward Insights的分析师Gregory Wong说:“而有些硬盘不擦除所有那些重复数据。”

比如在现在的大多数固态硬盘上,损耗均衡算法用来在固态硬盘上更均匀地分布数据,以便NAND闪存上的任何一个部位不会出现损耗。问题是,损耗均衡也会让数据擦除失效,因为会在首次写入数据与随后被覆盖之间的这个时间段重新安置块。

固态硬盘行业目前在竭力要求美国标准与技术研究所(NIST)重新定义一些军事级擦除覆盖协议,以便识别不用覆盖闪存,就可以通过密码来擦除的加密硬盘。

Smith说:“但这一幕不会马上就会看到。政府机构在很长的时间后才会积极采用标准。”

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注