/ dev/zero或/ dev/random - 什么更安全,为什么?

ska*_*nex 21 linux random zero

任何人都可以告诉我为什么在从硬盘驱动器擦除数据时,/ dev/random是安全的首选?

Omn*_*ity 61

简单的回答,/dev/random不是首选.两者都同样安全.使用/dev/zero更容易验证.CPU使用率也较低,可能更快.

更完整的答案.对于现代硬盘驱动器,盘片密度是这样的,以至于不可能从驱动器的不完全覆盖的扇区获得信号,像Gutmann这样的人在许多年前写过.就现代硬盘而言(我把它放在任何容量可以用千兆字节或更好的容量测量的硬盘上),如果它被覆盖它就会消失.故事结局.因此,将数据更改为什么并不重要.只是你改变了数据.

要添加到这一点,即使你完全清除硬盘驱动器,仍有可能在由硬盘驱动器的固件重新映射,但这些都是比较少见的,只有数据的一个非常小的量将包含部门留在驱动器上的数据内,更何况你需要非常专业的设备来获取数据(你必须编辑G-List中的System Area驱动器得到它),更不要说为什么这些部门在第一被重新映射的原因地方是因为他们失败了.

总而言之,DoD湿巾是愚蠢的,Gutmann湿巾是愚蠢的,使用/dev/zero,它几乎100%的情况下都很好.如果它是一个边缘情况,那么你需要非常专业的知道如何获取数据并删除数据.

"谢谢!那么,usb棒怎么样?"

USB棒是一个完全不同的动物,你需要绕过闪存控制器才能清理它,即使是Gutmann擦拭也不会因为磨损均衡算法而完全删除数据.但就像硬盘一样,如果你一次覆盖数据就会消失,诀窍是迫使设备实际覆盖数据.

话虽这么说,如果你有一个没有控制器的廉价USB记忆棒,那么单次通过0填充应该足以删除其中的数据.否则,您正在寻找定制硬件和焊接工作.

SSD应该被认为是带有控制器的USB记忆棒,可以执行磨损均衡.固态硬盘总是会磨损,我不知道这条规则有什么例外.许多USB记忆棒没有.

你怎么知道USB记忆棒是否磨损?您需要拆开它并检查控制器芯片并在其上查找数据表.

"你能给的说法的来源,这是'不可能获得从驱动器的完全覆盖扇区的信号:’我不是在谈论从电脑杂志的测试有关数据恢复的店,我说的最糟糕的情况的:一装备精良的政府实验室.所以我真的很想知道你怎么能保证这个声明,最好是科学论文."

我将提供一些关于磁介质上数字数据模拟存储的理由和信息.以下是我在数据恢复公司工作时所教授的大部分内容,并且在某些地方可能部分不准确.如果是这样,请告诉我,我会纠正它.但这是我对材料的最好理解.

制造硬盘后,首先发生的是从伺服标签写入机接收伺服标签.这是一台独立的机器,其唯一的工作是采用一个完全空白的硬盘驱动器并进行自举.(这就是为什么硬盘驱动器上有铝带覆盖的孔,这就是伺服贴标机放置其写入头的地方.)如果你有一个驱动器,当你打开它时它只是生成"点击点击"它的是因为它无法读取伺服标签.当硬盘驱动器启动时,它尝试做的第一件事就是把它的读头扔到盘子上并获得一个轨道.伺服标签定义轨道.如果它看不到伺服标签它到达中间,发出噼啪声,将手臂拉回并再次尝试.

我提到这一点的原因是,这几乎是外部设备读取和写入硬盘驱动器的唯一实例,它描述了驱动器外部硬件读取头可以处理盘片上数据的大致限制.如果有可能使伺服标签更小,并且硬盘制造商会更节省空间.由于两个原因,伺服标签相对空间效率较低.

  1. 他们不会失败绝对是至关重要的.如果伺服标签出现故障,那么每次磁头越过特定的伺服标签就会失去跟踪,这实际意味着整个磁道都无法使用.
  2. 它提出了一些想法,即硬盘驱动器硬件处理盘片上的信息比外部机器好多少.

一圈伺服标签定义了一个轨道.你必须了解一些关于音轨的事情.

  1. 它们不一定是循环的.它们不完美,可以包含经线.这是因为伺服标签机不准确.
  2. 它们不一定是同心的.他们可以并且可以交叉.这意味着某些扇区或整个轨道可能因为伺服标签机不准确而无法使用.

写入伺服标签后,出现低级格式.除了更复杂之外,驱动器的实际低级80年代格式.因为盘片是圆形的但硬盘驱动器速度是恒定的,所以通过读头下方的区域量是到盘片中间的距离的可变函数.因此,为了从盘中挤出最后一滴存储器,盘片的密度是可变的并且在区域中定义.在典型的3.5英寸硬盘上,将有数十个区​​域具有不同的盘片密度.

其中一个是特殊和超低密度称为System Area.系统区域是驱动器上存储所有固件和配置设置的位置.它具有超低密度,因为该信息更重要.密度越低,随机搞砸的可能性就越小.它当然会在所有时间发生,但不会比用户区域中的某些时间发生.

