web-dev-qa-db-ja.com

ファイルを完全に消去する

私の知る限り、ハードドライブには、各ファイルのデータは含まれていませんが、そのファイルを示すファイルの表があります。

ファイルを削除すると、そのレコードはファイルテーブルから削除されますが、データはコンピューター上に残ります。

したがって、問題は、ファイルのデータを上書きする場合、たとえば、WriteFile Win APIを使用してすべてのデータをゼロで上書きすると、回復不能になるでしょうか。

27
GuestBro

はい、そうです。ただし、常にEdgeケースが存在する可能性があります。

  • SSDはウェアレベリングなどを行っており、ほとんどの場合、元のデータが書き込まれたのと同じセルにゼロを書き込みません。もちろん、攻撃者がどのようにしてそのデータを見つけてアクセスするかは、まったく別の問題です。
  • 従来の回転HDDでは、ディスクがデフラグされたため、元のデータが他のセクターに存在する可能性があります。または、OSは、ファイルを統合するために、書き込み時にファイルを再配置することを決定する場合があります。少なくともOS/2がそのために使用していましたが、現在のWindowsバージョンがまだそれを実行しているかどうかはわかりません。
  • NTFSはディレクトリ構造btreeに小さなファイルを直接格納します。これにより、データがディスクの周りにコピーされる可能性があります。
  • oSがシステムスナップショットなどを作成した可能性があります。
45
manduca

したがって、問題は、ファイルのデータを上書きする場合、たとえば、WriteFile Win APIを使用してすべてのデータをゼロで上書きすると、回復不能になるでしょうか。

WIN APIのWriteFileを使用して安全に削除しないでください。代わりに、SysInternals sdeleteなどの安全な削除ツールを使用してください。

WriteFileを使用するだけの場合、オペレーティングシステム/ファイルシステムには、新しいデータ(たとえば、nullバイトの束など)をディスク上の新しいブロックに書き込み、マスターファイルテーブルを更新して新しいブロックを指すオプションがあります。古いブロックではありません。元のファイルデータを上書きしたことは保証されません(ディスク全体と同じ大きさのファイルを書き込むためにWriteFileを使用する場合を除く)。

17
hft

100%信頼できる方法でファイルを破棄する1つの方法は、パージできる別のHDDパーティションに保存するか、さらには、破壊する余裕がある別のメディアに保存することです。

それが実用的でない場合は、ファイルがencryptedのみに保存されるようにすることをお勧めします。 「破棄」する必要があるときは、キーを忘れるだけで済みます。ファイルが完全に上書きされない原因となるEdgeのケースを気にする必要はありません。

安全性の低い次の代替策は、あなたがtrustというファイルシュレッダーを使用することです。正しく実装されている場合、ファイルに関連付けられているディスク上のすべてのセクターを追跡し、上書きします。もちろん、あなた、あなたのOS、またはあなたのOSまたはあなたのストレージコントローラーが知らないデータのコピーを破壊することはできません(一時ファイル、スワップ、ディスクのデフラグなどを考えてください)。一般に、セキュリティ監査の対象となったツールの料金を支払うことだけが理にかなっています。

次に、単にファイルを上書きするという考えが出てきます。 100%安全ではありませんが、既製の削除取り消しツールを使用してデータを確実に回復不能にすることができます。実際の多くの状況では、これで十分です。

13

事実上、そうです。ファイルが使用するブロックを上書きすると、ファイルを回復できなくなります。

これは、Windowsでは sdelete 、Linuxでは shred を使用して実行できます。

12
gowenfawr

安全にそれを行うには、何をしているのかを知る必要があり、OS、ファイルシステムタイプ、ファイルシステムオプション(ジャーナリング、圧縮、自己デフラグ、冗長性、TRIMサポート)、自動バックアップの有無によっては、タスクがかなり困難になる場合があります。 、ストレージメディアの種類(SSD、正直なところHDD、SMR付きHDD)、もっともらしい否認の必要性(またはその欠如)...

そして最も重要なのは、潜在的な不利な行為者の能力と動機。

最初のコメントのリンクを参照してください。

4
fraxinus