場合によっては、ファイルシステムからファイルを削除し、そのファイルが実際に消えたかどうかを確認する必要があります。たとえば、重要なパスワードを含むファイルはディスクから完全に消去する必要があります。
通常のファイルシステムで単純なコマンドを実行すると、rm
ファイルのinode(「ポインタ」)は削除されますが、削除しないでください物理ディスク上のファイルの内容 - これらの内容は、ファイルシステムに空き容量が必要なときに上書きされるまで残ります。
多くのファイルシステムでシュレッドプログラムこの安全な削除を実装してください。ただし、CoWファイルシステム(例:btrfs)ではこの方法は機能しません。ファイルがボリュームスナップショットに存在する可能性があるため、問題はさらに悪化します。
安全に削除する方法はありますか?1つの文書btrfsファイルシステムで?すべてのボリュームのすべてのポインタを削除すれば十分ですか?利用可能なスペースをゼロで埋める?
答え1
安全な削除は、すべてのファイルシステムで難しい作業です。ファイルシステムが非常に特別で、周囲にファイルの他のコピーがないことを保証しない限り、デバイスの空き領域をすべて消去する必要があります。記録中にコピーファイルシステム内の多くのビットのファイルを見つける可能性が高くなりますが、実際にはより多くの「静的」ファイルシステムはこの保証を提供しません。なぜなら、多くのファイルが編集され、古いバージョンのビットがあるからです。文書はどこにでもあります。
ゼロでクリアするのは、任意のバイトでクリアするのと同じくらい良いので、何度もクリアする必要はありません。 1980年代のハードドライブ技術を使用すると、ラボ条件下でゼロワイプで残された残りのデータを部分的に回復できますが、今日はもはやそうではありません。バラよりハードドライブに0(またはランダムデータ)を1回だけ書き込むよりも何回も書き込む方が良いのはなぜですか?
ディスク上のすべてを暗号化して、プレーンテキストの機密データを削除できます。設定する暗号化されたファイルシステムこのファイルシステムのボリュームを選択し、すべての(機密)ファイルをこのファイルシステムに移動します。次に、ファイルシステムで使用されていないすべてのスペースを上書きします。ファイルシステムをcat /dev/zero >zero
。不完全なブロック(ファイルの最後のチャンクを含むブロック、その後にいくつかのゴミ(おそらく機密ファイルの残りの部分)を含むブロック)にいくつかの情報が残っている可能性があります。不完全なブロックがないことを確認するには、ファイルシステムのすべてをecryptfsに移動します(ecryptfsファイルは、少なくとも4kBの一般的な設定でブロック全体を使用します)。これをすべてのボリュームに適用し、プレーンテキストの機密データを含むすべてのスナップショットを削除します。
日記帳にはまだ情報が残っている可能性があります。どのように消去するのかわかりません。
SSDでは、ブロックの再割り当てにより、一般的なソフトウェア手段では読み取れないデータが残される可能性がありますが、ファームウェアのクラッキングや物理的なアクセスを介して回復することができます。唯一の方法は、SSDを完全に消去することです。
答え2
まあ、btrfsは一般的なスマッシング方法をすべて上回っているようです...
- というインストールオプションがありますが、
nodatacow
すでに存在するファイルには影響しないようです。 - すでにディスクに敏感なファイルがあるので、btrfs FAQ入力しても役に立ちません。
- その後、
debugfs
extファイルシステムでのみ機能しますが、修理する効果があるかもしれませんから。これを使用して影響を受けるブロックアドレスを見つけて、/ dev / sdXYで直接上書きできます。ただし、これは非常に危険であり、機能しない可能性があります(特にファイルにさらにスナップショットがある場合)。 - 特定のスナップショットまたはファイル全体の変更(またはスマッシング)を可能にするbtrfsパッチの作成
非常に機密性の高いデータに対する最もクリーンな試みは次のとおりです。
- 別のディスクを購入する(最初のディスクに影響を受けるパーティションのコピーを保存するのに十分な空き容量がない場合)
- フルディスク暗号化とファイルシステムの設定
- aドライブの内容をすべてbドライブにコピーします。
- システムbから起動し、ディスク全体aを破砕します。
この方法は最も安い方法ではないかもしれませんが、今日の低い保管コストと他のオプションによる手間を考慮すると、実際には(人件費の面で)最も安くなります。
答え3
Unix / Linuxで利用可能ですshred(1)
(ディストリビューションパッケージに存在する必要があります)。私はEFFですおすすめ。