あらゆるタイプまたは形式のファイルを安全にワイプしたいのですが、明らかFile.Delete
にC#のコマンドは安全ではありません。
最近のファイル システム (つまり、FAT32 よりも新しい) はジャーナリング ファイル システムであり、データを回復するため、この種の削除を試行すると問題が発生する可能性があることを説明した投稿をここで思い出したようです (しかし、もう一度見つけることはできません!)。昔よりずっと簡単です。
さらに読んだ後、次のようなアイデアがあることを読みました。
- ランダムな 256 ビット暗号鍵を生成します。
- FileA を FileB に暗号化します。
- 新しいランダムな 256 ビット暗号化キーを生成します。
- FileB を FileA に暗号化します。
- パラノイアのレベルに合わせて、これを n 回繰り返します。
- File.Delete を使用して、FileA と FileB を削除します。
これは、ファイル内のデータを何度も何度も暗号化/再暗号化するための論理的な方法のように思えますが、これは決して回復または再利用できないキーですが、これは実際に安全な方法ですか? ファイル システムは、元のコンテンツが確実に上書きされるように、同じ場所/クラスターでファイルを上書きしますか (ファイルのコンテンツは暗号化/再暗号化の対象となるため、明らかにファイルは大きくなります)?