为什么在硬盘上多次写入零(或随机数据)比只写一次要好?

信息安全 数据泄露 删除 贮存
2021-08-11 02:55:15

许多不同的程序,例如Darik 的 Boot 和 Nuke,让您在硬盘驱动器上多次写入比只执行一次更安全的幌子。为什么?

4个回答

总结:在较旧的驱动器上稍微好一点,但现在没关系。多次通过过度杀伤一棵树,但错过了森林的其余部分。使用加密。

起源在于 Peter Gutmann 的工作,他表明磁盘位中有一些内存:被零覆盖的零可以与被零覆盖的零区分开来,概率高于 1/2 . 然而,Gutmann 的工作被夸大了,并没有扩展到现代磁盘。Brian Smithson 的“多通道硬盘覆盖和 DoD 5220-22-M 的都市传奇”很好地概述了该主题。

开始它的文章是Peter Gutmann 于 1996 年在 USENIX 上发表的“从磁性和固态存储器中安全删除数据”的文章。他在反复擦除后测量了数据剩磁,发现经过 31 次通过后,他无法(以昂贵的设备)来区分一个被多次覆盖的 1 和一个被多次覆盖的 0。因此,他提出了 35 遍擦除作为过度杀伤措施。

请注意,此攻击假定攻击者可以物理访问磁盘和一些昂贵的设备。假设具有这种手段的攻击者会选择这种攻击方法而不是例如铅管密码术,这是相当不现实的。

Gutmann 的发现并没有扩展到现代磁盘技术,后者越来越多地打包数据。Craig Wright、Dave Kleiman 和 Shyaam Sundhar 撰写的“覆盖硬盘数据:大擦除争议”是关于该主题的最新文章;他们无法用最近的驱动器复制古特曼的恢复。他们还指出,恢复连续比特的概率没有很强的相关性,这意味着攻击者不太可能恢复完整的密钥甚至一个字节。用零覆盖的破坏性略低于用随机数据覆盖,但即使是用零覆盖的单次通过也会使任何有用恢复的概率非常低。古特曼对这篇文章有些质疑; 但是,他同意他的恢复技术不适用于现代磁盘的结论:

任何现代驱动器都可能是一项无望的任务,超高密度和使用垂直记录我不知道 MFM 甚至会如何获得可用的图像,然后使用 EPRML 将意味着即使你可以神奇地将某种图像传输到文件中,解码它以恢复原始数据的能力将非常具有挑战性。

古特曼后来研究了闪存技术,显示出更多的剩磁。

如果您担心攻击者实际拥有磁盘和昂贵的设备,那么覆盖的质量不是您应该担心的。磁盘重新分配扇区:如果检测到某个扇区有缺陷,则该磁盘将不再使其可供软件访问,但存储在那里的数据可能会被攻击者恢复。由于 SSD 的磨损均衡,这种现象在 SSD 上更为严重。

一些存储介质具有安全擦除命令(ATA Secure Erase)。UCSD CMRR 提供了一个 DOS 实用程序来执行此命令在 Linux 下你可以使用hdparm --security-erase. 请注意,此命令可能没有经过广泛的测试,如果磁盘因电子设备损坏、电机故障或磁头崩溃而死机,您将无法执行此命令(除非您修复损坏,这将花费超过新磁盘)。

如果您担心攻击者会控制磁盘,请不要在其上放置任何机密数据。或者,如果您这样做,请对其进行加密。加密既便宜又可靠(嗯,与您的密码选择和系统完整性一样可靠)。

Peter Gutmann有一篇关于该主题的著名参考文章。但是,那篇文章有点旧(15 年),较新的硬盘可能无法按照描述的方式运行。

由于两种现象,某些数据可能无法被单次写入完全擦除:

  • 我们想写入一个位(0 或 1),但物理信号是模拟的。通过操纵铁磁介质中原子组的方向来存储数据;读回时,磁头产生一个模拟信号,然后用阈值对其进行解码:例如,如果信号超过 3.2(虚构单位),则为 1,否则为 0。但介质可能有一些剩磁:可能,在之前的 0 上写入 1 会产生 4.5,而在已经是 1 的位置上写入 1 会将信号提升到 4.8。通过打开磁盘并使用更精确的传感器,可以想象可以以足够的可靠性测量差异以恢复旧数据。

  • 数据按磁盘上的磁道组织。写入现有数据时,磁头大致位于前一个轨道上,但几乎从不完全位于该轨道上。每个写操作都可能有一点“横向抖动”。因此,之前的部分数据可能仍然可以“从侧面”读取。

