ディスクのデータ消去(HDD・Linuxコマンド編)

パソコンを廃棄したり、売ったり、譲ったりする場合、ディスク(HDDやSSDなど)のデータを消去しておかないと、重要な情報が漏洩してしまう可能性がある。
特に、個人情報や社外秘のデータを記録したことがあるディスクに対するデータ消去は必須。

しかし、単純にファイルを削除したり、ディスクをフォーマットしただけでは、きちんとデータ消去した状態とは言えない。
データ復旧ソフトを使用したり、専門の業者に依頼すれば、データが復元できてしまう場合がある。
データを復元できなくするには、別のデータで上書きして、元データの解析が困難な状態にする必要がある。

基本的に、別のデータで上書きする操作は、ディスクの全領域に対して行うため、非常に時間が掛かる。
どれくらい掛かるかは、ディスクの容量やデータの書き込み回数によるが、大容量のディスクで、書き込む回数が多いほど時間が掛かる。
上書きする回数が多いほど、元データの復元は困難になるが、際限がないので、費用対効果を鑑みて決める必要がある。
規格化されているデータ消去方式として、以下のようなものがある。

ゼロライト方式データ領域をゼロで上書きする。
ランダムライト方式データ領域を乱数で上書きする。
ランダム&ゼロライト方式データ領域を乱数で上書きした後、さらにゼロで上書きする。
米国国家安全保障局準拠方式(NSA)データ領域を乱数で2回上書きした後、さらにゼロで上書きする。
米国国防総省準拠方式(DoD5200.28-M)データ領域を固定値⇒ゼロ⇒乱数の順番で上書きする。
米国国防総省準拠方式(DoD5220.22-M)データ領域をゼロ⇒固定値⇒乱数の順番で上書きして、最後に書き込み検証を行う。
米国空軍準拠方式(AFSSI5020)データ領域を固定値⇒ゼロ⇒固定値(値はランダム)の順番で上書きして、最後に10%の書き込み検証を行う。
米国海軍準拠方式(NAVSO P-5239-26-MFM/NAVSO P-5239-26-RLL)データ領域を固定値⇒固定値(1回目とは違う値)⇒乱数の順番で上書きして、最後に書き込み検証を行う。
ドイツ標準方式(VSITR)データ領域に対して、ゼロ⇒固定値の上書きを3回繰り返して、最後に別の固定値で上書きする(合計7回上書き)。
グートマン推奨方式データ領域に対して、乱数を4回、固定値を27回、さらに乱数を4回上書きする(合計35回上書き)。

以降では、Linuxでデータ消去する方法を記載する。
なお、以下のコマンドはHDDを想定したもので、SSDの場合はメーカーが提供しているユーティリティを使う。
また、間違って実行してしまった場合、消えたデータを復元することはまず不可能な状態になるため、作業は慎重に行う必要がある。


対象ディスクのデバイスファイル名を調べる

# ディスクのデバイスファイル名を調べる
fdisk -l

# ディスクの詳細を表示
hdparm -I /dev/sda


HDDのデータ消去(ディスク領域の上書き)

# shred コマンド
# 乱数を2回上書きして、最後にゼロ埋め
sudo shred -n 2 -z -v /dev/sda

# ゼロ埋めのみ
sudo shred -n 0 -z -v /dev/sda

---------------------------------------------------------------
# dd コマンド(shredコマンドが使えない場合)
# データを複数回上書きする場合、コマンドを複数回実行する

# 乱数で上書き
sudo dd if=/dev/urandom of=/dev/sda

# ゼロ埋め
sudo dd if=/dev/zero of=/dev/sda

タイトルとURLをコピーしました