■sdaを削除する方法とする。
機密度と時間を考慮の上、削除方式を決める。
「HD革命/Eraser」の説明が分かりやすい。「DiskDeleter」は難しい事をしてるんですね。
といいつつワンライナー。
オプションで受け取って分岐でそれぞれ実行出来るようすれば
もっと簡単に選択出来そうだけど、今日は止めておこう。。。
消去方式はどのようなものがありますか
http://www1.ark-info-sys.co.jp/support/hder/before/eraser2before03.html
データ消去「DiskDeleter」に搭載されている15種類の消去方式
http://www.diskdeleter.jp/%E6%B6%88%E5%8E%BB%E6%96%B9%E5%BC%8F%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/
■MBRの消去
書き込み回数:1,消去レベル:最低
$ sudo dd if=/dev/zero of=/dev/sda bs=512 count=1
$ man2html /usr/share/man/ja/man1/shred.1.gz | \
w3m -dump -T text/html | grep -A 2 "^shred \-"
shred - ファイルを上書きし、その内容が分からないようにする (追加でファイルの削
除も可能)
■0で消去
書き込み回数:1,消去レベル:低
$ sudo dd if=/dev/zero of=/dev/sda
■乱数値で消去
書き込み回数:1,消去レベル:低
$ sudo dd if=/dev/random of=/dev/sda
$ sudo dd if=/dev/urandom of=/dev/sda
■NSA方式
書き込み回数:3,消去レベル:中
乱数2回、ゼロ書き1回
$ su root -c 'dd if=/dev/random of=/dev/sda; \
dd if=/dev/random of=/dev/sda ; \
dd if=/dev/zero of=/dev/sda'
■米国陸軍方式
書き込み回数:3,消去レベル:中
乱数1回、(0xff)1回、(0x70)1回
yes p | tr -d '\n' | dd if=/dev/stdin of=/dev/sda; \
yes $(echo "-1" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}') | tr -d '\n' | dd if=/dev/stdin of=/dev/sda
■米国陸軍方式の仕組み
$ yes p | tr -d '\n' | dd if=/dev/stdin bs=512 count=1 | hexdump -C
1+0 レコード入力
1+0 レコード出力
512 バイト (512 B) コピーされました、 0.0244516 秒、 20.9 kB/秒
00000000 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 |pppppppppppppppp|
*
00000200
$ yes $(echo "-1" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}') | tr -d '\n' | dd if=/dev/stdin bs=512 count=1 | hexdump -C
1+0 レコード入力
1+0 レコード出力
512 バイト (512 B) コピーされました、 0.00945933 秒、 54.1 kB/秒
00000000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
*
00000200
■米国海軍方式
書き込み回数:3,消去レベル:中
(0xff)1回、(0x77)1回、(0x33)1回
yes w | tr -d '\n' | dd if=/dev/stdin of=/dev/sda; \
yes 3 | tr -d '\n' | dd if=/dev/stdin of=/dev/sda
$ yes w | tr -d '\n' | dd if=/dev/stdin bs=512 count=1 | hexdump -C
1+0 レコード入力
1+0 レコード出力
512 バイト (512 B) コピーされました、 4.7682e-05 秒、 10.7 MB/秒
00000000 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 |wwwwwwwwwwwwwwww|
*
00000200
$ yes 3 | tr -d '\n' | dd if=/dev/stdin bs=512 count=1 | hexdump -C
1+0 レコード入力
1+0 レコード出力
512 バイト (512 B) コピーされました、 1.2499e-05 秒、 41.0 MB/秒
00000000 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 |3333333333333333|
*
00000200
■米国国防総省方式
書き込み回数:3,消去レベル:高
(0xff)1回、(0x77)1回、乱数1回
yes w | tr -d '\n' | dd if=/dev/stdin of=/dev/sda; \
dd if=/dev/urandom of=/dev/sda'
■米国国防総省準拠方式 DoD5220.28-M消去方式
(0xff)1回、(0x00)1回、乱数1回
# yes $(echo "-1" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}') | tr -d '\n' | dd if=/dev/stdin of=/dev/sda; \
dd if=/dev/zero of=/dev/sda; \
dd if=/dev/urandom of=/dev/sda
■米国空軍方式 AFSSI5020消去方式
(0x00)1回、(0xff)1回、乱数で上書きし、最後に10%書き込み検証
書き込み検証はshredの進捗状況オプションと読み替えて、
10%は自身で計算するものとして100Gだと。。。
# dd if=/dev/zero of=/dev/sda; \
yes $(echo "-1" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}') | tr -d '\n' | dd if=/dev/stdin of=/dev/sda; \
dd if=/dev/urandom of=/dev/sda; \
shred -n 1 -s 100G -v /dev/sda
■米国国防総省準拠方式 DoD5220.22-M消去方式
(0x00)1回、(0xff)1回、乱数で上書きし、最後に書き込み検証
# dd if=/dev/zero of=/dev/sda; \
yes $(echo "-1" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}') | tr -d '\n' | dd if=/dev/stdin of=/dev/sda; \
dd if=/dev/urandom of=/dev/sda; \
shred -n 1 -v /dev/sda'
■国海軍方式 NAVSO P-5239-26-MFM消去方式
(0x01)1回、(0x7fffff)1回、乱数で上書きし、最後に書き込み検証
root権限で実行。
yes $(echo "-129" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}'; \
echo "-1" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}'; \
echo "-1" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}') | \
tr -d '\n' | dd if=/dev/stdin of=/dev/sda; \
dd if=/dev/urandom of=/dev/sda; \
shred -n 1 -v /dev/sda
$ yes $(echo "1" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}') | tr -d '\n' | dd if=/dev/stdin bs=512 count=1 | hexdump -C
1+0 レコード入力
1+0 レコード出力
512 バイト (512 B) コピーされました、 0.0191754 秒、 26.7 kB/秒
00000000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 |................|
*
00000200
$ yes $(echo "-129" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}'; \
echo "-1" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}'; \
echo "-1" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}') | \
tr -d '\n' | dd if=/dev/stdin bs=512 count=1
1+0 レコード入力
1+0 レコード出力
512 バイト (512 B) コピーされました、 0.0202601 秒、 25.3 kB/秒
00000000 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f |................|
00000010 ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff |................|
00000020 ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff |................|
00000030 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f |................|
00000040 ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff |................|
00000050 ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff |................|
00000060 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f |................|
00000070 ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff |................|
00000080 ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff |................|
00000090 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f |................|
000000a0 ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff |................|
000000b0 ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff |................|
000000c0 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f |................|
000000d0 ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff |................|
000000e0 ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff |................|
000000f0 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f |................|
00000100 ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff |................|
00000110 ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff |................|
00000120 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f |................|
00000130 ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff |................|
00000140 ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff |................|
00000150 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f |................|
00000160 ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff |................|
00000170 ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff |................|
00000180 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f |................|
00000190 ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff |................|
000001a0 ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff |................|
000001b0 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f |................|
000001c0 ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff |................|
000001d0 ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff |................|
000001e0 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f |................|
000001f0 ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff ff 7f ff |................|
00000200
■米国海軍方式 NAVSO P-5239-26-RLL消去方式
(0x01)1回、(0x27ffffff)1回、乱数で上書きし、最後に書き込み検証
yes $(echo "1" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}'; \
echo "-1" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}'; \
echo "-1" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}') | \
tr -d '\n' | dd if=/dev/stdin of=/dev/sda; \
shred -n 1 -v /dev/sda
$ yes $(echo "1" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}'; \
echo "-1" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}'; \
echo "-1" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}') | tr -d '\n' | dd if=/dev/stdin bs=512 count=1 2>/dev/null | hexdump -C
00000000 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 |................|
00000010 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff |................|
00000020 ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff |................|
00000030 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 |................|
00000040 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff |................|
00000050 ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff |................|
00000060 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 |................|
00000070 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff |................|
00000080 ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff |................|
00000090 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 |................|
000000a0 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff |................|
000000b0 ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff |................|
000000c0 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 |................|
000000d0 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff |................|
000000e0 ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff |................|
000000f0 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 |................|
00000100 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff |................|
00000110 ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff |................|
00000120 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 |................|
00000130 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff |................|
00000140 ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff |................|
00000150 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 |................|
00000160 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff |................|
00000170 ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff |................|
00000180 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 |................|
00000190 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff |................|
000001a0 ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff |................|
000001b0 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 |................|
000001c0 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff |................|
000001d0 ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff |................|
000001e0 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 |................|
000001f0 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff ff 01 ff |................|
00000200
■旧NSA方式 Bit Toggle消去方式
(0x00)1回、(0xff)1回、(0x00)1回、(0xff)1回
yes $(echo "-1" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}') | tr -d '\n' | dd if=/dev/stdin of=/dev/sda; \
dd if=/dev/zero of=/dev/sda; \
yes $(echo "-1" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}') | tr -d '\n' | dd if=/dev/stdin of=/dev/sda
■ドイツ標準方式 VSITR消去方式
(0x00)1回、(0xff)1回、(0x00)1回、(0xff)1回、(0x00)1回、(0xff)1回、(0xaa)1回
yes $(echo "-1" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}') | tr -d '\n' | dd if=/dev/stdin of=/dev/sda; \
dd if=/dev/zero of=/dev/sda; \
yes $(echo "-1" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}') | tr -d '\n' | dd if=/dev/stdin of=/dev/sda; \
dd if=/dev/zero of=/dev/sda; \
yes $(echo "-1" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}') | tr -d '\n' | dd if=/dev/stdin of=/dev/sda; \
yes $(echo "-0x56" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}') | tr -d '\n' | dd if=/dev/stdin of=/dev/sda
$ yes $(echo "-0x56" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}') | tr -d '\n' | dd if=/dev/stdin bs=512 count=1 | hexdump -C
00000000 aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa |................|
*
00000200
1+0 レコード入力
1+0 レコード出力
512 バイト (512 B) コピーされました、 0.00640119 秒、 80.0 kB/秒
■グートマン(Peter Gutmann)推奨方式
乱数を4回、その後固定値を27回、最後に乱数を4回
dd if=/dev/urandom of=/dev/sda; \
done; \
for m in `seq 1 27`;do \
yes $(echo "-1" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}') | tr -d '\n' | dd if=/dev/stdin of=/dev/sda; \
done; \
for n in `seq 1 4`;do \
dd if=/dev/urandom of=/dev/sda; \
done
■米国国防総省準拠方式DoD5220.28-M + グートマン(Peter Gutmann)推奨方式
(0xff)1回、(0x00)1回、乱数1回、乱数を4回、その後固定値を27回、最後に乱数を4回
dd if=/dev/zero of=/dev/sda; \
dd if=/dev/urandom of=/dev/sda; \
for l in `seq 1 4`;do \
dd if=/dev/urandom of=/dev/sda; \
done; \
for m in `seq 1 27`;do \
yes $(echo "-1" | awk '{printf "%c",$1}' | awk '{printf "%s",$1}') | tr -d '\n' | dd if=/dev/stdin of=/dev/sda; \
done; \
for n in `seq 1 4`;do \
dd if=/dev/urandom of=/dev/sda; \
done