具有不同模式的多次写入旨在平衡这两种影响。

现代硬盘实现了非常高的数据密度。数据密度越高,恢复旧覆盖数据的痕迹就越难,这是有道理的。用今天的技术恢复被覆盖的数据似乎合理的。至少,目前没有人积极宣传这样的服务(但这并不意味着它不能做......)。

请注意,当磁盘检测到损坏的扇区(读取时校验和失败)时,对该扇区的下一次写入操作将被静默地重新映射到备用扇区。这意味着损坏的扇区(至少有一个错误的位,但不一定多于一个)在该事件之后将永远保持不变,并且任何重写都无法改变(磁盘电子板本身将拒绝使用该扇区以后再)。如果您想确保擦除数据,最好一开始就不要让它到达磁盘:使用全盘加密。

到目前为止提供的答案内容丰富但不完整。数据使用曼彻斯特编码存储在(磁性)硬盘上,因此编码一或零的不是磁域是向上还是向下,而是向上和向下之间的转换对位进行编码。

曼彻斯特编码通常从一些适合定义信号“节奏”的无意义数据开始。可以想象,如果您尝试用全零覆盖数据一次与存储原始数据的时间不完全同步,那么检测原始节奏和边缘仍然非常容易,并且重建所有数据。

一个很好的问题需要两个部分的答案:

  1. 说到“你们普通硬盘”,第一个原因就是为什么要多次覆盖。

    简而言之:HD 就像磁盘。存在可以恢复的剩余“影子字节”的机会。这就是为什么 NSA 和 co 多年来一直使用多次覆盖的原因。这些“影子字节”只不过是以前删除和覆盖数据的“幽灵”残余。高清恢复公司实际上使用这些来恢复丢失的关键数据。

    另一种方法是使用强磁来杀死你的 HD,但那样一来 - 你可能不会使用足够强的磁力,或者你会破坏比你想要的更多的 HD。所以这不是一个真正的选择。

  2. 您可能还想查看一些数据擦除标准以获取更多详细信息http://en.wikipedia.org/wiki/Data_erasure#Standards并注意标准仅覆盖 1 次,始终使数据擦除-强制验证

    关于“某些操作系统”(请注意,我不是在这里开始就最佳或最差操作系统进行政治讨论),这种擦除验证并不像应有的那样可靠......这意味着他们的“擦除验证”实际上是不安全的,甚至比开始考虑可以恢复的潜在影子字节残余还要担心。

更新

由于这是一个备受讨论的话题,许多人在引用 Peter Gutmann 1996 年发表的“从磁性和固态存储器中安全删除数据”论文时说“赞成”和“反对”(http:// www.usenix.org/publications/library/proceedings/sec96/full_papers/gutmann/index.html),应注意以下几点:

...来自 Heise Security 的安全研究人员审查了去年国际信息系统安全会议 (ICISS) 上发表的论文,他们解释说,可以以 56% 的概率恢复单个字节的数据,但前提是头部精确定位八次,这本身发生的概率仅为 0.97%。研究人员总结说:“恢复单个字节以外的任何内容的可能性更小。”

(来源:http ://news.softpedia.com/news/Data-Wiping-Myth-Put-to-Rest-102376.shtml )

另一方面,军事和政府数据擦除将多次覆盖定义为必须的。(我不会对此做出判断,但您应该考虑一下这个事实的“原因”。)

最后,这是一个问题,即您希望通过擦除“保护”“哪些数据”,以及在任何潜在情况下都无法恢复已擦除数据的重要性。让我们这样说吧:如果你想删除你的个人乳制品,你可能不需要覆盖每一个免费的部门......但如果你正在制定核电站或一些“秘密项目”的计划对于您的政府,您不会希望按原样保留单个字节。

当人们亲自问我时,我总是回答:“安全总比后悔好。有可靠的标准将释放扇区的多次覆盖定义为必须的。这是有原因的。科学论文(甚至是最近的论文)表明,已擦除扇区的恢复数据可以通过不同的方式获得。即使机会很小,我也不会冒险,我认为建议任何人不要考虑这种风险是不专业的。”

我想这样就最好了。

把它包起来

因此,要正确回答您的问题:

许多不同的程序,例如 Darik 的 Boot 和 Nuke,让您在硬盘驱动器上多次写入比只执行一次更安全的幌子。为什么?

他们这样做是基于 Gutmann 的论文和政府机构使用的现有标准。