Windows 標準コマンドで完全にディスク消去する方法

昨今の個人情報保護の関連もありますし、なにより自分が使っていたハードディスクを中古で売ったりするのであれば、なおさらのこと、中に入っていたデータは確実に消去したいものです。

さて、今日は時間もあるので、パソコン関連の使っていないパーツ類を整理することにしました。ここ1年間で使わなかったパーツ類は問答無用で捨てるというルール。コレは必要かなぁ〜と考え出すと全部捨てられないので・・・(;^_^A

・・・使っていないハードディスクが2つも出て参りました。

160GB と 80GB とこのご時世としては容量が極端に少ないので売り払うことに。
となれば、ハードディスクのデータは完全に消去しておきたいものです。いろいろ探してみたのですが、CD イメージ形式でリブートして・・・なんてのは面倒くさい。何より CD を焼く行為が面倒くさい。再起動する手間が面倒くさい。

調べていたら cipher.exe ってコマンドの存在を知りました。Windows 2000、XP Pro、Server 2003、Vista Business、Vista Ultimate の OS 標準コマンドとして使えるコマンドです。僕が使っている OS は Vista Ultimate なので標準コマンドでディスクの完全消去が可能ってわけです。コレコレ。この手軽さが良いです。

- スポンサーリンク -

調べていて大いに参考になったサイトは下記の通りです。特に、Cybernetic Survival Network の記事は奥が深い検証がなされていて素晴らしく参考になりました。

話を戻します。 Cybernetic Survival Network の検証結果によると、ファイルフォーマットが NTFS 形式の場合は、cipher.exe で消去したディスクを市販のツールでも復元することができなかったとのこと。逆に FAT 形式の場合は復元できてしまうようです。

上記結果を信じるならば、消去対象の HDD が NTFS ならば cipher.exe で必要十分なわけですね。自分で検証するのも面倒なので cipher.exe で消すことにしました。

ちなみに cipher.exe の説明自体は MS のサポートセンターの説明がわかりやすいです。cipher.exe には暗号機能以外にデータ上書き機能があって、それを利用することでディスクの削除が可能というわけです。

Cipher.exe を使用すると、NTFS ファイル システムを使用するドライブ上のデータの暗号化および解読や、ファイルおよびフォルダの暗号化ステータスの表示を、管理者がコマンド プロンプトから実行することができます。Windows 2000 用の Cipher ツールの更新版がリリースされています。この更新版は Windows XP にも含まれています。更新版では、新しいセキュリティ オプションとして、削除済みのデータが復元されてデータにアクセスされないようにデータを上書きする機能が追加されています。
ファイルまたはフォルダを削除しても、データはすぐにはハード ディスクから削除されません。代わりに、削除されたデータによって使用されていたディスク上の領域が "割り当て解除" されます。割り当て解除された領域は、ディスクに新しいデータが書き込まれるときに使用されます。この領域が上書きされるまでは、低レベルのディスク エディタやデータ回復ソフトウェアを使用して、削除済みのデータを回復することが可能です。
プレーン テキスト ファイルを作成して暗号化する際には、暗号化処理中にエラーが発生してもデータが失われないように、暗号化ファイル システム (EFS) によってファイルのバックアップ コピーが作成されます。バックアップ コピーは、暗号化の完了後に削除されます。他の削除済みファイルと同様、このデータも上書きされるまで完全には削除されません。Cipher ユーティリティの新しいバージョンは、このようなデータが無断で復元されることがないように設計されています。

さらに cipher.exe の消去アルゴリズムについては、@IT:Windows TIPS の説明が詳しいです。3回上書きモードで消去するようです。僕の経験からして、削除アルゴリズムの中では結構強力な部類に入ると思います。その分時間がかかるけど・・・

/w オプションを付けて実行すると、cipherは、ディスクの空き領域いっぱいになるように、ある特定のパターンのデータを3回ファイルに書き込み、最後にそれを消去する。最初の1回はオール0(バイト・データとしては0x00)を書き込み、次はオール1(バイト・データとしては0xff)を書き込み、そして最後にランダムなデータを書き込む。3回書き込むのは、(磁気記録メディアにおける)残留磁気などの影響をなくすためであり、米国防総省(DOD)などで決められた消去手順である。例えば1回だけ0を書き込むとすると、それ以前の磁気データのパターン(1か0)に応じて、どうしてもわずかながらもゆらぎが生じる(もちろんこれはアナログ的なミクロの視点で見た場合の磁気データ・パターンの話であり、デジタル的には正しく0になっている)。また、メディアの記録方式によっては、常に同じ位置に書き込まれるわけではなく、多少の位置のずれが生じ、以前のデータがわずかながらも残っている可能性がある。このような影響を極力除くため、最初にデータを1回書き込み、次はその反転データを書き込み、さらにランダムなデータを書き込むようにしている。実用上はこれで十分であろう。これよりも確実性を求めるなら、さらに何度か繰り返すとか、ディスクを物理的に破壊するしかない。


随分と前置きが長くなってしまいました・・・。以下、cipher.exe を使ってディスク消去した実行ログです。

  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。次に、[名前] ボックスに cmd と入力てコマンドプロンプトを起動します。
  2. コマンドプロンプトからcipher /? と入力して、/w オプションが使用可能かを調べます。/w の説明が表示されていればディスク消去機能が使用可能です。
    G:\>cipher /?
    NTFS パーティション上のディレクトリ [ファイル] の暗号化を表示または変更します。
    
      CIPHER [/E | /D | /C]
             [/S:ディレクトリ] [/B] [/H] [パス名 [...]]
      CIPHER /K
      CIPHER /R:ファイル名 [/SMARTCARD]
      CIPHER /U [/N]
      CIPHER /W:ディレクトリ
      CIPHER /X[:EFS ファイル] [ファイル名]
      CIPHER /Y
      CIPHER /ADDUSER [/CERTHASH:ハッシュ | /CERTFILE:ファイル名]
             [/S:ディレクトリ] [/B] [/H] [パス名 [...]]
      CIPHER /REMOVEUSER /CERTHASH:ハッシュ
             [/S:ディレクトリ] [/B] [/H] [パス名 [...]]
      CIPHER /REKEY [パス名 [...]]
    
        /B        エラーが発生した場合に中断します。既定では、CIPHER はエラーが発生しても実行を続行します。
        /C        暗号化されたファイルに関する情報を表示します。
        /D        指定されたファイルまたはディレクトリの暗号化を解除します。
        /E        指定されたファイルまたはディレクトリを暗号化します。後で追加されたファイルが暗号化されるようにディレクトリをマークします。親ディレクトリが暗号化されていない場合、暗号化されたファイルは、変更されるときに暗号化を解除されます。ファイルおよび親ディレクトリを暗号化することをお勧めします。
        /H        隠しファイルやシステム属性のファイルを表示します。既定ではこれらのファイルは省略されます。
        /K        EFS で使用するための新しい証明書およびキーを作成します。このオプションが指定されると、その他のオプションはすべて無視されます。
        /N        このオプションは /U でのみ動作します。このオプションにより、キーが更新されなくなります。ローカル ドライブ上のすべての暗号化ファイルを探すために使用されます。
        /R        EFS 回復エージェント キーと証明書を作成してから、それらを.PFX ファイル (証明書と秘密キー) と .CER ファイル (証明書のみ) に書き込みます。管理者は、ユーザーの回復エージェントを作成するために .CER の内容を EFS 回復ポリシーに追加し、個々のファイルを回復するために .PFX ファイルをインポートすることができます。SMARTCARDが指定されている場合は、回復キーと証明書をスマート カードに書き込みます。.CER ファイルが生成されます (証明書のみ)。.PFX ファイルは生成されません。
        /S        指定されたディレクトリとすべてのサブ ディレクトリに対して指定された操作を実行します。
        /U        ローカル ドライブのすべての暗号化ファイルを参照しようとします。これにより、現在のユーザーのファイル暗号化キー、または回復エージェント キーに変更があった場合、これらが更新されます。このオプションは /N 以外の他のオプションでは動作しません。
        /W        ボリューム全体で利用可能な未使用のディスク領域から、データを削除します。このオプションを選んだ場合は、他のオプションはすべて無視されます。ローカル ボリューム上のどの場所にあるディレクトリでも指定することができます。ディレクトリがマウント ポイントである場合、または別のボリュームのディレクトリを指し示す場合は、そのボリュームのデータが削除されます。
        /X        EFS 証明書とキーのバックアップをファイルのファイル名に作成します。EFS ファイルが指定されている場合は、暗号化に使われている現在のユーザーの証明書のバックアップが作成されます。指定されていない場合は、ユーザーの現在の EFS 証明書とキーのバックアップが作成されます。
        /Y        ローカル PC 上の現在の EFS 証明書を縮小表示します。
        /ADDUSER  指定された暗号化ファイルにユーザーを追加します。CERTHASH が指定されている場合は、この SHA1 ハッシュを含む証明書が検索されます。CERTFILE が指定されている場合は、ファイルから証明書が抽出されます。
        /REKEY    構成済みの EFS の現在のキーを、指定した暗号化ファイルで使用するように更新します。
        /REMOVEUSER     指定されたファイルからユーザーを削除します。CERTHASHは削除する証明書の SHA1 ハッシュである必要があります。
    
        ディレクトリ  ディレクトリのパスです。
        ファイル名    拡張子を伴わないファイル名です。
        パス名        パターン、ファイル、またはディレクトリを指定します。
        EFS ファイル  暗号化されたファイルのパスです。
    
        パラメータを指定せずに CIPHER を実行すると、現在のディレクトリとディレクトリに含まれるすべてのファイルの暗号化状態を表示します。複数のディレクトリ名やワイルドカードを指定できます。複数のパラメータを指定する場合は、パラメータをスペースで区切ってください。
    
  3. まずは、消去したいハードディスクのドライブ名を良く確認します。今回削除したいのは G: ドライブです。

    img01.jpg

  4. コマンドを入力して ENTER を押すと問答無用で処理が始まります。消去するコマンドは、
    cipher /W:ドライブ名:
    cipher /W:ドライブ名:\フォルダ名
    
    です。1つ目はドライブ全体を消去するコマンド。2つ目はあるフォルダ配下のみを消去するコマンドです。今回の削除対象のドライブ名は G: です。細心の注意を払いながら
    cipher /W:G:
    
    と入力。即座に 0x00 でのデータ上書きが開始されました。

    img02.jpg

以上で G: ドライブのディスクの消去が完了しました。 80GB の消去で約4時間半ほどかかりました。その間パソコンの電源を切るわけにも行かないので、結構暇を持て余しちゃいますね。こりゃ。

cipher.exe によるディスク消去は、数ある消去ツールの中でも時間がかかる部類のモノかと思います。

おしまい。

- スポンサーリンク -