![零填充与随机填充](https://linux22.com/image/1343840/%E9%9B%B6%E5%A1%AB%E5%85%85%E4%B8%8E%E9%9A%8F%E6%9C%BA%E5%A1%AB%E5%85%85.png)
许多教程建议,如果我希望磁盘无法恢复,则应使用 /dev/urandom 而不是 /dev/zero 来填充磁盘。但我不太明白,磁盘被零填充后怎么还能恢复?只有非常专业的人士(例如政府机构)才能恢复被零填充的磁盘,还是普通极客都能做到的?
附言:我并不是那么担心我的数据,我时不时地出售二手电脑,我宁愿普通买家不会从中恢复任何有趣的东西。
答案1
虽然填充磁盘/dev/zero
会将其清零,但大多数(当前可用的)恢复软件无法通过单次操作恢复文件。多次操作可使擦除更安全,但需要更多时间。
/dev/urandom
被认为更安全,因为它用随机数据填充磁盘(来自 Linux 内核的熵池),这使得恢复软件更难找到任何有意义的数据(也需要更长的时间)。
简而言之,/dev/urandom
如果您尝试安全地擦除数据,则适度的传递次数会更安全,但对于大多数休闲应用程序而言,几次传递/dev/zero
就足够了。
在擦除磁盘时,我通常会将两者结合使用(在转售或回收计算机之前务必擦除!)。
答案2
许多教程建议,如果我希望它无法恢复,我应该用 /dev/urandom 而不是 /dev/zero 来填充磁盘。
不管你做什么,不使用/dev/urandom
。
在我的 i7-3770 上,/dev/urandom
每分钟产生惊人的 1 GB 伪随机生成数据。对于 4 TB 硬盘,单次擦除/dev/urandom
将需要 66 个小时以上!
如果你绝对必须使用伪随机生成的数据(下文将详细介绍),至少要使用一种相当快的方法来生成它。例如
openssl enc -aes-128-ctr -pass file:/dev/random 2>/dev/null | tail -c+17
打印无限字节流。它使用 CTR 模式下的 AES 和从 读取的密码/dev/random
,因此对于任何小于 1,000,000 TB 的硬盘来说,它都是加密安全的。
它也很快。非常快。在同一台机器上,它每秒可以生成 1.5 GB,因此比 快 90 倍/dev/urandom
。这超过了任何消费级硬盘的处理能力。
只有非常专业的人(例如政府机构)才能恢复充满零的磁盘,还是普通的技术员才能做到的?
在覆盖硬盘数据:大擦除争议作者得出结论,用非随机数据覆盖原始驱动器(仅用于测试)一次会将恢复单个位的概率降低至 92%。这意味着恢复单个字节(一个 ASCII 字符)的概率只有 51%;而且无法判断该字节是否已正确恢复。
在现实世界场景中(轻微使用的驱动器),单个位的概率下降到 56%,而单个字节的概率仅为 9%。
他们拿了一个新硬盘,将其擦除三次以模拟短期使用,在其中写入一段简短的文本,并使用非随机数据擦除硬盘一次。结果如下:
原文:
安全删除数据 - Peter Gutmann - 1996
摘要
随着加密系统的使用越来越复杂,想要获取敏感数据的攻击者不得不从其他地方寻找信息。攻击途径之一是从磁性介质或随机存取存储器中恢复据称已删除的数据。
恢复的文本:
¡ÄuÜtÞdM@ª""îFnFã:à•ÅÒ̾‘¨L‘¿ôPÙ!#¯ -×LˆÙÆ!mC
2´³„‡·}NŽýñêZØ^›l©þì®·äÖŒv¿^œº0TÏ[ªHÝBš¸ð
7zô|»òëÖ/""º[ýÀ†,kR¿xt¸÷\Í2$Iå""•ÑU%TóÁ’ØoxÈ$i
Wï^™oËS²Œ,Ê%ñ ÖeS» eüB®Èk‹|YrÍȶ=ÏÌSáöp¥D
ôÈŽ"|ûÚA6¸œ÷U•$µM¢;Òæe•ÏÏMÀùœç]#•Q
Á¹Ù""—OX“h
ÍýïÉûË Ã""W$5Ä=rB+5•ö–GßÜä9ïõNë-ߨYa“–ì%×Ó¿Ô[Mãü
·†Î‚ƒ‚…[Ä‚KDnFJˆ·×ÅŒ¿êäd¬sPÖí8'v0æ#!)YÐúÆ©
k-‹HÈø$°•Ø°Ïm/Wîc@Û»Ì"„zbíþ00000000000000000
答案3
从微观层面来看,硬盘位既没有“1”,也没有“0”,而是磁电荷。存在一个阈值,超过该阈值的电荷将被视为“1”。同样,位的几何位置并不精确,而是落在给定的空间内。
理论上,新写入的位中仍存在少量的先前电荷,因此如果您只是将磁盘归零,那么有人可能会为被视为 1 的位设置一个新的低得多的阈值,并且仍然恢复数据。写入随机数据会使这变得更加困难。
多次传递背后的理论与磁盘上位的几何位置有关。如果当前传递稍靠前或稍靠后,那么旧位的残留可能会从新位旁边露出来。两三次传递(尤其是随机数据)会使前一个位更难被识别。
正如其他人所说,这些担忧大多被夸大了。最大的风险是数据只被操作系统删除,或者根本没有被删除。
答案4
我无法指出任何文章,但我读过几篇文章,它们表明在现实生活中(黑色直升机机构之外),在用随机数据进行一次“擦除”后恢复任何数量有意义的数据的机会非常小。
真正的风险可能在于各种形式的“智能”驱动器(尤其是 SDD),它们可能不会将新数据写入旧数据所在的位置,至少在“边缘”条件下不会。(这种情况也可能发生在较旧的驱动器上,这些驱动器会进行扇区重定位以进行错误恢复,但程度较有限。)这可能会导致一些磁道或扇区即使在擦除后仍保持完好无损。聪明的黑客可能会弄清楚如何访问这些区域。
但现实地说,如果你是一个普通的乔·史密斯向一个普通的杰克·琼斯出售硬盘,那么这并不是什么大问题——硬盘上没有任何真正有价值的东西,而买家不太可能会花几分钟时间寻找东西。即使硬盘上有一个扇区偷偷溜走,它也不太可能是包含你的信用卡信息的扇区。如果你的硬盘上有核机密,而买家是坏人的间谍,那么更大的危险就是——即使是微小的泄密风险也太大了。