【问题标题】:Secure Wiping of files in Compact FrameworkCompact Framework 中文件的安全擦除
【发布时间】:2010-07-18 10:36:21
【问题描述】:

给定一个字符串的路径,我想清除文件的内容。我认为的自然方式(可能不正确)是打开文件流并写入乱码(随机数据可能取自 RNGCryptoServiceProvider)。然后可能会这样做几次,然后删除文件。

我的问题是,虽然这在逻辑上看起来是正确的,但我在另一个博客上读到 Windows 可能实际上选择将文件写入硬盘中的不同位置。

Windows Mobile 是这样吗?这真的会是一个问题吗?这种写入硬盘中不同位置的操作是否适用于基于闪存的(SD 等)卡?

【问题讨论】:

  • 我不确定,但 SD/SSD 等设备的磨损均衡固件可能会使它们容易受到此影响。
  • @Marc:是的,卡中的磨损均衡肯定会让他们非常容易受到影响。板载闪光灯也是如此。
  • 所以只是用 1 和 0 多次覆盖文件并不能确保文件被安全覆盖?

标签: c# windows-mobile filestream security


【解决方案1】:

我没有亲自这样做,但您可能需要使用低级 FLASH 驱动程序 IOCTL 才能正确执行此操作。

http://msdn.microsoft.com/en-us/library/aa927166.aspx

我觉得IOCTL_FMD_RAW_WRITE_BLOCKS 看起来特别有用。

-保罗赫


另一种可行的方法是正常擦除文件,然后使用碎片整理 API 擦除闪存上的所有可用空间。由于您正在擦除所有内容,因此无需确切知道文件在磁盘上的位置。但是,这会更快地耗尽您的闪存驱动器。这篇博文详细介绍了 C# 方法:http://blogs.msdn.com/b/jeffrey_wall/archive/2004/09/13/229137.aspx

【讨论】:

  • 他需要找到文件所在的块才能使用它,而且如果它在像 CF/SD 卡这样的挂载存储上,这将无法作为卡可能正在进行磨损均衡,您没有对数据所在位置的原始写入访问权限。
  • @ctacke - 碎片整理 API [msdn.microsoft.com/en-us/library/aa365731%28v=VS.85%29.aspx]? SDelete [technet.microsoft.com/en-us/sysinternals/bb897443] 用于定位磁盘上的文件。
  • 这个问题是关于 Windows CE / Windows Mobile 所以没有碎片整理 API。
  • @ctacke - 坚果。 @Ranhiru Cooray - 对不起,伙计。你可能是 SOL。
猜你喜欢
  • 2011-06-29
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-09
  • 2010-10-18
  • 1970-01-01
相关资源
最近更新 更多