驱动器低电平格式化后,固件将写入系统区.每个驱动器的固件都不同.为了优化驱动器以满足盘片的精细要求,必须调整每个驱动器.(这实际上发生在低级格式之前,当然,因为你必须知道设备有多好以决定制作盘片的密度.)这些数据被称为adaptives并保存在系统区域中.自适应区域中的信息类似于"当伺服标签告诉我我正在偏离轨道时应该使用多少电压来纠正自己",以及使硬盘实际工作所需的其他信息.如果自适应稍微关闭,则可能无法访问用户区域.系统区域更容易访问,因此只需要很少的自适应存储在PCB CMOS上.

取消这一段:

  1. 密度越低意味着更容易阅读.
  2. 密度越高,随机搞砸的可能性越大.
  3. 用户区域具有与硬盘驱动器制造商可能制造的密度一样高的密度.
  4. 如果这看起来很麻烦,那就是因为它确实存在.硬盘制造商竞争并赢得每GB的价格.硬盘设计并不是要制造非常精心制造的设备并将它们放在一起非常小心,因为这已经不够了.当然,他们仍然这样做,但他们也必须在软件中相互协作,因为硬件容差太宽,不再具有竞争力.

所以.因为用户具有如此高的密度,所以实际上非常(非常(非常非常))可能在正常情况下被搞砸了.这可能是由许多因素引起的,包括非常轻微的时序问题和盘片退化.硬盘驱动器的很大一部分实际上包含了搞砸的位.(您可以通过向ATA28 READLONG驱动器发出一个命令(仅对前127 GB左右有效.没有ATA48等效它被丢弃!)在许多扇区上多次并比较输出来验证这一点.你会发现它不是在某些情况下,某些比特会出现行为异常,无论是开启还是关闭,甚至是随机翻转,都是罕见的.这是生活中的事实.这就是我们拥有的原因ECC.

ECC是在512(或4096个较新的驱动器)字节数据之后包含的校验和,如果它具有足够的不正确位,则将校正该数据.确切的数量取决于固件和制造商,但所有驱动器都有它,并且所有驱动器都需要它(并且它比您预期的要高得多,例如48-60字节可以检测并纠正多达6-8个错误字节.疯狂数学继续.)这是因为即使是高度专业化和调谐的内部硬盘设备,盘片的密度也太高了.

最后,我想谈谈前置放大器芯片.它位于硬盘驱动器的臂上,充当扩音器.因为信号是从非常小的磁场产生的,所以在非常小的磁头上工作,它们具有非常小的潜力.所以你不能将硬盘头用于Gutmann方法,因为你无法从中获得足够准确的读数以使Gutmann的技术变得有价值.

但是让我们假设NSA有一个神奇的设备,他们可以在1毫秒内获得任何特定位的非常准确的读数(足够精确地计算电位并得出先前写入的数据).他们首先需要什么?

首先,他们需要系统区域.因为那是存储转换器的地方(转换器是将LBA地址转换为PCHS地址的物体(物理气缸盖扇区而不是逻辑CHS地址,这是伪造的并且仅由于遗留原因而存在).系统的大小区域各不相同,你可以在不使用魔术工具的情况下获得它.通常,它只有大约50-100MB.翻译器的布局是固件特定的,所以你必须逆转它(但它已经完成,没什么大不了的.)

所以第一个问题,信噪比.如上所述,盘片密度调整得更高,严格安全.Gutmann方法要求正常读/写活动的方差非常小,以便以任何精度计算先前的位状态.如果信号的方差很大,那么它可以克服这些尝试.差异非常大,足以让你彻底搞砸(这就是为什么ECC在现代驾驶中如此疯狂.)类比就像是在有人在嘈杂的房间中间与你交谈的时候,试着完全听到有人在窃窃私语.

第二个问题,时间.即使电子显微镜非常快速和准确(每比特1毫秒!这对于电子显微镜而言是闪电.它也比1200波特调制解调器慢),硬盘上有很多数据,完整的图像需要很多很久.(对于整个500GB硬盘,WA表示126年,而且不包括ECC数据(你需要).还有很多与硬盘驱动器相关的其他元数据,我没有提到,比如ID字段和地址标记,但是这些都没有被覆盖,或许你可以想出一种更快的方式来正常成像它们?毫无疑问,有很多方法可以加快这个过程(比如有选择地对部分驱动器进行成像),但即使这样也需要几个月才能完成/ 7全天候工作只是为了将$MFT文件放在标准硬盘上(在安装了Windows的驱动器上通常大约为50-300MB)).

第三个问题,可受理性.如果政府追随你,他们只是出于几个原因而追随你,他们想知道你知道的事情,或者他们想要逮捕你并把你关进监狱.有更简单的方法来获得前者(橡胶软管密码术),而后者需要定期的证据程序.回到这个比喻,如果有人作证说有人在窃窃私语中告诉他们某事,而其他人在一个拥挤而嘈杂的房间中间与他们交谈,那里有很多疑点.它永远不会是那种想要花费大量时间和金钱的有力证据.

  • 因为在这种情况下,`/ dev/random`和`/ dev/urandom`几乎是错误的答案.:) (3认同)