9

ファイルが復元できないように、(C++ を使用して) 機密ファイルを削除したいと考えています。

ファイルを単純に書き換えてから削除することを考えていましたが、それで十分ですか、それとももっとアクションを実行する必要がありますか?

4

6 に答える 6

4

ここに興味深い論文があります:

http://www.filesystems.org/docs/secdel/secdel.html

ファイルの上書きに関するいくつかの問題に対処します。特に、新しく書き込まれたデータが同じ場所に書き込まれたかどうか、また (最新のメディアでは) ほんの数回または 1 回でも上書きされたデータを回復することは不可能であることを確認することはできません。

于 2011-09-08T11:11:57.490 に答える
4

最悪の場合、ドライブを物理的に破壊しなければ、確実に実行できません。停電などで変更が中断された場合に災害復旧を可能にするために、ファイルを変更するたびに元のファイルシステムを保持するジャーナリングファイルシステムで実行している可能性があります。これは、ファイルを変更すると物理ドライブに移動し、古い場所は変更されないことを意味する場合があります。

さらに、一部のファイルシステムは、古いバージョンを復元できるように、意図的にできるだけ長く保持します。たとえば、Windows のシャドウ ストレージ コピーを考えてみましょう。システムの復元ポイントの一部であるファイルの一部であるディスク ブロックを変更すると、新しいデータが新しいブロックに書き込まれ、古いブロックは保持されます。

ファイル、ディレクトリ、またはディスク全体のシャドウ ストレージ コピーを無効にする API があります (詳細がわからないため、管理者権限が必要になる場合があります)。

もう 1 つの落とし穴は、ファイル システム レベルの圧縮です。ファイルをランダムなデータで上書きすると、論理サイズが同じであっても、ファイルの圧縮性が低下し、ディスク上で大きくなる可能性があります。したがって、ファイルシステムはそれを再配置する必要があるかもしれません。Windows が新しい大きなファイルの開始に古いブロックを引き続き使用することを保証するかどうかは、私には分かりません。ゼロで上書きすると、圧縮性が高くなり、新しいデータが古いデータの最後まで届かない可能性があります。

ドライブがデフラグされたことがある場合 (IIRC Windows は現在、デフォルトでこれをバックグラウンドで実行しています)、ファイルに対して何を行っても、以前の場所にあるデータのコピーには必ずしも影響しません。

shredおよび同様のツールは、これらのかなり一般的な条件下ではまったく機能しません。

要点を広げると、すべての変更がジャーナル処理され、将来のロールバック リカバリのためにバックアップされ、オフサイト バックアップにできるだけ早くコピーされるカスタム ファイル システムを想像できます。私はそのようなシステムを知りません (もちろん、同じ基本的な効果を持つファイルシステム レベルの上で実行される自動バックアップ プログラムはあります) が、Windows には確かに、「OK、ファイルを削除できます」と言う API がありません。オフサイト バックアップを今すぐ」というのは、Windows がそれが起こっていることを認識していないためです。

これは、新しいデータで上書きされた後でも、磁気ディスク上のデータを検出できる特別なキットを誰かが持っている可能性を考える前の話です。このような攻撃が最新のディスクで実際にどの程度妥当であるかについては、意見が分かれています。ディスクは非常に高密度に圧縮されているため、古い値の残差を格納するスペースがあまりありません。しかし、実際には、ほとんどの実際の状況では、ドライブをアンマウントして低レベルのツールを使用して各セクターを上書きしない限り、古いデータを上書きすることさえ確実にできないため、これは実際には学術的なものです。

そうそう、フラッシュドライブは良くありません。仮想メモリのように、論理セクターから物理セクターへの再マッピングを実行します。これは、障害のあるセクターに対処したり、ウェアレベリングを実行したりできるようにするためです。したがって、低レベルであっても、特定の番号付きセクターを上書きしたからといって、将来、古いデータが他の番号付きセクターに表示されないわけではありません。

于 2011-09-08T11:44:32.627 に答える
1

0 と 1 は、実際には 0 と 1 ではありません。残留磁気やその他の手法 (コンテンツを保持しようとしているユーザーが使用しているとは思えません) を使用して、上書きされたデータを復元できます。

このエントリを見てください。あなたが探しているものかもしれません。

編集:

私の声明をバックアップするには:

ハード ドライブに上書きされたデータを復元する標準的な方法の 1 つは、ドライブの読み取り/書き込みヘッドから取得したアナログ信号をデジタル化する前に、このアナログ信号をキャプチャして処理することです。このアナログ信号は理想的なデジタル信号に近くなりますが、その違いによって重要な情報が明らかになります。理想的なデジタル信号を計算し、それを実際のアナログ信号から減算することにより、減算後に残った信号を増幅し、それを使用して以前にディスクに何が書き込まれたかを判断することができます。

于 2011-09-08T11:10:33.200 に答える
0

まともな乱数ジェネレーターまたはガベージを生成する暗号関数を使用して、ランダムに生成されたバイトを使用して上書きする必要があります。

すべてが確実に上書きされるようにするには、削除されたファイルの同じメモリ領域を数回上書きします。

于 2011-09-08T11:04:11.117 に答える
-1

上書きする前に、まずデータを細断処理す​​ることをお勧めします。したがって、メモリアドレスを取得して場所を交換します。その後、データを上書きします。

于 2011-09-08T11:09:53.660 に答える