* NIXシステムでファイルを細断処理する安全な方法は次のとおりです。
shredder.sh
#!/bin/bash
# Define number of rewrites
COUNT=20
# Define file size
FILE_SIZE=`wc -c < "$1"`
# Begin rewriting file
while [ $COUNT -ge 0 ]
do
# Write random data to file
echo `dd if=/dev/urandom bs=1 count="$FILE_SIZE"` > $1
COUNT=$(( $COUNT - 1 ))
done
ファイルは正しいオフセット(開始点)で書き換えられていますか?
それを行うためのより短く、より良く、よりポータブルな方法はありますか?
いいえ、長距離ではありません。
あなたがやろうとしていることは不可能なので、あなたが失敗しているのは当然のことです。最もひどい問題は、ファイルを上書きしようとさえしていないことです:… > $1
は、最初にファイルを切り捨てて、そのすべてのブロックを空きとしてマークし、次にコマンドの出力を新しく割り当てられたブロックに書き込みます。新しく割り当てられたブロックが、ファイルから割り当てられたばかりのブロックになる理由はありません。
実行した場合dd if=/dev/urandom bs=1 count="$FILE_SIZE" of="$1"
それならこの障害を克服するでしょう。このファイルのコピーを上書きしたことを確認できます。ただし、ファイルの他のコピーは、次のように他の場所に存在する可能性があります。
データを消去する安全な方法は、1日目からディスク全体を暗号化することです。次に、データを回復できないようにするには、通常、明確に定義された場所に保存されているキーをワイプするだけです。できれば、実際のキーをディスクに保存しないでください。人間の介入でマシンが起動する場合は、強力なパスフレーズを使用してください。キーが人の介入なしに起動する場合は、スマートカード、または後悔することなく物理的に破壊できる安価なUSBキーまたはSDカードにキーを保存します。
上で説明したように、攻撃者がハードウェアアクセスを持っているか、SSDのファームウェアをハッキングできる場合、SSD上のデータを単に上書きしても、データが回復不能になるとは限らないことに注意してください。 SSDが機能する場合は、SSDの安全な消去機能を使用する必要があります(残念ながら、一部のSSDモデルはこの機能を備えていると主張していますが、実際にはデータを消去しません)。
スクリプトは、必ずしも真実ではない仮定を行います。
編集:上記は、スクリプトの問題の大まかなリストとしてのみ考慮されるべきです。私はセキュリティの質問に完全に無知ではありませんが、ファイルを編集するときの一時的なコピー、リモートサーバーへの送信、さまざまなキャッシュ、スワップスペース、ジャーナル、その他多くのことや私が知らないことなど、ここでは処理されないケースがたくさんありますの。
考えられる対策((常に)100%安全ではない):