gitリポジトリを合理的にすばやく粉砕する方法は?

gitリポジトリを合理的にすばやく粉砕する方法は?

合理的な時間内にgitリポジトリを正確に削除したいと思います。

しかし、そうするには時間がかなりかかります。ここには5MiB未満のフォルダを持つ小さなテストリポジトリがあります.git

$ du -ac ~/tmp/.git | tail -1
4772    total
$ find ~/tmp/.git -type f | wc -l
991

デフォルトのオプションを使用するとshred時間がかなりかかります。次のコマンドは--force権限を変更し、--zeroスマッシング後に0で上書きされました。基本的な破砕方法は、任意のデータ(-n3)で3回上書きすることです。

後でこのファイルも削除したいと思います。man shredによると--remove=wipesync、(デフォルトで--remove使用されている場合)ディレクトリでのみ動作しますが、ファイルでのみ動作しても速度が遅くなるようです。比較してください(gitリポジトリを再初期化するたびに):

$ time find ~/tmp/.git -type f | xargs shred --force --zero --remove=wipesync
real    8m18.626s
user    0m0.097s
sys     0m1.113s

$ time find ~/tmp/.git -type f | xargs shred --force --zero --remove=wipe
real    0m45.224s
user    0m0.057s
sys     0m0.473s


$ time find ~/tmp/.git -type f | xargs shred --force --zero -n1 --remove=wipe
real    0m33.605s
user    0m0.030s
sys     0m0.110s

もっと良い方法がありますか?


編集する:はい、暗号化が重要です。今はただ使っています-n0

time find ~/tmp/.git -type f | xargs shred --force --zero -n0 --remove=wipe    
real 0m32.907s
user 0m0.020s
sys     0m0.333s

64本の平行線を使用するshreds

time find ~/tmp/.git -type f | parallel -j64 shred --force --zero -n0 --remove=wipe
real    0m3.257s
user    0m1.067s
sys     0m1.043s

ベストアンサー1

忘れてくださいshred。無駄な仕事をしながら多くの時間を費やして本質を逃すことになります。

shred20~30年前のディスク技術と高価な実験室機器を使用すれば(少なくとも理論上は)上書きしたデータを回復することが可能なため、ランダムデータで何度も上書きしてファイルを削除します(「Gutterman削除」)。最新のディスク技術では、もはやそうではありません。ゼロで一度上書きすることもできますが、複数のランダムパスのアイデアは廃止された後も持続します。バラよりhttps://security.stackexchange.com/questions/10464/why-is-writing-zeros-or-random-data-over-a-hard-drive-multiple-times-better-th

一方、機密情報の消去は消去とshred指示されたファイルのデータのみを消去するため、完全に失敗します。以前に削除されたファイルに保存されているすべてのデータは、ファイルシステムを介さずにディスクに直接アクセスして回復できます。 Gitツリーのデータは再構成するのは簡単ではありませんが、これは実際の脅威です。

一部のデータをすばやく消去するには、データを暗号化してください。あなたはそれを使用することができます暗号化されたファイルシステム(ホームディレクトリ暗号化)または環境ファイルシステム(ディレクトリツリー暗号化)またはDMパスワード(フルパーティション暗号化)またはその他の方法。データを消去するには、キーを消去するだけです。

また、見ることができますディレクトリやファイルが実際に削除されたことをどのように確認できますか?

おすすめ記事