![如何在现代文件系统上粉碎已删除的文件?(安全地随机化可用空间、日志、尾部……)](https://linux22.com/image/1287578/%E5%A6%82%E4%BD%95%E5%9C%A8%E7%8E%B0%E4%BB%A3%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E4%B8%8A%E7%B2%89%E7%A2%8E%E5%B7%B2%E5%88%A0%E9%99%A4%E7%9A%84%E6%96%87%E4%BB%B6%EF%BC%9F%EF%BC%88%E5%AE%89%E5%85%A8%E5%9C%B0%E9%9A%8F%E6%9C%BA%E5%8C%96%E5%8F%AF%E7%94%A8%E7%A9%BA%E9%97%B4%E3%80%81%E6%97%A5%E5%BF%97%E3%80%81%E5%B0%BE%E9%83%A8%E2%80%A6%E2%80%A6%EF%BC%89.png)
考虑以下:
mount | grep home
... type reiserfs ...
rm -Rf /home/user/over_9000_little_and_big_super_secret_files/
# oops, I should have shredded it instead.
我如何正确安全地“初始化可用空间”以确保无法通过挖掘可用空间来恢复其他信息?(最好不要停止或干扰文件系统。)
dd if=/dev/frandom of=/home/qqqqq
对于这些(尾部、日志等)来说真的安全吗?
答案1
如果您真的想确定,请将整个文件系统 tar 到另一个驱动器,如下所示:
ssh host "tar --one-file-system -jcf - /" > system-root.tar.bz2
然后使用 shred 擦除设备,并将内容解压回来。使用 shred,您可以指定擦除次数;我会运行 0-2 次随机数据写入,然后将其归零。为什么只写 1-3 次而不是 30 次?因为即使使用专业工具,在经过一段时间后恢复单个位也有 80% 的把握单身的擦除。这意味着恢复一个完整字节数据的机会约为 0.8^8 = 0.17 = 17%。而且这只是一个字节,几乎不会泄露太多秘密。
答案2
你必须擦拭整个可用空间如果你真的想确保它已经消失了。
一般来说,使用/dev/random
(和变化)不如全面擦除那么安全,因为/dev/random
可能会或可能不会使用磁盘内容来添加熵,并且只进行一次传递,在设计上没有安全性。
答案3
看一下这个问题关于安全删除硬盘上的数据security.stackexchange.com。它的范围比您的问题要广一些,涵盖了整个驱动器,但问题列表中的一系列有用的想法都建议使用安全擦除作为方法。
对于闪存驱动器,有具体问题这也会出现。
答案4
您可能需要考虑安全删除四氢大麻酚。您可能还想考虑加密文件系统。具有日志记录功能的未加密文件系统有一些注意事项。