任意のコンテンツを含む大容量ファイルを作成する:コピーしてショートカットを使用しますか?

任意のコンテンツを含む大容量ファイルを作成する:コピーしてショートカットを使用しますか?

cryptsetupを使用してファイルに保存されている大容量暗号化ドライブを作成したいとします。最初のステップは、任意のファイルを作成することです。サイズは3Tでなければならないとしましょう。

dd if=/dev/urandom of=$FILE bs=1G count=3000

上記のプロセスは時間がかかることがあります。次のショートカットが適切かどうか疑問に思います(セキュリティの観点からは、目標は$ FILEに保存されている暗号化ドライブを作成することです)。

  1. dd if=/dev/urandom of=$FILE bs=1G count=1000
  2. 上記のファイルの3つのコピーをコピーしてください。各ファイルのサイズは1Tで、同じランダムな内容を持っています。
  3. 3つのファイルをマージしてターゲットサイズが3Tの任意のファイルを1つ作成する

データが少し「少ない」ランダムなので、このプロセスは厳密ではないと思います。しかし、実用的な観点から見ると、これは実現可能なソリューションですか(ほぼ3倍速いでしょう)?これは0を使用して3Tファイルを作成するよりも優れていますか/dev/zero

ベストアンサー1

/dev/urandomこのように大量のデータを処理するには遅すぎます。

疑似ランダム性が十分に良い場合:

shred -v -n 1 /kill/me

暗号化された乱数が十分な場合:

cryptsetup open --type=plain /kill/me cryptkillme
shred -v -n 1 /dev/mapper/cryptkillme
cryptsetup close cryptkillme

暗号化も遅いですが、まだ/dev/urandom

shred任意のデータは、すべてのディスクに対して十分速く作成する必要があります。

また、このサイズでは、ファイルではなく通常のブロックデバイスを使用する必要があります。大容量ファイルをホストするファイルシステムが破損すると、このサイズのファイルが重大に断片化されることが多いため、断片化の問題により解決できない問題に直面します。

ファイルの使用に固執する場合は、最初からランダムなデータでいっぱいにならないことを検討できます。代わりに、スパースファイルを使用し、未使用領域の記憶領域を節約するためにファイルをトリミングまたはパンチすることができます。

暗号化されていない古いデータを上書きすることが目的である場合は、コンテナファイル自体だけでなく、ファイルシステムの利用可能なすべてのスペースも上書きする必要があります。目的の暗号化されていないデータと同じ場所に割り当てられているかどうかはわかりません。削除してください。

おすすめ記事