什么时候删除的数据无法恢复?

信息安全 取证 删除 数据恢复
2021-09-02 19:17:29

从互联网上阅读我得到的印象是,除非物理损坏,否则始终可以使用复杂的数字取证来恢复已删除的数据。

出于这个原因,建议您应该加密您的数据。

那么,在什么情况下,即使是复杂的数字取证,数据也无法恢复?

4个回答

这在很大程度上取决于用于存储数据的介质以及您认为“不可恢复”的介质。

“删除”数据大多不像大多数人认为的那样。简单来说,在标准删除之后,数据并没有消失,只是“数据 XY 位于 0x000000”和实际存储位置 0x000000 之间的链接被删除。您的数据仍位于 0x000000。文件恢复程序将轻松恢复这些数据。

硬盘:删除数据或格式化/删除分区时,您并没有主动擦除数据,而只是使其没有主动索引。要真正擦除数据,您需要覆盖每一位。

实际上,要使其真正安全,您需要多次执行此操作,因为即使用零覆盖磁驱动器上的数据也可以恢复

SSD:磨损均衡和其他功能可防止 SSD 实际擦除或覆盖扇区,即使特别建议这样做也是如此。相反,SSD 控制器将新数据写入其他地方,并创建一个从旧数据到新的实际位置的指针。您的旧数据仍在磁盘上。

大多数 SSD 都提供安全擦除功能,旨在解决这些确切问题。

有专门用于擦除 SSD 上数据的研究论文:

NIST 提供了一个覆盖标准NIST SP-800-88 Rev. 1,详细阐述了在不同介质上擦除数据的困难的 64 页。

虽然当前的主要答案深入研究了数据恢复的技术细节,但我将(尝试)采用更广泛的方法。

我们如何定义“不可恢复”?

根据您可能关联的圈子,“不可恢复”可能意味着只有一小部分数据是可恢复的。

虽然我不从事法律工作,但在某些国家,这可能证明“足够”作为法律辩护。任何关键的元数据(时间戳、权限等)都将丢失,从而限制了检察官针对被告不在场证明的论点。

在其他圈子(尤其是恶意软件作者)中,使用 XOR 操作或 base64 编码会使数据对普通人群“不可恢复”。足以满足他们的目的并且易于实施。

答案还取决于时间尺度。我们是否已经完成了数据,或者我们仍然希望随着时间的推移访问数据?

我假设作者已经“完成”了给定存储介质上的数据。

数据如何变得“不可恢复”?

这在很大程度上取决于:

  • 存储介质(磁性、光学、ROM、NVRAM 等)
  • 存储介质制造商
  • 存储介质年龄/磨损
  • 环境条件
  • 符合存储接口标准
  • 所述存储接口标准的年龄
  • 数据写入/读取过程

在更高的层次上,大多数操作系统缺乏真正验证数据是否真的“消失”或“不可恢复”的方法。这一点很重要,因为审计是信息安全的基石。

这是因为大多数软件(操作系统等)无法查看原始数据存储——控制器如何处理存储介质读取和写入数据。

例如,磁存储介质通常需要多次通过(和多个方向)以确保消散任何残余磁场。上次我检查时,硬盘驱动器上没有固件暴露“读取X、Y、Z 处磁场的方向和强度”。他们提供“告诉我扇区/块X中有哪些位”。

加密数据如何使其“不可恢复”?

许多人认为,由于敏感数据在存储介质控制器得到它之前已被加密,这只是战斗的一部分。

声称“使用 AES-256 加密......军用级加密”在许多营销文献中很常见。如果加密数据使用一种或多种弱算法、实现、密钥或种子,则可以轻松恢复加密数据。这方面的一个例子是“出口级加密货币”。

根据“攻击者”的复杂程度,如果攻击者在高级别​​(将设备安装在操作系统中)或低级别(使用扫描电子显微镜)查看存储介质,加密的错误感觉将无关紧要)。

建议是您应该加密您的数据。

虽然我这样说可能会受到一些批评,但大多数消费者不希望或不需要对静态数据进行加密。

在一些火焰战争开始之前,我会解释一下。

信息安全处理风险评估。如果保证存储介质不包含敏感数据,为什么要对其进行加密?加密通常会导致性能损失。

