Windows 和 Mac 多久运行一次 trim 命令,因此何时已删除的文件将无法恢复?

Windows 和 Mac 多久运行一次 trim 命令,因此何时已删除的文件将无法恢复?

我正在尝试确定 SSD 驱动器的安全性,并针对一个项目比较 Windows 和 Mac。通过在线阅读,我了解了有关修剪的所有信息以及该过程的工作原理,但我无法确定每个操作系统默认运行此过程的频率。

微软或苹果是否提供与此相关的信息?

出于明显的使用寿命原因,这两种操作系统似乎都不允许或使得手动清除所有已删除的数据变得非常困难,并且我试图确定在删除文件后多久内无法从 MacBook 或 Windows 上的 SSD 驱动器中完整恢复,例如,与旧式 HDD 数据擦除工具进行比较,这些工具可以临时运行并从设备中完整擦除数据。

答案1

我不是“Mac 用户”,但 Windows 通常会立即发送 TRIM 命令。这很容易测试。

确保已启用TRIM。

在此处输入图片描述

现在创建文件夹 > 在其中放入二十个左右的文件 > 选择它们 > 按住 SHIFT 键并按 DEL。使用 R-Studio 检查文件,您甚至不必恢复它们,只需在 HEX 视图中检查内容即可。

在我的测试中,我得到了充满零的文件,这表明数据已被修剪(RZAT:返回零,根据我的经验,这是最常见的)。

更多确认示例请见此处:https://youtu.be/hzClnwGeJUM

有些人错误地认为,由于 TRIM(也)按计划运行,所以这是 TRIM 在 Windows 中运行的唯一方式。TRIM 不“触发”或只是从命令队列中删除的原因可能有很多,而按计划运行的 TRIM 可以解决这个问题。

那么数据无法恢复吗?

没有简单的“是/否”答案。

  • TRIM 是一个命令,它只是通知驱动器。驱动器可以放弃该命令。因此,它是操作系统让 SSD 知道“嘿,我不再需要 LBA 21334 - 22000 中的数据了!”的一种方式。

  • 最常见的行为是驱动器对“修剪过的”LBA 范围返回零。换句话说,驱动器甚至不会尝试读取扇区,它“知道”这些扇区已被修剪,因此只返回零填充的扇区。

  • TRIM 并不意味着擦除。修剪过的页面现在只是“过时的”,在 SSD 固件决定擦除它们之前,数据可能无法使用文件恢复工具恢复,但数据恢复实验室可能仍然能够恢复数据。大多数驱动器只是从 LBA 用户空间中删除修剪过的扇区,因此它们不再可读,并且固件再次返回虚假数据。

  • 即使修剪后的扇区实际上已被擦除,数据仍可恢复。TRIM 命令仅对存储数据的最后 LBA 地址有效。然而,存在多个扇区副本的情况并不罕见:固件不断将数据从一页复制到另一页,以合并完全由陈旧页面组成的块。只有这样才能擦除该块。因此,尽管存储数据的 LBA 地址不会改变,但物理位置可能会改变几次。

  • 只有两种方法才能真正摆脱数据:(1) 删除加密密钥(许多现代 SSD 都是自加密 (SED)),即使您从未要求加密任何内容,或 (2) 运行内置于驱动器中的增强安全擦除类型命令。在这两种情况下,我们只能希望这些机制得到正确实施。

答案2

您的问题基于一个错误的前提,即 TRIM 会删除数据。但事实并非如此。

TRIM 将驱动器的某个部分标记为包含不再相关的数据。然后驱动器可能会在方便时重新使用该部分。这并不意味着驱动器会立即将其擦除。它可能会在将来的某个时间点使用该区域进行磨损均衡,但您不知道何时会发生这种情况。只有 SSD 控制器知道。

擦除 SSD 数据的唯一可靠方法是基于加密:您必须销毁用于加密数据的密钥。有些驱动器会透明地加密所有数据而无需用户要求,并且安全地擦除它们非常简单:您只需发送一个命令使其忘记加密密钥即可。但这实际上会擦除整个驱动器。

如果您希望能够删除单个文件,则必须对每个文件进行单独加密,并使用您不能存储在同一磁盘上的专用密钥(原因应该已经很清楚了)。这不太实用,所以我建议采用不同的方法:使用全盘加密,不要让不受信任的用户(和软件)访问您的系统。这将保证已删除文件的剩余部分安全。

具体什么对您有用取决于您的使用情况和威胁模型。

相关内容