人们设计了许多 3rd 方工具来执行安全删除,但我不知道任何内置安全删除的文件系统。事实上,安全删除必须解决文件系统的功能,例如(无意中)进行安全删除的日志更加困难。是否有任何文件系统允许将安全删除作为一项功能?
我自己的研究揭示了Allison Henderson 对 ext4 的一组补丁,但我能找到的最后一个参考是从 2011 年开始的。它们似乎并不完美,但比大多数情况下发生的完全非擦除要好得多,如果并非所有现代文件系统。
人们设计了许多 3rd 方工具来执行安全删除,但我不知道任何内置安全删除的文件系统。事实上,安全删除必须解决文件系统的功能,例如(无意中)进行安全删除的日志更加困难。是否有任何文件系统允许将安全删除作为一项功能?
我自己的研究揭示了Allison Henderson 对 ext4 的一组补丁,但我能找到的最后一个参考是从 2011 年开始的。它们似乎并不完美,但比大多数情况下发生的完全非擦除要好得多,如果并非所有现代文件系统。
NTFS样的呢,如果你有加密文件系统作为它的一部分。
Microsoft Windows 上的加密文件系统 (EFS) 是 NTFS 3.0 版中引入的一项功能
支持安全删除cipher.exe:
您可以使用 Windows Cipher 实用程序(使用 /W 选项)擦除可用空间,包括仍包含已删除纯文本文件的空间
在微软页面上:
Cipher.exe 是一个命令行工具...提供永久覆盖(或“擦除”)硬盘上所有已删除数据的能力。此功能通过确保即使是获得对 Windows 2000 计算机的完全物理控制的攻击者也无法恢复以前删除的数据来提高安全性。
这仍然需要两步操作才能安全地删除文件:
del c:\foo\bar.txt
cipher /w:c:\foo
cipher因此,除非稍后手动运行,否则这不适用于在操作过程中删除文件的应用程序。但是,您可以安排定期cipher /w:c:\运行,以便从磁盘中擦除已删除的文件。
安全删除通常是间接构建的:
然后,安全删除过程不需要删除数据的所有位,而只需要确保它擦除了密钥。
这允许密钥文件存储在与文件数据不同的介质类型上,例如文件数据可以存储在硬盘或 SSD 上,而密钥数据可以存储在更小但更安全的设备上,例如可移动闪存驱动器(您总是随身携带)或智能卡(这使得提取密钥变得困难)。要销毁密钥,只需擦除或销毁包含密钥的小型廉价介质即可。
这种设置很容易在整个文件系统级别进行安排(例如,Linux 下的 LUKS 可以使用存储在不同媒体上的密钥文件或存储在 OpenPGP 智能卡上的密码),但我不知道任何每个文件级别的现成解决方案。
不是很方便,但是你可以在Linux下用encfs构建一些东西。Encfs 使用存储在文件中(.encfs6.xml位于加密树的根目录)中的密钥对目录树进行加密。您可以将此文件移动到另一个存储设备(可以是只读的)并创建符号链接。然后,您可以通过销毁或擦除包含密钥的设备来有效地擦除加密树。密钥文件只需要写入一次,因此只要您使用不重新分配块的文件系统(例如 ext2),就地覆盖文件就足以擦除先前的内容(至少在逻辑级别;闪存驱动器进行自己的块重新分配,因此仍然可以通过将驱动器拆开以绕过控制器来恢复数据)。