Windows上ハードディスクを完全消去する方法

概要

  • 不要になったHDDを処分すべく完全消去しようと思ったものの、Windows上で実行する方法が分からなくて困った。有償ソフトはあるようだが、この種のツールはわざわざ買うものでも無いし、発売元が微妙に信用できそうに無いところばかりというのがなんとも...
  • 以前はHDD消去専用に古いPCを確保していたので、wipe-outを使ってFreeBSDで起動して、NSA方式(R->1->0)で3回上書き -> ベリファイ(完全) -> 消去ログを書き込みで問題なかったが、廃棄してしまったのでもう使えない。せっかくなので、これを機に手順を確立しておくことに。

NIST SP800-88

  • セキュリティを生業にするものとしては、最初に参照すべきは米国NISTのガイドラインです。消去レベルは三段階(Clear/Purge/Sanitize)定義されているが、個人利用のHDDならClearで十分でしょう。最低限の措置として、固定データの書き込み・検証を1回実行すると定められている。具体的な手続きは「組織で合意せよ」となっているのはこの種のガイドラインの定番ですね。
  • PurgeにあるSECURE ERASEを調べてみたが、Windows上でお手軽に試せるものでは無さそうなので今回は諦める。DEFT Linuxならあるいはと思ったが、サイト自体が無くなっていたというオチは勘弁して欲しい。これ結構困るのですが、何があったの!?
ATA Hard Disk Drives This includes PATA, SATA, eSATA, etc
Clear:
Overwrite media by using organizationally approved and validated overwriting technologies/methods/tools. 
The Clear pattern should be at least a single write pass with a fixed data value, such as all zeros. 
Multiple write passes or more complex values may optionally be used. 

Purge: Four options are available:
2. Use the ATA Security feature set’s SECURE ERASE UNIT command, if support, in Enhanced Erase mode. 
The ATA Sanitize Device feature set commands are preferred over the over the ATA Security feature set 
SECURITY ERASE UNIT command when supported by the ATA device.
  • SSDについては、書き込みデータ量が寿命に直結するので、固定データの書き込みは要注意。現実的には、SECURE ERASE一択でしょう。とはいえ、Firmwareやコマンドのバグまで考えたらキリが無いので、SSDについては寿命まで使い切った上で、物理破壊が正解だと思います。システムTEMPにするとか、使い道は結構ありますし。
ATA Solid State Drives (SSDs) This includes PATA, SATA, eSATA, etc.
Clear:
1. Overwrite media by using organizationally approved and tested overwriting technologies/methods/tools. 
The Clear procedure should consist of at least one pass of writes with a fixed data value, such as all zeros. 
Multiple passes or more complex values may alternatively be used.
Note: It is important to note that overwrite on flash-based media may significantly reduce the effective 
lifetime of the media and it may not sanitize the data in unmapped physical media 
(i.e., the old data may still remain on the media).
2. Use the ATA Security feature set’s SECURITY ERASE UNIT command, if supported.

方針 (diskpart + Bitlocker/Veracrypt)

  • 現実的にはSeagateが紹介してるdiskpartコマンドを使う方法がお手軽なのだが、検証する方法が無い。コマンドが正常終了したことをもって、おそらく削除されたはずと思うしか無いのが悩ましいけど、そこまで気にしても仕方ないと割り切った方が速いか。
  • 検証する代わりに、削除完了後にBitlockerやVeracrypt等のハードディスク暗号化ソフトを使って全体を暗号化して正常に完了したことを確認する。その上で、暗号化の秘密鍵を破棄するという方法を採用しましょうか。クラウド上のストレージを解約する時の常套手段でもあるし、結果的にランダムで上書きすることになるので気分的にも十分でしょう。
  • HDDの処分は頻繁にする作業では無いけど、いざやろうとすると面倒なので、手のひらサイズの小型PCを1台確保しておくべきだろうか。Raspberry Piだとパワー不足なので、別のハードウェアを探しておこうと思います。
  • 手順はシンプルで、管理者権限でコマンドプロンプトを開いて、diskpartコマンドを実行するだけ。その後、VeracryptのVolume Creation Wizardでnon-system partitoin全体をフォーマットするだけである。所要時間は計測していないけど、少なくとも4TBで8時間以上、6TBで12時間以上はかかったはず。寝る前とか外出前に実行して、気がついたら終わってることを期待するしかありません。diskpartはプログレスが全く表示されないのも困る。

手順(diskpart)

f:id:cutxout:20190928202849j:plain

Microsoft DiskPart バージョン 10.0.17134.1

Copyright (C) Microsoft Corporation.
コンピューター: cutxout

DISKPART> list disk

  ディスク      状態           サイズ   空き   ダイナ GPT
  ###                                          ミック
  ------------  -------------  -------  -------  ---  ---
  ディスク 0    オンライン           931 GB      0 B
  ディスク 1    オンライン           476 GB      0 B
  ディスク 2    オンライン          5589 GB      0 B        *

DISKPART> select disk 2

ディスク 2 が選択されました。

DISKPART> list disk

  ディスク      状態           サイズ   空き   ダイナ GPT
  ###                                          ミック
  ------------  -------------  -------  -------  ---  ---
  ディスク 0    オンライン           931 GB      0 B
  ディスク 1    オンライン           476 GB      0 B
* ディスク 2    オンライン          5589 GB      0 B        *

DISKPART> list partition

  Partition ###  Type                Size     Offset
  -------------  ------------------  -------  -------
  Partition 1    予約                 128 MB    17 KB
  Partition 2    プライマリ             5588 GB   129 MB

DISKPART> help clean

     フォーカスされたディスクからすべてのパーティション フォーマットまたは
     ボリューム フォーマットを削除します。

構文:  CLEAN [ALL]

    ALL         ディスク上のすべてのバイトおよびセクターをゼロに設定するように
                指定します。これにより、そのディスクに格納されている
                すべてのデータが完全に削除されます。

    マスター ブート レコード (MBR) ディスクでは、MBR パーティション情報と
    隠しセクター情報だけが上書きされます。GUID パーティション テーブル
    (GPT) ディスクでは、プロテクティブ MBR を含む GPT パーティション情報が
    上書きされます。ALL パラメーターを使用しない場合、最初の 1 MB と最後の
    1 MB がゼロに設定されます。これにより、以前にディスクに適用された
    フォーマットは消去されます。ディスクの消去の後、ディスクの状態は
    未初期化になります。

例:

    CLEAN

DISKPART> clean all

DiskPart はディスクを正常にクリーンな状態にしました。

手順(veracrypt)

f:id:cutxout:20190928205034j:plainf:id:cutxout:20190928205037j:plainf:id:cutxout:20190928205039j:plainf:id:cutxout:20190928205044j:plainf:id:cutxout:20190928205047j:plainf:id:cutxout:20190928205050j:plainf:id:cutxout:20190928205053j:plainf:id:cutxout:20190928205056j:plainf:id:cutxout:20190928205059j:plain