データの完全消去

とはハードディスク等の電子媒体内のデータを電子的にデータが残留しないように、特殊なハードウェアやソフトウェア等を用いた上書き処理で完全に削除する、コンピューターセキュリティ上の手法の一つ。
民生用向けでは、ハードディスク、フラッシュメモリの完全消去のための各種ツールが有名である。一方、電子媒体でも、光ディスク(CD/DVD/BD等)、光磁気ディスク(MO)の完全消去に関しては、必要性にもかかわらず、ハードディスク、フラッシュメモリほどには強調されていない。
また、記憶媒体装置だけでなく、ルータなどの通信機器や、携帯電話端末などの携帯機器においてもフラッシュメモリを内蔵するものについては、その設定情報データの完全消去を怠ると、ネットワーク認証キーを含むさまざまな認証情報などの機密情報が漏洩するリスクがある。
概要.
オペレーティングシステム標準の削除コマンドや削除オペレーションは、通常、媒体上のデータ本体は消去せずに、ファイルシステムが指し示すデータの格納場所の一か所に削除済みの印を付けるだけである（）。そのため、単に削除したデータは、一般者利用のデータ復活ツール（市販品など）でも、復活できることが多い。
このように、データ削除により見かけ上は存在しなくなっても、媒体上にはデータの残骸が残存しているのであり、媒体が盗難等の理由により流出した際に、データの機密性の保持に問題が生じる。
今日のコンピューターセキュリティ上、データの残骸も含めて、「データの完全消去」を行う事が重要視されている。データの完全消去では、一般的には、前述のデータ復活ツールだけではなく、特殊な専門的解析装置を駆使しても、媒体からデータの復活が困難になるようにすることをも、目的とする場合もある。
なお、数1000ガウス以上の磁気をハードディスクに照射し、媒体ごと消磁する手法や、装置にドリルで穴を開けるなどの物理的破壊をする手法もある。それぞれ、コスト上の問題や、媒体面の記録を完全に失活できるか（後述）の問題がある。
手法など.
データ消去の手法としては、デバイスに対して通常の方法により、記憶媒体の全ての記憶領域に対して無意味なデータを上書きする、いわゆるソフトウェア的な手法が一般的、効率的である。
単に 0000 0000 や 1111 1111（8ビットの2進数）などで上書きしただけでは、媒体面の残留磁気等の痕跡により元のデータが推測される可能性があると言う主張がある。
そのため、アメリカ合衆国政府や業界の標準規格では、書き込みするデータ列や、複数回の上書き処理を要求などの規定がある。一部の規格では、完全に消去されたことを確認するためのベリファイ（再確認）処理を要求するものもある。
なお、ハードディスクは装置や制御機構が故障してしまうと、装置や媒体を物理的破壊（磁気ディスクは消磁を含む）する以外に方法はなくなる。そのため、数年単位のスパンで当面利用予定が無くなったストレージは、10年程度以上長期間経過して故障し上書きによる消去が不可能になる前に、早目にデータの完全消去を実施しておく方が望ましい。
重要性.
情報システムには概して大量の機密データが保管されている場合がある。例えば姓名・住所・生年月日・電話番号や、クレジットカード情報、銀行・証券口座情報、医療機関受診記録などの一般的個人データのほか、司法機関の捜査情報や国家機密などである。これらのデータは通常ハードディスク上や遠隔地のサーバストレージに保管されている場合が多い。
記憶媒体中にあるデータの消去手法.
データを完全消去する基本的な方法は、記憶媒体の全ての記憶領域に2進数の0と1のランダムな組み合わせを書き込む処理となる。完全消去処理のセキュリティレベルは、
に依存する。
ディスク全領域への上書き処理.
通常のデータ消去プログラムは、ディスクの全領域のデータを別データに置き換えることを目的とするが、ディスクを上書きするプログラムは必ずしもすべての領域にアクセスできるわけではなく、例えばディスク上の隠しエリアや代替セクタ処理で退避された領域などにはアクセスすることが出来ず、そこに存在するデータが残ることになる。つまり、ディスク上の全ての領域にアクセスすることこそが、データ消去の完全性を高める手段であるともいえる。
データを完全消去するプログラムは、一般的なBIOSやOSのAPIではなく、ATAインターフェイス経由でハードディスクコントローラーと直接やり取りする必要がある。BIOSやOSのAPIを通してディスクにアクセスするタイプの消去プログラムは、特定のセクタをアクセスする命令をAPI経由で実行した時に、実際にはその特定セクタにアクセスしていないのに、あたかもアクセスが正常に終了したという回答をBIOSやOSのAPIから受け取ることがある。これらの事象が発生したとき、消去すべきデータを残存させてしまう危険性が極めて高くなる。
近年ではウエスタンデジタルやシーゲイト・テクノロジーなどのハードディスク製造メーカーが、コントローラを直接操作して全領域に上書き処理するソフトウェアを無償で配布している。
完全消去を定めた規格.
データの完全消去を定めた政府規格や業界標準が複数種類か存在する。それら全ての規格が着目している主要ファクターは「上書き回数」である。いくつかの規格では削除処理のベリファイ（再確認）や上書きパターンの表示について定められている。完全消去処理には、隠しセクタ（Host Protected AreaやDevice configuration overlay）や代替セクタ処理で退避された領域の消去処理も要求される。
米国政府が定めたNational Industrial Security Program（NISP）の1995年版のオペレーティングマニュアルDoD 5220.22-Mでは、データの完全消去処理について「全てのマッピング可能なセクタに何らかの文字で上書きを行った後、その補数（0と1が逆のデータ）の文字で上書きを行い、さらにランダムな文字コードで上書き処理を行う」という手法を認めていたが、2001年にはトップ・シークレット情報を扱った記憶媒体の消去手法としては認定しない旨、決定された。現在、多くの民生市販のソフトウエアは、この手法を維持している。
データを完全消去するソフトウエアは、上書き処理が完全に行われたことを明確に表示しなければならない。また、隠しセクタを消去する機能を有し、消去漏れや書き込み不能セクタのログについては、これを出力できることが望ましい。
中途半端な物理的破壊.
中途半端に破壊されたハードディスクからデータを復活させることは可能な場合もある。たとえば、ドリルで穴を開けてプラッタを破壊したとしても、プラッタの残骸を最先端の残留磁気探索装置を用いて解析することにより、わずかな部分でも1ビットずつ手作業でデータを復活させていくことも出来る。ハードディスク・メーカーのシーゲイト・テクノロジーはそのような手法を保有していると公表している。
要求される上書き回数.
フロッピーディスクの場合、1回のみの上書きを行った消去手法が処された状態においては、残留磁気探索によってデータの析出を行うことができる。しかし、現在のハードディスクにおいては同様ではない。ハードディスクにおいて1ビットを記憶している領域は、フロッピーディスクに比べて遥かに小さく、記憶領域がトラック中心からずれている事を利用して残留磁気を検出するということは、ほぼ不可能である。
アメリカ国立標準技術研究所（NIST）が2006年に発表した「Special Publication 800-88」の7ページでは、次のように述べられている。『2001年以降の（15ギガバイト以上の）集積度の高いATAハードディスクにおいては、データの完全消去はディスク全域に1回のみ上書きすれば事足りる』。また「Center for Magnetic Recording Research」は『データの完全消去はディスクに対する1回の上書きのことである。アメリカ国家安全保障局も推奨要綱にて、同相信号除去比（CMRR）試験をした結果、複数回の上書きは何ら安全性の向上に有意な差をもたらさず、1回の上書きで十分であることを認めている』と述べている。
ハードディスク以外の記憶媒体の消去.
フラッシュメモリー.
USBメモリやメモリーカード（SDメモリーカード等）のデバイスについては、フラッシュメモリーの特性上、書込の前に記憶ブロックをいったん消去する必要がある。しかし、OSまたはデバイスのウェアレベリング機能により、同一のファイル（または論理ブロックアドレス）を上書き処理しても、フラッシュメモリー上の同一のブロックに書き込まれる保証はない。この機能が働く場合、単一のファイルへの上書き処理は、古いブロックにデータ痕跡が残ったまま新しいブロックに上書きされることになり、データ完全消去の意味を成さない。
そのため、後述の#オペレーティングシステムの標準コマンドを用いた消去処理の例の手法では、OSから見るとパーティションの全部や一部、またはファイルにデータの上書きを行なっているが、フラッシュメモリー内部では記憶ブロックの配置換えが頻繁に行われるため、ほとんど有効でない。
フラッシュメモリーの特性上、記憶ブロックをいったん消去する事は頻繁に行われるが、このブロック消去はデバイスの内部処理として行われるものであり、OSからの通常のデータ書込コマンドによって行われる保証はない。
逆に言うと、フラッシュメモリーデバイスの専用ツールを用いて、フラッシュメモリー全体に対して記憶ブロック消去コマンドを発行する処理は「Secure Erase」と呼ばれるが、それは、データの完全消去に有効な手段となりうる。ただし、記憶ブロックを消去した直後のフラッシュメモリーで、素子の物理的なレベルで情報が完全に消されているかどうかについては十分に研究されていない。
また、カリフォルニア大学サンディエゴ校の研究により、専用のハードウェアを用いれば、OSがアクセスできない場所にある一時データを読み取ることが可能だと判明した。このハードウェアは残留磁気探索装置に比べ遥かに安価に作れるため、OS上で行う消去では十分なセキュリティは保てない状況となっている。
SSD.
ソリッドステートドライブ（SSD）は記憶領域の平準化による寿命延長のため、フラッシュメモリーよりも高度な管理が行われている。この仕様のためOS側で削除やフォーマットを行ってもデータが残存していることがある。
ただしcodice_1コマンドが発行されてガベージコレクションが実行された後は、専門家でさえデータを回復できる可能性はほぼないとされていることから、一旦ドライブ全体をOS側で削除し、codice_1コマンドを実行することで完全消去に有効な手段となりうる。SSD管理ユーティリティには、このような動作を一括して行う機能もある。
ハードディスクと同様に利用開始時に暗号化や、利用後の物理破壊も効果的である。
光ディスク (CD等).
CD/DVD/BD等の光ディスクの場合。
光ディスクは単価が比較的安価な事から、廃棄の際には物理的破壊が推奨される場合が多い。それでも各種媒体ではよく、「割れば大丈夫」と言う論調があるが、完全消去と言う観点では、次の行為は不十分な処理である。記録層を粒子状に粉砕すれば完全消去が可能である。
ガムテープを使ってレーベル面を剥がして廃棄する
なお、プレス式のCD-ROM、BD-ROM等については、追記・書換式の光学メディアと違い、プラスチック面に凹凸が記録されており、反射膜はレーザーを反射するために塗布されるだけである（なおプレスCD等はデータを多数配布するのが目的のため、データの完全消去と言う視点にはなじまない）。また、手でディスクを割ることは極めて危険であり、破片が飛び散るおそれがあるため、市販品の使用上の注意には「手でディスクを割らないで下さい。破片が飛び散り、大変危険です。」などと記載されている場合があり、メーカーなどの業界でも注意を呼び掛けている。
光磁気ディスク(MO).
光磁気ディスク(MO)については、OSのファイルシステム経由で上書きが可能である。消去の完全性（部分、処理、残留情報不存在）について十分検証されていない。
オペレーティングシステムの標準コマンドを用いた消去処理の例.
前述のとおり、代替セクターや不良セクター等も含めた全セクタに正しく上書き処理がなされるかどうかは、OSや装置に依存する。
下記にあげるファイルシステムを操作するコマンドでは、概ね、隠しセクターや代替処理されたセクターの上書き処理はなされない。
Linux.
コマンドを用いる場合として
SATAディスクの1つ目のパーティションに3回上書きをする例
 shred -n 3 -v /dev/sda1
