私も知っています
dd if=/dev/urandom of=/dev/sdX bs=1M count=hdd_size_in_MB
任意のデータでディスク全体を消去できます。しかし、urandomは非常に遅いです。もしそうなら、CPUリソースを占めるTBのランダムデータを生成するのではなく、100MBから1000MBのランダムデータを生成してRAMに保存し、ディスクに何度も書き込むことができるかどうか疑問に思います。
どうすればいいですか?
答え1
いくつか:
- ランダムデータで何度も上書きすることでデータを回復できないようにするかどうかについて長い間議論がありました。これを推奨する文書は技術的に古くなっています。より深い議論のためには、以下を読んでください。https://security.stackexchange.com/questions/10464/why-is-writing-zeros-or-random-data-over-a-hard-drive-multiple-times-better-th/10474#10474(私はここのどこかにもっと長い言葉を話しました。要点は次のとおりです。ために戦うとにかく、ホワイトデータでオーバーレイするか、一定のデータで自己視点でオーバーレイするかはまったく重要ではありません。脅威モデルが電子顕微鏡とプロフェッショナルラボでゼロで覆われたハードドライブを読むのに数ヶ月を費やしている場合は、捨てないでください。完全な脅威モデルは奇妙です。 )
- 回復不可能であることを望む場合ランダム適用が役立つ場合短いシーケンスを選択して繰り返すと、アプローチを面白くする統計的攻撃にさらされます。
- いいえ
dd
。簡単なアプローチcat < /dev/urandom > /dev/sdX
は、カーネルに適切な読み取り/書き込みサイズを決定させることです。つまり、これらの書き込みはストレージ層によってバッファリングされます。そしてとにかく、ハードドライブ。 chacha20
カーネルでシングルスレッドを実行し、数kBごとにコンテキスト切り替えを実行する代わりに、opensslまたは同様のツールに静的シードを暗号化してディスクに書き込むように要求できます。chacha20
(または独自の乱数ジェネレータを作成してシードすることもできます。言い換えれば、ランダムカバレッジの全体的なアイデアは意味がありませんが、十分に大きな状態PRNGのシードを再構成することは、暗号学的に安全でなくても合理的に不可能でなければなりません。 .)
答え2
shred
coreutilsには、ファイルやデバイスをランダムに書き換えるためのコマンドがあります。デフォルトでは、これ--size
はファイルデバイス全体(パーティションなど)に適用されますが、指定され-s
たサイズを指定できます。
これは非常に効果的です。