古特曼方法是一种安全擦除计算机硬盘驱动器内容(如文件)的算法。由彼得·古特曼和科林·普拉姆设计,并于1996年7月发表在论文《从磁性和固态存储器中安全删除数据》中,它涉及在要擦除的区域上写入一系列35个模式。
模式的选择是建立在用户不知道驱动器使用的编码机制的假设上的,因此它包括专门为三种类型的驱动器设计的模式。知道驱动器使用哪种编码类型的用户只能选择为其驱动器设计的模式。具有不同编码机制的驱动器需要不同的模式。
古特曼方法中的大多数模式是为旧的MFM/RLL编码磁盘设计的。古特曼自己也特别指出到,更现代的驱动器不再使用这些旧的编码技术,使得部分方法变得无关紧要。他说,“自从这篇论文发表以来,有些人把其中描述的35遍重写技术更多地视为一种驱除恶灵的巫术咒语,而不是驱动器编码技术的技术分析结果”。[1][2]
大约从2001年开始,一些ATA集成开发环境和SATA硬盘制造商的设计包括对ATA安全擦除标准的支持,消除了擦除整个硬盘时应用古特曼方法的需要。[3] 然而,2011年的一项研究发现,八分之四的制造商没有正确实施ATA安全擦除。[4]
恢复硬盘上被覆盖的数据的一种标准方法是在该模拟信号被数字化之前捕获并处理从驱动器的读/写头获得的模拟信号。该模拟信号将接近理想的数字信号,但差异将揭示重要信息。通过计算理想的数字信号,然后从实际的模拟信号中减去它,就有可能放大所获得的差值信号,并使用它来确定先前写在磁盘上的内容。
例如:
模拟信号: +11.1 -8.9 +9.1 -11.1 +10.9 -9.1 理想数字信号:+10.0 -10.0 +10.0 -10.0 +10.0 -10.0 差异: +1.1 +1.1 -0.9 -1.1 +0.9 +0.9 前一个信号: +11 +11 -9 -11岁 +9 +9
然后,可以再次执行此操作,查看之前写入的数据:
恢复信号: +11 +11 -9 -11岁 +9 +9 理想数字信号:+10.0 +10.0 -10.0 -10.0 +10.0 +10.0 差异: +1 +1 +1 -1 -1 -1 前一个信号: +10 +10 +10 -10 -10 -10
然而,即使用随机数据重复重写磁盘,理论上也有可能恢复先前的信号。介质的介电常数随着磁场的频率而变化。这意味着低频磁场将比高频磁场更深地穿透驱动器上的磁性材料。因此,理论上,低频信号即使被高频信号覆盖了数百次,仍然是可以检测到的。
所使用的模式被设计成向驱动表面施加不同频率和不同相位的交变磁场,从而近似消磁驱动表面以下的材料。
重写会话由四个随机写入模式的引入,随后是以随机顺序执行的模式5至31(见下表的行),以及另外四个随机模式的引出组成。
图案5至31中的每一个都设计有特定的磁介质编码方案,每个图案都以该方案为目标。即使下表仅显示了针对每种编码方案的通道的位模式,驱动器也会针对所有通道写入。最终结果应该模糊驱动器上的任何数据,以便只有驱动器的最高级物理扫描(例如,使用磁力显微镜)才可能恢复任何数据。
一系列模式如下:
Pass | Data written | Pattern written to disk for targeted encoding scheme | |||
---|---|---|---|---|---|
In binary notation | In hex notation | (1,7) RLL | (2,7) RLL | MFM | |
1 | (Random) | (Random) | |||
2 | (Random) | (Random) | |||
3 | (Random) | (Random) | |||
4 | (Random) | (Random) | |||
5 | 01010101 01010101 01010101 | 55 55 55 | 100... | 000 1000... | |
6 | 10101010 10101010 10101010 | AA AA AA | 00 100... | 0 1000... | |
7 | 10010010 01001001 00100100 | 92 49 24 | 00 100000... | 0 100... | |
8 | 01001001 00100100 10010010 | 49 24 92 | 0000 100000... | 100 100... | |
9 | 00100100 10010010 01001001 | 24 92 49 | 100000... | 00 100... | |
10 | 00000000 00000000 00000000 | 00 00 00 | 101000... | 1000... | |
11 | 00010001 00010001 00010001 | 11 11 11 | 0 100000... | ||
12 | 00100010 00100010 00100010 | 22 22 22 | 00000 100000... | ||
13 | 00110011 00110011 00110011 | 33 33 33 | 10... | 1000000... | |
14 | 01000100 01000100 01000100 | 44 44 44 | 000 100000... | ||
15 | 01010101 01010101 01010101 | 55 55 55 | 100... | 000 1000... | |
16 | 01100110 01100110 01100110 | 66 66 66 | 0000 100000... | 000000 10000000... | |
17 | 01110111 01110111 01110111 | 77 77 77 | 100010... | ||
18 | 10001000 10001000 10001000 | 88 88 88 | 00 100000... | ||
19 | 10011001 10011001 10011001 | 99 99 99 | 0 100000... | 00 10000000... | |
20 | 10101010 10101010 10101010 | AA AA AA | 00 100... | 0 1000... | |
21 | 10111011 10111011 10111011 | BB BB BB | 00 101000... | ||
22 | 11001100 11001100 11001100 | CC CC CC | 0 10... | 0000 10000000... | |
23 | 11011101 11011101 11011101 | DD DD DD | 0 101000... | ||
24 | 11101110 11101110 11101110 | EE EE EE | 0 100010... | ||
25 | 11111111 11111111 11111111 | FF FF FF | 0 100... | 000 100000... | |
26 | 10010010 01001001 00100100 | 92 49 24 | 00 100000... | 0 100... | |
27 | 01001001 00100100 10010010 | 49 24 92 | 0000 100000... | 100 100... | |
28 | 00100100 10010010 01001001 | 24 92 49 | 100000... | 00 100... | |
29 | 01101101 10110110 11011011 | 6D B6 DB | 0 100... | ||
30 | 10110110 11011011 01101101 | B6 DB 6D | 100... | ||
31 | 11011011 01101101 10110110 | DB 6D B6 | 00 100... | ||
32 | (Random) | (Random) | |||
33 | (Random) | (Random) | |||
34 | (Random) | (Random) | |||
35 | (Random) | (Random) |
粗体显示的编码位应该出现在理想模式中,尽管由于编码的原因,互补位实际上出现在轨道的开始。
大多数操作系统中的删除功能只是将文件占用的空间标记为可重用的(删除指向文件的指针),而不会立即删除其中的任何内容。此时,许多恢复应用程序可以相当容易地恢复文件。但是,一旦空间被其他数据覆盖,就没有已知的方法使用软件来恢复它。由于存储设备只能通过其正常接口返回其当前内容,因此不能仅使用软件来完成。Gutmann声称情报机构拥有复杂的工具,包括磁力显微镜,磁力显微镜和图像分析一起,可以检测介质(例如硬盘)受影响区域的比特值。
美国私人非营利研究组织国家经济研究局的丹尼尔·芬伯格批评古特曼的说法,即情报机构可能能够读取被覆盖的数据,并引用缺乏证据来支持这种说法。[5] 然而,一些已公布的政府安全程序认为磁盘被覆盖一次仍然是敏感的。[6]
古特曼本人对其中的一些批评做出了回应,并在他的原始论文的结语中批评了他的算法是如何被滥用的,他在结束语中指出:[1][2]
自从这篇论文发表以来,有些人把它描述的35遍重写技术更多的是一种驱除邪恶的巫术咒语,而不是驱动器编码技术的技术分析结果。因此,他们主张将巫毒教应用于PRML和EPRML驱动器,尽管它不会比用随机数据进行简单的清理更有效果。事实上,执行完整的35遍覆盖对任何驱动器来说都是毫无意义的,因为它的目标是包含所有类型(通常使用的)编码技术的混合场景,这涵盖了30多年前的MFM方法的所有内容(如果您不理解这一说法,请重新阅读这篇文章)。如果您正在使用使用编码技术X的驱动器,您只需要执行特定于X的遍数,而不需要执行所有35遍。对于任何现代PRML/EPML驱动器来说,随机擦洗几次是最好的选择。正如该论文所说,“用随机数据进行良好的清理将达到预期的效果”。这在1996年是真的,现在仍然是真的。 — Peter Gutmann ,从磁性和固态存储器中安全删除数据,奥克兰大学计算机科学系^Gutmann, Peter. (July 22–25, 1996) Secure Deletion of Data from Magnetic and Solid-State Memory. University of Auckland Department of Computer Science. Epilogue section..
^Lorrie Faith Cranor, Simson Garfinkel. Security and Usability: Designing Secure Systems that People Can Use. p. 307.CS1 maint: Uses authors parameter (link).
^Clearing and Declassifying Electronic Data Storage Devices (PDF) (PDF). Communications Security Establishment. July 2006. p. 7. Archived from the original (PDF) on 2014-03-03..
^https://web.archive.org/web/20221029033927/https://www.usenix.org/legacy/events/fast11/tech/full_papers/Wei.pdf.
^Daniel Feenberg (2013) [2003]. "Can Intelligence Agencies Read Overwritten Data? A response to Gutmann". National Bureau of Economic Research..
^"Clearing and Declassifying Electronic Data Storage Devices" (PDF) (PDF). Communications Security Establishment. July 2006. Archived from the original (PDF) on 2014-03-03..
^"Coreutils manual:shred, remove files more securely". Free Software Foundation. Retrieved 11 September 2012..
暂无