C# 为什么文件在删除前需要重命名30次?

C# 为什么文件在删除前需要重命名30次?,c#,security,file-io,pci-dss,C#,Security,File Io,Pci Dss,我一直在审查一些保护删除文件安全的应用程序。我理解用零和随机字符多次覆盖文件的概念;但是,我不理解在实际删除文件之前重命名文件最多30次的概念。尽管数据被覆盖而变得模糊,但简单地删除文件并不会删除文件系统中与文件相关的目录项(例如NTFS)。正如您发布的链接所证明的,有时已删除文件的目录条目仍然可以挂在NTFS的可用空间中 因此,由于文件名本身可能包含敏感信息,多次重命名文件有助于模糊原始名称。当然,这取决于底层文件系统的实现。事实上,我无法直接回答您的问题,但您不必覆盖数据或FS条目30次 德

我一直在审查一些保护删除文件安全的应用程序。我理解用零和随机字符多次覆盖文件的概念;但是,我不理解在实际删除文件之前重命名文件最多30次的概念。

尽管数据被覆盖而变得模糊,但简单地删除文件并不会删除文件系统中与文件相关的目录项(例如NTFS)。正如您发布的链接所证明的,有时已删除文件的目录条目仍然可以挂在NTFS的可用空间中


因此,由于文件名本身可能包含敏感信息,多次重命名文件有助于模糊原始名称。当然,这取决于底层文件系统的实现。

事实上,我无法直接回答您的问题,但您不必覆盖数据或FS条目30次

德国《计算机技术》杂志(c't)发表了一篇关于这一主题的论文。这篇文章的精髓在于覆盖数据一次就足够了

c't文章(德语):

有关论文的信息(英文):


毕竟,将文件重命名为/tmp/tmp_文件(或其他文件)并在删除之前用随机数据或零覆盖它就足够了。

这听起来不像是编程问题。如果确实如此,请尽快澄清。如果这不是一个编程问题,那么这就是superuser.com或serverfault.com的问题。我正在开发一个C#应用程序来执行安全删除。我只是想得到一些关于删除文件30次重命名的反馈。谢谢你的反馈。我会尝试你建议的一些网站。虽然对杂志作者来说,覆盖一次就足够了,但对大多数PCI QSA(审计员)来说,这还不够。如果你能指出一个发布此类数据的政府机构,那么你可能有一个案例。你的意思是审计人员有基于神话的期望?我的意思是:他们没有证据表明覆盖一次是不够的,不是吗?我认为他们说“覆盖30次,因为一次可能不够”,但由于他们没有证据表明一次不够,他们也没有证据表明30次就足够了。那太疯狂了。我只是猜测,证明我是错的。