SATAディスクの1つ目のパーティションに3回上書きした後、ゼロクリアをする例
 shred -n 3 -z -v /dev/sda1
ファイル codice_3 に3回上書きする例
 shred -n 3 -v targetfile.txt
 コマンドを用いて、codice_4コマンドと同様の事（3回上書き及びゼロクリア）を行うには
 dd if=/dev/urandom of=/dev/sda1
 dd if=/dev/urandom of=/dev/sda1
 dd if=/dev/urandom of=/dev/sda1
 dd if=/dev/zero of=/dev/sda1
のように実行すればよい。
Windows 2000/XP.
codice_6コマンドを用いてディスクの完全消去を行いたい場合、まずディスクをNTFSでフォーマットしなければならない。
codice_6コマンドは、空き領域が無くなるサイズの単一の一時ファイルを作成し、その一時ファイルに対して完全消去動作を行う。なお制限事項として、FAT32で4GBを超えるパーティションでは、その4GBを超える部分が正しく消去されない。
codice_8ドライブの空き領域に対して3回上書きをする例
 C:\>CIPHER /W:D:
データ消去のための専用機器.
「ハードディスクデータ完全消去装置」として販売されている機材は、強力な磁力を使った消磁または磁気破壊によるものと、ソフトウエアによる上書き処理で完全消去を行う装置が販売されている。
前者は短時間に多数のハードディスクを処理できるが、処理後のハードディスクは再使用できなくなる。
後者のソフトウエアによる上書き処理を行う装置としては、ハードディスク試験装置のような特殊機材がある。
これにはデータ消去機能が付属している事が多く、この種の装置はATAインターフェイス経由でハードディスクコントローラーと直接やり取りすることから完全消去が可能であるが、価格が数十万円以上する。また一般利用者向けには販売されている価格が数万円程度の廉価版も存在する。
その他.
完全消去が出来ていない可能性の例.
 dd if=/dev/zero of=/dev/sda