データの完全消去
データの完全消去とはハードディスク等の電子媒体内のデータを電子的にデータが残留しないように、特殊なハードウェアやソフトウェア等を用いた上書き処理で完全に削除する、コンピューターセキュリティ上の手法の一つ。
民生用向けでは、ハードディスク、フラッシュメモリの完全消去のための各種ツールが有名である。一方、電子媒体でも、光ディスク(CD/DVD/BD等)、光磁気ディスク(MO)の完全消去に関しては、必要性にもかかわらず、ハードディスク、フラッシュメモリほどには強調されていない。
オペレーティングシステム標準の削除コマンドや削除オペレーションは、通常、媒体上のデータ本体は消去せずに、が指し示すデータの格納場所の一か所に削除済みの印を付けるだけである(unlink (Unix))。そのため、単に削除したデータは、一般者利用のデータ復活ツール(市販品など)でも、復活できることが多い。
このように、データ削除により見かけ上は存在しなくなっても、媒体上にはデータの残骸が残存しているのであり、媒体が盗難等の理由により流出した際に、データの機密性の保持に問題が生じる。
今日のコンピューターセキュリティ上、データの残骸も含めて、「データの完全消去」を行う事が重要視されている。データの完全消去では、一般的には、前述のデータ復活ツールだけではなく、特殊な専門的解析装置を駆使しても、媒体からデータの復活が困難になるようにすることをも、目的とする場合もある。
なお、数1000ガウス以上の磁気をハードディスクに照射し、媒体ごと消磁する手法や、装置にドリルで穴を開けるなどの物理的破壊をする手法もある。それぞれ、コスト上の問題や、媒体面の記録を完全に失活できるか(後述)の問題がある。
データ消去の手法としては、デバイスに対して通常の方法により、記憶媒体の全ての記憶領域に対して無意味なデータを上書きする、いわゆるソフトウェア的な手法が一般的、効率的である。
単に 0000 0000 や 1111 1111(8ビットの2進数)などで上書きしただけでは、媒体面の残留磁気等の痕跡により元のデータが推測される可能性があると言う主張がある。
そのため、アメリカ合衆国政府や業界の標準規格では、書き込みするデータ列や、複数回の上書き処理を要求などの規定がある。一部の規格では、完全に消去されたことを確認するためのベリファイ(再確認)処理を要求するものもある。
なお、ハードディスクは装置や制御機構が故障してしまうと、装置や媒体を物理的破壊(磁気ディスクは消磁を含む)する以外に方法はなくなる。
情報システムには概して大量の機密データが保管されている場合がある。例えば姓名・住所・生年月日・電話番号や、クレジットカード情報、銀行・証券口座情報、医療機関受診記録などの一般的個人データのほか、司法機関の捜査情報や国家機密などである。これらのデータは通常ハードディスク上や遠隔地のサーバストレージに保管されている場合が多い。
情報システムの更新が行われるときには、機密データが保管されていたハードディスクが処分時に外部流出することもある。またノートパソコンや外部記憶装置(USBメモリー等)が盗難にあうことにより、外部流出する事態も考えられる。
このような場合に、記憶媒体上のデータが完全消去されずに流出したり改竄されたら、企業・組織の信用失墜や経済的ダメージは計り知れない。かかる事態を防ぐために、世界中の企業で年間500万ドルもの投資がなされているというデータもある。
企業・組織に対しては、機密情報の未承認流出のリスクを低減させるために、業界標準や政府規制の厳格適用が求められている。日本においては、これらの政府規制として個人情報保護法や日本版SOX法がある。これらの内部統制に違反することは企業価値を低下させるだけでなく、民事責任を問われたり、刑事罰に処されることもある。
データを完全消去する基本的な方法は、記憶媒体の全ての記憶領域に2進数の0と1のランダムな組み合わせを書き込む処理となる。完全消去処理のセキュリティレベルは、
部分の完全性。有意な情報が記録され得る媒体の部分が、あますところなく物理的に上書き処理されたか。
OSが稼働中の記憶媒体に対する消去という事は、この時点で完全性を欠いている。
処理の完全性。上書き処理が正しく行われたか、エラーが発生していないか。
残留情報不存在の完全性。媒体の記憶密度や特性に併せて、科学的知見から、元のデータを推測できる一切の電磁気学的情報が残存していないか。
に依存する。
この章では、媒体としてハードディスクだけを取り扱う。
通常のデータ消去プログラムは、ディスクの全領域のデータを別データに置き換えることを目的とするが、ディスクを上書きするプログラムは必ずしもすべての領域にアクセスできるわけではなく、例えばディスク上の隠しエリアや代替セクタ処理で退避された領域などにはアクセスすることが出来ず、そこに存在するデータが残ることになる。つまり、ディスク上の全ての領域にアクセスすることこそが、データ消去の完全性を高める手段であるともいえる。
データを完全消去するプログラムは、一般的なBIOSやOSのAPIではなく、ATAインターフェイス経由でハードディスクコントローラーと直接やり取りする必要がある。BIOSやOSのAPIを通してディスクにアクセスするタイプの消去プログラムは、特定のセクタをアクセスする命令をAPI経由で実行した時に、実際にはその特定セクタにアクセスしていないのに、あたかもアクセスが正常に終了したという回答をBIOSやOSのAPIから受け取ることがある。これらの事象が発生したとき、消去すべきデータを残存させてしまう危険性が極めて高くなる。
近年ではウエスタンデジタルやシーゲイト・テクノロジーなどのハードディスク製造メーカーが、コントローラを直接操作して全領域に上書き処理するソフトウェアを無償で配布している。
ネットワークを用いて複数のマシンで同時にデータの完全消去処理を行うことも出来る。DOSベースで製作されている完全消去プログラムはネットワークを用いた処理は出来ないが、Linuxベースで製作されたものはネットワーク越しにサーバやストレージエリアネットワーク(SAN)に接続されたSATAディスクやSASディスクをハンドリングすることが出来る。またセクタサイズが520,524,528でフォーマットされたディスクを512に戻すことも可能である。
データの完全消去を定めた政府規格や業界標準が複数種類か存在する。それら全ての規格が着目している主要ファクターは「上書き回数」である。いくつかの規格では削除処理のベリファイ(再確認)や上書きパターンの表示について定められている。完全消去処理には、隠しセクタ(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)は記憶領域の平準化による寿命延長のため、フラッシュメモリーよりも高度な管理が行われている。この仕様のためOS側で削除やフォーマットを行ってもデータが残存していることがある。
ただしTRIMコマンドが発行されてガベージコレクションが実行された後は、専門家でさえデータを回復できる可能性はほぼないとされていることから、一旦ドライブ全体をOS側で削除し、TRIMコマンドを実行することで完全消去に有効な手段となりうる。SSD管理ユーティリティには、このような動作を一括して行う機能もある。
ハードディスクと同様に利用開始時に暗号化や、利用後の物理破壊も効果的である。節stub
CD/DVD/BD等の光ディスクの場合。
追記型(CD-R、DVD-R、BD-Rなど)
1回書き込んでしまうと消去や上書きができない仕様なので、物理的破壊以外に有効な方法はない。
書換型(CD-RW、DVD-RW、DVD-RAM、BD-REなど)
CD-RW等については、ISO 9660やUDFに基づいてデータを上書きする必要がある。通常はライティングソフトウェアで処理する。
DVD-RAMについては、OSのファイルシステム経由で上書きが可能である。
いずれの場合も消去の完全性(部分、処理、残留情報不存在)について十分検証されていない。
光ディスクは単価が比較的安価な事から、廃棄の際には物理的破壊が推奨される場合が多い。それでも各種媒体ではよく、「割れば大丈夫」と言う論調があるが、完全消去と言う観点では、次の行為は不十分な処理である。記録層を粒子状に粉砕すれば完全消去が可能である。
光ディスクは1層、多くても2層の薄膜状の記録層を、樹脂表面に貼付けた構造である。記録層を高度な技術をもってカケラから剥離し繋ぎ合わせることで、専用の探索装置を用いて解析することにより、わずかな部分でもデータを復活させていくことも、不可能ではない(ハードディスクと違い、そのような事実の公表はない)。
分割して破砕する場合は、紙シュレッダーと同様に、破片が細かいほど記録面の復活が困難になる。ただし、記録密度は紙よりも遥かに高いことに注意が必要である。
これは全く不十分である。記録層に損傷が無い可能性が高く、樹脂表面をある程度の研磨技術により平らにすれば、すぐ読み取りが可能である。
上の面には記録層が貼付けてあるので、こちらに傷をつけるとよい(ただし、1層記録の場合)。前述の記録層の理由から、深いほど、細かいほどよい。2層記録の場合は割った方がよい。
ガムテープを使ってレーベル面を剥がして廃棄する
記録層は表面(ラベル面)のかなり近くにあり、そのためカッターナイフで表面に切れ込みを数ヵ所入れて、上からガムテープを貼り付けて剥がせば、テープ側に記録層がくっ付きバラバラに破壊できる。CDやDVDは処分時に自治体によって燃えるゴミ、プラスチック、資源ゴミのどの扱いなのかが異なるので、どの区分で捨てればよいか、あらかじめ調べておく必要がある。
なお、プレス式のCD-ROM、BD-ROM等については、追記・書換式の光学メディアと違い、プラスチック面に凹凸が記録されており、反射膜はレーザーを反射するために塗布されるだけである(なおプレスCD等はデータを多数配布するのが目的のため、データの完全消去と言う視点にはなじまない)。また、手でディスクを割ることは極めて危険な行為であり、破片が飛び散るおそれがあるため、市販品の使用上の注意には「手でディスクを割らないで下さい。破片が飛び散り、大変危険です。」などと記載されている場合があり、メーカーなどの業界でも注意を呼び掛けている。
光磁気ディスク(MO)については、OSのファイルシステム経由で上書きが可能である。消去の完全性(部分、処理、残留情報不存在)について十分検証されていない。
前述のとおり、代替セクターや不良セクター等も含めた全セクタに正しく上書き処理がなされるかどうかは、OSや装置に依存する。
下記にあげるファイルシステムを操作するコマンドでは、概ね、隠しセクターや代替処理されたセクターの上書き処理はなされない。
shredコマンドを用いる場合として
shred -n 3 -v /dev/sda1
SATAディスクの1つ目のパーティションに3回上書きした後、ゼロクリアをする例
shred -n 3 -z -v /dev/sda1
ファイル targetfile.txt に3回上書きする例
shred -n 3 -v targetfile.txt
dd コマンドを用いて、shredコマンドと同様の事(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
のように実行すればよい。
OS等が抜き取られて起動しない、破棄するコンピュータに内蔵されたハードディスクを完全消去する手法としては、CD起動できるKnoppix等を用いて、この節で示しているshredコマンドを用いるのが簡便であるが、Knoppixの場合、起動時にスワップパーティションを利用しないようにして起動するのが望ましい。起動コマンド例:『knoppix noswap』
CIPHERコマンドを用いてディスクの完全消去を行いたい場合、まずディスクをNTFSでフォーマットしなければならない。
CIPHERコマンドは、空き領域が無くなるサイズの単一の一時ファイルを作成し、その一時ファイルに対して完全消去動作を行う。なお制限事項として、FAT32で4GBを超えるパーティションでは、その4GBを超える部分が正しく消去されない。
D:ドライブの空き領域に対して3回上書きをする例
C:\>CIPHER /W:D:
「ハードディスクデータ完全消去装置」として販売されている機材は、強力な磁力を使った消磁または磁気破壊によるものと、ソフトウエアによる上書き処理で完全消去を行う装置が販売されている。
前者は短時間に多数のハードディスクを処理できるが、処理後のハードディスクは再使用できなくなる。
後者のソフトウエアによる上書き処理を行う装置としては、ハードディスク試験装置のような特殊機材がある。
これにはデータ消去機能が付属している事が多く、この種の装置はATAインターフェイス経由でハードディスクコントローラーと直接やり取りすることから完全消去が可能であるが、価格が数十万円以上する。また一般利用者向けには販売されている価格が数万円程度の廉価版も存在する。
。
Linux や Windows の「ごみ箱」を空にしても、完全消去はされない
「ごみ箱」を空にしても、データ格納場所の情報が削除されるのみで、データの痕跡は残留している。※ごみ箱を空にする前の、ごみ箱の中にあるファイルは完全なデータである。
Linux の rm コマンド、Windows や DOS の DEL コマンドは、完全消去を行わない
OS標準のファイル削除コマンドは、データ格納場所の情報が削除されるのみで、データの痕跡は残留している。
Linux の fdisk コマンド、mkfs コマンドでは、完全消去は行われない
これらのコマンドはゼロクリアを行わない。完全消去したい場合は、パーティション作成後にshredコマンドを用いるべきである。Windows(DOS)の FDISK と FORMATコマンドも同様である。
Linux でディスク全域をゼロクリアしても、完全消去となっていない可能性がある
dd if=/dev/zero of=/dev/sda
政府や業界の規格において、ゼロクリアは完全消去と認められない場合がある。shred コマンドを用いるべきである。
Windows XP/2000 の「ディスクの管理」や、ファイルエクスプローラでドライブ(パーティション)をフォーマットしても、完全消去は行われない
「クイックフォーマット」の選択如何に関わらず、ドライブ(パーティション)の全領域に上書き処理が行われるわけではないため、データの痕跡は残留している。完全消去したい場合は、パーティション作成後、CIPHER コマンドを用いるべきである。
稼働中のOSに一度でも接続したディスクは、完全消去が必要な可能性がある。
アプリケーションソフトウェアのなかには普通のユーザーがアクセスしない場所に処理用の一時的なファイルを作成するものがある。また、OS自体も、主記憶上の情報をディスク上の「スワップ領域」と呼ばれるユーザーがアクセスできない領域にファイルに書き込む。小さいサイズのファイルはディスクのデータ用領域には格納されない。このように情報がディスクのあちこちに分散する可能性があり、OSで扱ったデータの痕跡を一切全て消去するには、OSが保存されている領域を含めた全ての記憶領域について完全消去が必要である。フラッシュメモリをハードディスクのキャッシュとして用いるOSでも、フラッシュメモリに対して同様の事が言える。