大多数普通人会发现对静态数据进行加密没有帮助。尽管说起来让我很痛苦,但缺乏加密可以轻松恢复数据。在 IT 支持中,被问到“我丢失了我的文件”比“我想丢失我的文件”要常见得多。

如果您在具有“加密”功能的设备上进行银行业务,除了静态数据的安全性之外,您还会遇到许多其他问题。

大多数业余街头小偷都有兴趣擦拭设备并将其出售。在这种情况下,加密无济于事,恢复出厂设置会使业余街头小偷“无法恢复”数据。

如果您不再使用它,将您的存储介质带到粉碎公司就绰绰有余了。这就是我认为问题所要问的。

如果我真的需要在某种程度上使我的数据不可恢复怎么办?

如果我真的需要让我的数据随着时间的推移而无法恢复,同时仍然可以访问它怎么办?

假设您确实有敏感文件、公司机密或其他一些正当理由,3DES 甚至 RC4 可能足以加密您的文件——只要密钥足够强大、实施合理,并且您的潜在攻击者属于普通(和穿制服的)人群.

您应该询问谁或什么您正在保护您的数据免受/反对。

如果您正在寻找通常“不可恢复的”,请选择一个随机的信誉良好的密码,给它一个即使您不知道的完全随机的密钥(大约 256 位),然后等待该过程完成。

假设一堆软件中的每一行代码都完成了它的工作(以及每个芯片中的每个晶体管),这应该证明对广大民众来说是“不可恢复的”。

如果您犹豫不决,请每隔十年左右对驱动器上的数据进行加密。通过这种方式,您可以确保您对所使用的密码学中的任何弱点保持“最新”。

确保刷新任何可能存在的缓存,设备使用这些缓存来提高性能并且可能包含明文内容。

如果您对随着时间的推移保护数据感兴趣,那是信息安全的另一个领域。

在许多类型的磁盘驱动器上,甚至可能用随机数据覆盖一个扇区即使使用先进的取证技术,也可以使数据永久不可恢复。然而,多种因素可能会导致某些数据“逃脱”破坏。例如,如果使用磁头产生比用于覆盖它的驱动器更强的磁场的驱动器写入可移动磁盘,则由第一个驱动器写入的条带的宽度可能略大于由第一个驱动器擦除的宽度第二。例如,如果第一个条纹比第二个宽 10%,则无法通过常规方式读取外部部分,但如果一个驱动器的磁头比第二个稍窄,并且其位置可以精确控制,可以擦掉后面磁道的中间90%,然后尝试读取内外边缘,然后移动磁头擦除中间95%,

我不知道这种信号的幅度是否足以允许可靠恢复,但如果知道 256 位私钥存储在哪里,并且可以以每比特 99% 的可靠性识别比特值,那是蛮力的搜索哪个(过度简化)从磁盘上的位模式开始,然后是所有相差一位的模式,然后是所有相差两位的模式,等等。可能比破解密钥的速度快得多没有可部分恢复的密钥作为起点。

在 Apple II 上,如果要擦洗软盘,可以使用在擦除磁盘时以半步增量而不是整步增量移动磁头的程序。如果驱动器工作正常,则由此类程序擦除的数据将完全消失。但是,我不知道任何提供类似功能的硬盘驱动器,除了——正如在别处提到的——通过使用加密。

虽然这是真的,而且过去对我来说“更真实”(有没有更真实的事情?)这不一定是问题。

当然,如果您想 100% 确定,因为您在 CIA 通缉名单的前 5 名中,那么除了在格式化后用扳手和火将驱动器物理销毁之外别无选择(尽管,老实说,对于 99% 的用户来说,这完全是胡说八道!)。哦,射击所有可能见过你脸的人。

但是,删除的数据可恢复与否?是不是这样,很难说。

首先,这取决于“删除”是什么意思。例如,删除文件通常首先是删除文件系统中的元数据,这仅将实际数据块标记为最终可重用/覆盖。也有例外,并且存在实际上覆盖文件的“安全删除”工具,有时会覆盖几次。这些工具是否真的有效在现代硬件(以及一些文件系统)上是有争议的。从内存中删除数据将使其无法恢复(非常肯定!),除非内存页面已被写入交换。在这种情况下,您根本无法判断它是否可以被删除(除了在熔炉中烧毁驱动器)。请注意,在日志文件系统上,即使数据被删除,副本仍可能在日志中。令人惊讶的是,写时复制文件系统可能有一个您不知道的副本,并且根本无法覆盖。

