-2

あらゆるタイプまたは形式のファイルを安全にワイプしたいのですが、明らかFile.DeleteにC#のコマンドは安全ではありません。

最近のファイル システム (つまり、FAT32 よりも新しい) はジャーナリング ファイル システムであり、データを回復するため、この種の削除を試行すると問題が発生する可能性があることを説明した投稿をここで思い出したようです (しかし、もう一度見つけることはできません!)。昔よりずっと簡単です。

さらに読んだ後、次のようなアイデアがあることを読みました。

  1. ランダムな 256 ビット暗号鍵を生成します。
  2. FileA を FileB に暗号化します。
  3. 新しいランダムな 256 ビット暗号化キーを生成します。
  4. FileB を FileA に暗号化します。
  5. パラノイアのレベルに合わせて、これを n 回繰り返します。
  6. File.Delete を使用して、FileA と FileB を削除します。

これは、ファイル内のデータを何度も何度も暗号化/再暗号化するための論理的な方法のように思えますが、これは決して回復または再利用できないキーですが、これは実際に安全な方法ですか? ファイル システムは、元のコンテンツが確実に上書きされるように、同じ場所/クラスターでファイルを上書きしますか (ファイルのコンテンツは暗号化/再暗号化の対象となるため、明らかにファイルは大きくなります)?

4

1 に答える 1

1

あなたのアプローチが必ずしも問題を解決するとは限りません。また、問題はファイルシステムのジャーナリングだけに存在するわけではありません。(古い DOS の削除取り消しツールがそれを示しています。)

最新のファイルシステムは、現在実行中のプログラムに対して透過的にいつでもファイルを移動する可能性があるため、ファイルの内容を調整しても、未使用とマークされたディスクのセクションにファイルの古いコピーを残さないという保証はありません。

OS をだまして古いデータを上書きできると信じるよりも、暗号化を直接使用する方がよいでしょう。

于 2013-06-05T23:47:40.173 に答える