我知道大多数文件在删除后实际上并未从磁盘上删除,以后可以恢复。
如何确保已删除的目录实际上已从磁盘上删除?是否有实用程序?
我正在使用Debian Linux。
我知道大多数文件在删除后实际上并未从磁盘上删除,以后可以恢复。
如何确保已删除的目录实际上已从磁盘上删除?是否有实用程序?
我正在使用Debian Linux。
Answers:
在存储数据之前,先对其进行加密。要擦除数据,请擦除键。
如果您已经以明文形式写入数据,那么以简单的方式擦除数据为时已晚。数据可能在不同地方有多个副本:
为了摆脱文件系统上数据的副本,一种粗略的方法是填充可用空间(cat /dev/zero >somefile
并等待其停止,因为文件系统已满)。这将覆盖所有完整的块。
数据的一小部分可能保留在不完整的块中,其他文件会部分使用这些块。对于文件名尤其如此,文件名可能保留在存储目录内容的块中。要清除所有内容,请备份所有文件,完全覆盖包含文件系统的设备,然后还原文件。
存储介质可以将数据保留在不再使用的块中。在硬盘上,这意味着已经重新分配了坏块。在磁盘开始磨损之前,这种情况很少发生。在SSD上,这通常是由于磨损均衡而引起的。在这两种情况下,威胁都是非常低的,因为访问该数据需要稍微复杂的攻击者,并需要花费一些昂贵的硬件和时间。如果您担心这些威胁,请加密您的数据,不要把密钥留在身边。
请注意,您可能会看到有关通过多次处理或使用随机数据而不是零(“ Gutmann擦除”)擦除数据的建议。忘记了:这仅适用于1980年代的硬盘(即使那样,数据重建也并不便宜,而且重建也不可靠)。用零覆盖就足够了;做多次随机通过是过时的建议或蛇油。请参阅为什么在硬盘驱动器上多次写入零(或随机数据)比仅执行一次更好?
有一种非常流行的工具称为shred
。在删除之前,它将覆盖每个文件25次。那可能是我想要的东西。
切丝的用法很简单
$ shred secret_archive.tar.gz
但是请注意,在以下情况下,现代系统shred
可能效率低下或无用:
其他可能更安全的选择是:
shred
,当使用data = ordered(默认)和data = writeback模式时,即使使用ext3(我猜也是ext4 )也可以。此外,还有一个简单的选择:仅创建一个巨大的文件,占用文件系统所有剩余空间,以便删除的文件将被覆盖。
journaling -> data jornaling
shred
是蛇油:没有比head -c $(wc -c secret_archive.tar.gz)
>!secret_archive.tar.gz`好。除非您使用的是1980年代或1990年代初期的硬盘,否则使用碎片总是没有意义的。