这也很大程度上取决于您生活在哪个世纪。使用 1990 年代的技术,重建被剩磁覆盖六次的数据是相当主流的。另一方面,当时,安全擦除也相当安全,因为您可以保证您实际上会覆盖数据,否则会失败。

使用现代驱动器,情况有所不同。一方面,如今恢复被覆盖的磁数据是一项相当艰巨的任务。我不知道是否可以使用剩余电荷来恢复闪存中的数据,但是如果确定要这样做,那么至少在理论上……为什么不这样做。
另一方面,你永远不知道什么时候被覆盖,或者是否完全覆盖,或者你写入的同一个扇区是否实际上是同一个扇区。通常情况并非如此,在 SSD 上,实际上可以保证不会出现这种情况。磨损均衡和重新分配是 100% 透明的,你无从得知。无论您多么努力,您都可能根本无法覆盖扇区。现代驱动器(不仅仅是已经再次消亡的“混合”驱动器)可能具有多个存储级别,使用一个或另一个进行缓存。例如,某些 SSD 与 SLC/MLC 组合以这种方式工作。所以,即使你确实删除了一些你永远不知道是否没有副本的东西。

另一方面...

出于技术原因,较旧的驱动器使用某种位混合(对硬件更有利,无论是磁性还是固态)。现代驱动器几乎完全使用 AES,它在混合比特方面并没有明显更好,但它很容易在廉价、无所不在的硬件中得到支持,你可以写“AES,安全!” 包装盒上,有利于销售。
大多数(如果不是全部)当今的驱动器都是 SED(自加密驱动器),尽管这并不意味着它们是安全的。它归结为解密密钥的存储方式/位置,以及如何访问它。在具有每个人都可以访问的单个内置解密密钥的自加密驱动器上,它是自加密的事实是无关紧要的。解密密钥仅对已通过 BIOS 验证的用户可用的驱动器是另一回事。
几乎所有驱动器都支持的安全擦除/恢复出厂设置功能也是如此。一些(希捷,让我很烦恼,不仅不安全,还需要几个小时) 实际上用垃圾覆盖驱动器。有些(例如三星)只是擦除加密密钥,立即使所有数据不可读。有人告诉我,尽管您说“安全擦除”,但仍保留一份解密密钥的副本。不确定这是否真的是真的(难以想象),但它肯定是理论上的可能性。你没有办法确定。

在实践中意味着什么?

对于大多数人来说,使用正确配置的、没有废话的自加密驱动器就足够了。在扔掉计算机之前,请安全擦除磁盘,然后就可以开始使用了。这将防止一个随机的人将您的磁盘从垃圾箱中拉出以及普通的犯罪分子访问您的东西。
对于大多数人来说,只需在 Windows 资源管理器中删除不再需要的文件(恰好不是超级机密文件)就足够了。
如果您想 100% 确定在计算机被盗时无法访问某些重要数据,您可以在磁盘上创建一个加密分区或容器(Veracrypt 等)。但实际上,很少有人真正需要它。

世界上的秘密大致分为三类:

  1. 这样的东西实在是太无聊了,太没用了,反正没人想偷。加密这些并没有什么坏处,但除了让哪些信息可能值得窃取和哪些信息一文不值变得不那么明显之外,这没什么用处。尽管如此,因为它确实使找出有趣的东西变得更加困难,所以无论如何你都想加密它们(另外,加密整个分区/磁盘更容易)。就像您想简单地将每张纸放入文件粉碎机中一样,而不仅仅是您的银行信函。
  2. 您想要保护的此类信息免受普通犯罪分子的侵害。这些应该是相当安全的。加密是一个很好的计划,可以防止它们被太琐碎地访问(或窃听)。为了避免在丢弃磁盘时泄漏它们,在这样做之前擦除磁盘就可以了。
  3. 这样的信息真的很重要,人们会为了这些信息而伤害和杀戮。无论如何,您都会透露这种信息,因为您透露它时,您将被绑在椅子上并被殴打,直到您这样做为止。老实说,你如何保护这些秘密并不重要。

因此,长话短说,只需正常删除文件,然后在丢弃磁盘时擦除磁盘。