Windows XP Professional のスタンドアロン環境 (ドメイン環境でないシステム) で暗号化ファイルシステム (EFS: Encrypting File System) を使う場合の注意点


〔目次〕  〔全項展開〕



秘密鍵をエクスポートしていないのに Windows を再インストールしてしまったら

近年、個人情報保護法の施行により個人情報の保護が義務づけられるなど、個人情報や機密情報の保護意識が高まると共に、データの暗号化の必要性を感じる人も増えてきた。雑誌や Web の記事などで Windows の EFS が紹介されることも増えたが、秘密鍵のバックアップが必要であることに触れた記事は少ない。そのせいか、EFS でファイルを暗号化したのはよいが、秘密鍵のエクスポートをしていないケースがまま見受けられる。そのような人が、システムの調子が悪くなったからといって安易に Windows を再インストールした結果、データを開こうとしても開けなくなっていることに気づき青ざめる、という例も後を絶たない。データのファイルを外付けハードディスクなど、Windows のある C: ドライブ以外に置いていた場合、まさか C: ドライブの再インストールでそのファイルが使い物にならなくなるとは想像できないからであろう。ファイルが開けなくなった後で調べて回った結果、秘密鍵のバックアップが必要だったことを知り愕然とするが、もはや手遅れである。

しかし、あきらめるのは少しだけ早いかも知れない。C: ドライブを再フォーマットし、Windows を再インストールしても、以前の秘密鍵がハードディスク上に残されている可能性はある。通常、ドライブを再フォーマットしてもデータの「目録」が消されるだけで、ハードディスク上のデータそのものは消されない。Windows を再インストールしても、ハードディスク上で先の Windows のインストールと同様の場所を占め、秘密鍵が上書きされていない可能性は十分ある。もちろん、秘密鍵が上書きされてしまう可能性も同様にあるが、再インストール直後であれば、秘密鍵を救出できる可能性は検討に値するだけはある。

Windows が再インストールされたドライブから秘密鍵を救出して復元しようとする場合、二つの市販ソフトが必要になる。

復旧作業は、まずデータ・リカバリー・ソフトでハードディスクから救出可能なファイルを救出し (その中に秘密鍵があればよい)、その後 Advanced EFS Data Recovery で復元を試みる、という手順になる。ハードディスクからの秘密鍵の救出確率を少しでも高めるために、問題の C: ドライブには一切書き込みをしないこと。ただちに PC をシャットダウンし、C: ドライブのあるハードディスクを取り外す。その後、別の PC、または別のハードディスクにインストールした Windows から秘密鍵の救出を試みること。

  1. 別の PC を用意する。または、別のハードディスクを PC に接続して Windows をインストールし、使えるようにする。
  2. 問題の C: ドライブを、セカンダリ・ドライブとして接続する。または、外付けハードディスクケースを使って外付けハードディスクとしてマウントする。
  3. データ・リカバリー・ソフトを使って、救出可能なファイルをすべて救出する。秘密鍵のファイル名は一見意味不明な文字列なので、救出可能なすべてのファイルを取り出すこと。(実際には秘密鍵の他にも「マスター キー」と呼ばれる暗号鍵も救出が必要。これが実際に秘密鍵を暗号化し、それがログオン パスワードのハッシュ値とユーザーのセキュリティ識別子 (SID: security identifier) で暗号化されるという構造になっている。このような構成になっているのは、パスワードは頻繁に変更されるものなので、それで直接暗号化する物は最小限にするため。マスター キーはユーザーの秘匿情報のほとんどを暗号化している。)取り出したファイルはもちろん別のハードディスクに書き出す。問題の C: ドライブには絶対に何も書き込まないこと。
  4. 暗号化データの入ったドライブを接続し、Advanced EFS Data Recovery を使って復元を試みる。使い方は、 という手順になる。当然の事ながらログオン パスワードが分からなければ復元できない(秘密鍵はログオン パスワードで暗号化されている)。また、Advanced EFS Data Recovery の Web サイトからダウンロードできる trial version (評価版) は、暗号化ファイルの先頭の 512 バイトしか復元しないという制限がかけてあるので、本格的に復元するには正規版を購入する必要がある。

秘密鍵が上書きされていて救出できなかった場合は、できることはほとんどない。Windows に標準付属のバックアップ (ntbackup.exe) で C: ドライブと“System State”を含めてバックアップが取ってあれば、それらを新しい Windows (同じサービスパックのもの)に上書き復元する(復元先を「元の場所」にし、 ntbackup の「ツール」メニューの「オプション」の「復元オプション」で「常にディスク上のファイルを置き換える」を選ぶ)ことで秘密鍵を復元できるが、そのようなバックアップを取っていなければ、素直にあきらめてデータを作り直すしかない。暗号化アルゴリズムを破ってデータを復元することは、事実上不可能である。EFS に使われている暗号化アルゴリズムは業界標準のものであり、暗号化技術の集大成とも言える強力なもので、弱点が見つかる可能性は期待できない。ただ、EFS にも使われている公開鍵暗号化方式は、将来「量子コンピューター」が実現されると、高速に解読できると言われている。しかしそれが現実のものとなるには長い時間がかかると見られている。

自分で量子コンピューターを開発する以外の方法が絶対にないかと言えばそうでもなく、軍事用に匹敵する専門機関であれば、上書きされたデータの下にあった上書き前のデータを読み取ることは不可能ではない。ハードディスク上でデータは“0”と“1”のビットで記録されているが、データの上書きには次の四種類がある。

“0”や“1”の信号は磁気で記録されているが、例えば現在の値が同じ 1 であっても、「0 の上に 1 を上書き」と「1 の上に 1 を上書き」では信号の強さがわずかに異なる。ハードディスクの制御回路は信号の強さをある「しきい値」を境に“0”と“1”に分離するデジタル処理をしているだけなので、このわずかな違いを検出することはできない。しかしハードディスクの回路を大幅に改造して、信号の強さをアナログ的に測定できるようにすれば、このわずかな違いを検出することができ、上書き前のデータを復元することができる。従ってこのような改造のできる技術と設備を持つ者であれば、一度上書きされたデータの下からさえ、以前のデータを復元できる。このため、軍用規格ではデータの消去の際はランダムなデータを“0”と“1”を反転しながら最低三回以上上書きするなどの入念な処理を行っている。市場では「データ復旧サービス」と銘打ったサービスを行う会社が多数存在するが、それらはハードディスクが動かなくなった、などの簡単な改造 (部品交換) で済む場合を対象にしていて、データをアナログ的に読む必要のある「上書きされたデータの復元」を手がけている所は見当たらない。しかし自分でやるなら量子コンピューターを開発するよりは簡単そうである。



〔目次〕  〔全項展開〕