我想编写一个从硬盘驱动器中删除数据的应用程序。我需要遵守哪些标准来确保我的软件至少删除最低限度的内容,还是应该只使用现成的软件?如果有的话有什么建议吗?
3 回答
请定义“数据删除”。这是为了使取消删除变得不可能而进行的擦洗吗?或者只是删除数据?
如果要确保无法恢复文件,通常会使用随机位模式多次写入文件。由于磁位模式的模拟性质,在某些情况下可能可以恢复被覆盖的数据。
在所有情况下,正常的文件系统删除操作在大多数情况下都是可以恢复的。当您删除一个文件(使用正常的文件系统删除操作)时,您删除的是文件分配表条目,而不是数据。
有标准......见http://en.wikipedia.org/wiki/Data_erasure
您没有提供任何详细信息,因此很难判断它们是否适用于您的情况...删除带有操作系统内置文件删除的文件几乎总是可以恢复... OTOH 格式化驱动器(不是快速格式化)是通常没问题,除非您处理敏感数据(如来自客户、患者、财务等的数据或一些与安全相关的数据),然后上述标准通常使用不同的数量/轮次/模式来覆盖数据,因此几乎不可能恢复删除...在真正非常敏感的情况下,您首先使用这些方法中最好的,然后格式化驱动器,然后再次使用该方法,然后物理销毁驱动器(这实际上意味着真正的破坏,不仅仅是移除电子设备或相似的!)。
避免所有这些麻烦的最佳方法是为此类事情做好计划并使用经过验证的强大全盘加密(使用未存储在驱动器电子设备或媒体上的密钥!)......这样您就可以轻松地格式化驱动器(不快)然后出售它,例如......因为任何强加密看起来像“随机数据”(如果实施正确)如果没有密钥绝对无用。
我认为你可能遇到的任何“标准”都不会比你自己想出的任何东西少科幻或科学神秘主义。基本上,只要您在物理上覆盖数据(即使只是一次),就没有商业取证服务 - 即使面对您向他们投入的任何金额 - 也不会声称能够恢复您的数据。
(在 1970 年代,任何“使用旋转位模式覆盖 35 次”的建议都可能适用于间隔较粗的磁带,但与现代硬盘完全无关)。
您必须解决的更重要的问题是如何物理覆盖数据。通过任何类型的应用程序甚至操作系统编程,这基本上是不可能的,您必须找到一种与硬件正确对话的方法并获得可靠的确认,即您打算写入的位置确实已被写入,并且没有任何有问题的集群重新定位到可能泄漏数据的磁盘的其他部分。
因此,从本质上讲,这是一个非常低级的问题,如果您想要真正的解决方案,可能会让您大量阅读硬盘制造商的手册。