/ dev / [u] randomよりも速い方法はありますか?時々、私は次のようなことをする必要があります
cat / dev / urandom> / dev / sdb
ランダムなデバイスは「あまりにも」安全であり、残念ながら遅すぎます。wipe
安全な削除を行うための同様のツールがあることは知っていますが、Linuxにはオンボードの手段もいくつかあると思います。
/ dev / [u] randomよりも速い方法はありますか?時々、私は次のようなことをする必要があります
cat / dev / urandom> / dev / sdb
ランダムなデバイスは「あまりにも」安全であり、残念ながら遅すぎます。wipe
安全な削除を行うための同様のツールがあることは知っていますが、Linuxにはオンボードの手段もいくつかあると思います。
回答:
ハードドライブ(またはファイル)の「安全な」消去を行う場合は、shredユーティリティを確認する必要があります。
前のポスターが指摘しているように、/ dev / * randomデバイスは、ランダムなデータの小さな塊のソースとして使用されることを意図しています。
残念ながら、Linuxにはurandomの不適切な実装があります。CPUがAES-NI(ハードウェアアクセラレーション)をサポートしている場合、ランダムキーでaes256-ctrを使用し、1秒あたり数百メガバイトの擬似ランダム性を取得できます。同様に、現代的なアプローチへのランダムな切り替えも楽しみにしています。
openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero > randomfile.bin
この子犬は私のボックスで1.0 GB / sを実行します(14 MB / sの/ dev / urandomと比較)。ランダムパスワードを作成するためだけにurandomを使用し、そのキーを使用して/ dev / zeroの非常に高速な暗号化を行います。これは暗号で保護されたPRNGである必要がありますが、保証はいたしません。
pv
すてきな進行状況インジケーターをパススルーします。openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero | pv -pterb > /dev/sdb
。
pv
推奨事項に追加するだけで、パイプを使用pv -pterb -s $(blockdev --getsize64 /dev/sdb) >/sdb
してpv
書き込みの完了に向けた進捗状況を表示できます。
T2500 CPUを搭載したThinkpad T60pでのUbuntu 8.04での簡単なテストでは、からの1GBのランダムデータopenssl rand
が3〜4倍高速/dev/urandom
でした。あれは、
time cat /dev/urandom | head -c 1000000000 > /dev/null
...約4分でしたが...
time openssl rand 1000000000 | head -c 1000000000 > /dev/null
... 1分強でした。
ランダムな品質に違いがあるかどうかはわかりませんが、どちらかがおそらくHDワイピングには適しています。
ランダムデータを使用することは重要ではないという多くの回答があります。ドライブを消去するだけなら、それは事実ですが、ディスク暗号化の準備のために消去する場合はそうではありません。
デバイスにランダムでないデータを入力した場合、暗号化されたパーティションをデバイスに配置すると、問題が発生する可能性があります。暗号化されたデータを保存しているドライブの部分は、暗号化されたデータがランダムに見え、残りはそうではないため、ドライブの残りの部分から目立ちます。これは、暗号化ディスクのクラッキングに使用される可能性のある暗号化ディスクに関する情報を判断するために使用できます。以下のリンクは、より一般的な攻撃のいくつかがどのように機能するか、そしてそれらに対して防御する方法の背後にある理論を説明しています(とにかくLinuxで)。
巨大なブロックデバイスを消去したい場合dd
は、ランダムデータの出力リダイレクトの代わりに、デバイスマッパーを使用する方が堅牢であることがわかりました。以下は、その間の透明な暗号化と復号化にマッピング/dev/sdb
さ/dev/mapper/deviceToBeErased
れます。暗号化された側でデバイスをいっぱいにするために、ゼロがマッパーのプレーンテキスト側にコピーされます(/dev/mapper/deviceToBeErased
)。
cryptsetup --cipher aes-xts-plain64 --key-file /dev/random --keyfile-size 32 create deviceToBeErased /dev/sdb
dd if=/dev/zero of=/dev/mapper/deviceToBeErased bs=1M
AESに深刻な脆弱性/dev/sdb
がない場合、暗号化されたデータはランダムデータと区別できないことが保証されます。使用されるキーは取得されます(心配しないでください-32バイトしか使用しません)。/dev/random
ツールが高速になるほど、結果の安全性は低下します。適切なランダム性を生成するには時間がかかります。
とにかく、dd if = / dev / zero of = / dev / sdbのようなものを使用できますが、明らかにそれはランダムではなく、はるかに速く消去されます。
別のオプションは、この方法を使用することです/ sbin / badblocks -c 10240 -s -w -t random -v / dev / sdbそれはurandomより高速ですが、badblocks PRNGはランダムではありません。
/dev/random
多くのシステムエントロピーを使用するため、遅いデータストリームのみを生成します。
/dev/urandom
安全性は低く、高速ですが、それでもデータの小さなチャンクを対象としています-高速乱数の連続ストリームを提供することを意図したものではありません。
独自のデザインのPRNGを作成し、/dev/random
またはから何かをシードする必要があり/dev/urandom
ます。少しランダムにする必要がある場合は、数MB(またはprngの長さ)ごとに定期的にシードしてください。urandomまたはrandomから4バイト(32ビット値)を取得するのは十分に速いので、1kのデータごとにこれを実行し(1kごとにprngを再シード)、非常にランダムに結果を取得できますが、非常に迅速に処理を実行できます。
-アダム
ハードドライブをすばやく消去する場合は、非ランダムデータを書き込みます。これは、ランダムデータを使用する場合と同じくらい安全です。いずれにしても、コンピューターに接続すると、元のデータを読み取ることができません。ハードドライブデータの上書き:大規模なワイピングの論争は、元のデータも顕微鏡を使用して読み取ることができないことを示しています。
LUKSでフォーマットし、暗号化されたボリュームをddします。次に、/ dev / urandomを使用してLUKSヘッダーを消去します。
ハードウェアAESサポートがある場合、これは非常に高速なソリューションです。
簡単に:
cryptsetup luksFormat /dev/sdX
cryptsetup luksOpen /dev/sdX cryptodev
dd if=/dev/zero bs=1M of=/dev/mapper/cryptodev
cryptsetup luksClose cryptodev
# wipe the luks header. Yes, it uses /dev/urandom but only for 2MB of data:
dd if=/dev/urandom bs=1M count=2 of=/dev/sdX
できた!
私のブログをご覧ください: ディスクをランダムビットで(/ dev / urandomなしで)すばやく埋めます
ハードドライブを消去する場合、ddは再割り当てされたセクターのコンテンツを削除せず、ハードドライブが死にかけている場合は非常に遅くなります。代わりに、長い間標準化されているドライブビルドの消去機能を使用できます。
この例では、わずか102分で500GBの機械式ハードドライブを消去しています。再割り当てされたセクターでいっぱいの場合でも:
root@ubuntu:~# hdparm --security-set-pass Eins /dev/sdaj
security_password="Eins"
/dev/sdaj:
Issuing SECURITY_SET_PASS command, password="Eins", user=user, mode=high
root@ubuntu:~# time hdparm --security-erase-enhanced Eins /dev/sdaj
security_password="Eins"
/dev/sdaj:
Issuing SECURITY_ERASE command, password="Eins", user=user
real 102m22.395s
user 0m0.001s
sys 0m0.010s
root@ubuntu:~# smartctl --all /dev/sdaj | grep Reallocated
5 Reallocated_Sector_Ct 0x0033 036 036 036 Pre-fail Always FAILING_NOW 1327
で詳細を見ることができます ata.wiki.kernel.orgで、その例では--security-erase-enhancedを使用していません。これは、前述の再割り当てセクターを削除するために必要です。
「シュレッド」ユーティリティは簡単で高速です。ドライブのSMART属性が、再割り当てされたセクターがゼロであることを示している場合、「シュレッド」はおそらく十分に安全です。
ただし、ドライブにセクターが再割り当てされている場合、破損したセクターのデータは上書きされません。破損した場所に再割り当てされる前に機密データが含まれていた場合、「シュレッド」では十分でない可能性があります。「不良」セクターは、ドライブの割り当てマップをリセットし、(繰り返し)読み取ることで読み取ることができます。
不良セクタ割り当てマップをリセットする機能は、製造元とドライブモデルによって異なります。
ディスクを上書きするだけなら、フォレンジックラボに勝るものは何もありません。そのレベルのリソースを停止するためにドライブをスラッギングする以外には何も信用しません。 。
すべてゼロまたは1のような非ランダムソースまたは次のような繰り返しパターンを使用します(これはうまくいくと思います)
(head -c 4096 /dev/urandom; cat /dev/sdb/) > /dev/sdb