Microsoft自身の文書*で公表されているとおり、WindowsのEFS(暗号化ファイルシステム)の処理では、平文の(暗号化されていない)一時ファイルが作られ、暗号化処理の終了後も上書き抹消ではなく通常の削除だけが行われている。そのため平文データが復元可能な状態で残っている。cipher.exeの/Wオプションは、この問題に対処するために追加されたものだ。
この一時ファイルはどのような状態で残っているのか、検証してみよう。
infolder1.htm
<html> <head><title>TARGET_IN_FOLDER_1</title></head> <body> Hello! This is the target text in a folder (1). </body> </html> |
infolder2.htm
<html> <head><title>TARGET_IN_FOLDER_2</title></head> <body> Hello! This is the target text in a folder (2). </body> </html> |
alone1.htm
<html> <head><title>TARGET_ALONE_1</title></head> <body> Hello! This is the target text alone (1). </body> </html> |
alone2.htm
<html> <head><title>TARGET_ALONE_2</title></head> <body> Hello! This is the target text alone (2). </body> </html> |
infolder1/2は、EFSを有効にしたフォルダに異なるドライブからコピーするためのテストデータであり、alone1/2は、ファイルごとにEFSで暗号化するためのテストデータだ。なぜこうするのかというと、EFSの「平文一時ファイル問題」は、ファイル単位でEFS化した場合だけ生じ、フォルダ単位でEFS化した場合は生じない、という情報があったからだ。
ファイナルデータ(試用版で可)を使うと、個々のファイルがEFSで暗号化されている状態を表示できる。
平文の一時ファイルefs0.tmpの削除済みデータが、EFSフォルダ内に残ることがわかった。
efs0.tmpはファイナルデータで検出される。しかも、クラスタスキャンを実行する必要もなく、ディレクトリエントリスキャン(ディスクを開くと自動で行われる)だけで見つかる。
efs0.tmpの内容は、あとからEFSを有効にしたalone2.htmのものだ。

Windows 2000/XPのインストールCD-ROMに収録されているDisk Probeを使用する(インストールCD-ROM\SUPPORT\TOOLS\SETUP.EXEでインストールする)。Disk Probeは、文字列を指定してディスクの内容を検索できる。
4つのテストファイル全部に含まれる文字列"target"を検索してみた。
その結果、ファイルごとにEFSを有効にしたalone1/2の暗号化されていない内容(以下、平文データ)が、確かに発見された。しかもそれぞれ3箇所にあった。下図はその中の1つである。
フォルダに対してEFSを有効にしたinfolder_1/2の方は、平文は発見されなかった。後の追試(本稿での記載は省略している)により、異なるドライブからEFSフォルダにファイルをコピーした場合は、平文データが残らないことがわかった。
なおinfolder_1/2を編集して保存したあと、同様にDisk Probeで検索したが、発見されたのはalone1/2の平文データのみだった。ファイルの編集・保存では、平文データが残らないようだ。
上記のテストの後、MO内のファイルをEFSフォルダにコピー・移動した場合についても検証してみた。この場合も、平文の一時ファイルefs0.tmpの削除済みデータが、EFSフォルダ内に残る。
また、1箇所だけ、削除済みデータがHTMLとして復元された(上のefs0.tmpとは別の場所)。復元されなかった他の部分と比較した結果、「ファイナルデータは、titleタグがセクタの先頭にないとHTMLとして復元しないらしい」ということがわかった。
MO内のファイルをEFSフォルダにコピー・移動した場合(つまり同一ドライブ内でのコピー・移動)は、ディスクダンプツールによって平文データが検索された。
「ディスクダンプツールによる検索(1)」では異なるドライブからEFSフォルダにコピー・移動しており、その場合は平文データが残らないようだ。
最初からファイルが入っているフォルダに対して、EFSを有効にした場合はどうかを検証した。この場合もテスト(2)と同じく、平文の削除済み一時ファイルefs0.tmpが、EFSフォルダ内に残る。その内容は、システムが最後に暗号化した、フォルダ内ファイルの元データである。ファイナルデータによるスキャンについても同じで、ディレクトリエントリスキャンだけでefs0.tmpが見つかる。
最初からファイルが入っているフォルダに対してEFSを有効にした場合も、efs0.tmpとは別に、1ファイルにつき3箇所、平文データが検索された。
"cipher /w:ドライブ名"のコマンドにより、テスト(3)に使ったMOの削除済みデータを抹消する。抹消前に平文データがあったセクタを表示し、抹消されているかを確認する。
上書きはされているが、乱数とは異なるパターンで上書きされているようだ(下図参照)。
この状態は、「フリーのデータ抹消ツール vs. 商用のデータ復元ツール [NTFS編] 実験2 cipher.exe」での、「MFTレコードに収まる小さいファイル」の結果に似ている。本稿のテストファイルも同様に小さいものであるため、cipher.exeが「0x00→0xff→乱数」の上書きをするのは、「MFTレコードに収まらないファイルの削除済みデータ」に対してだけなのかもしれない。
削除済み一時ファイルefs0.tmpについて
以下の場合は、削除済み一時ファイルefs0.tmpは残らない。
以下の場合は、削除済み一時ファイルefs0.tmpが残る。
ただし、上記のどの場合でも、いったんEFSが有効になったファイルを編集して保存した場合は、efs0.tmpが新たに作られることはない。
efs0.tmpはドライブごとに1個だけ作られるらしい。またefs1.tmpやefs2.tmpといった一時ファイルは作られず、最後に実行されたEFS処理の分だけ残るようだ。
EFSが複数のファイルを暗号化する場合でも、単一の一時ファイルefs0.tmpを使って、一度に1ファイルずつ暗号化しているように思える。
別のドライブからEFSフォルダへのコピーのとき、efs0.tmpがすでにあっても、そのまま残る。
別のドライブからEFSフォルダへの移動のとき、efs0.tmpがすでにあれば、移動したファイルの名前のような情報が上書きされ、消滅する。
efs0.tmp以外の平文データについて
以下の場合は、平文データは残らない。
以下の場合は、efs0.tmpの削除済みデータとは別に、平文データが残る。
この平文データは、EFSでファイルを暗号化するたびに、前のものが徐々に上書きされていくようだ。そのためすべての平文データが残っているわけではなく、最近のものほど残っている可能性が高い。
上記のどの場合でも、いったんEFSが有効になったファイルを編集して保存した場合は、新しく平文データが出現することはない。
EFSの利用時には、ディスク内に平文データが残る場合がある。平文データには、削除済みの一時ファイルefs0.tmpと、それ以外のデータがある。efs0.tmpについてはMicrosoft自身のものも含め複数の文書があるが、efs0.tmp以外の平文データが存在した。
削除済みの一時ファイルefs0.tmpは、残っていない場合もあり、残っている場合でもドライブごとに1個だけのようだが、残っていれば復元ツールによって簡単に見つかる。
efs0.tmp以外の平文データを発見するには、ディスク全体を検索する必要がある。
EFSの利用時に平文データを残さないようにするには、まずEFSを有効にしたフォルダを作り、その中でファイルを新規に作成すること。EFSフォルダ内で[ファイル]-[新規作成]を選択してもよいし、[名前を付けて保存]の保存先をEFSフォルダにしてもよい。また、別のドライブからEFSフォルダへのコピー/移動、ネットワークからEFSフォルダへのダウンロードでもよい。
以下の場合は、平文データが残る。ただしすべての平文データが残っているわけではなく、最近のものほど残っている可能性が高い。
いったんEFSが有効になったファイルを編集して保存した場合は、新たefs0.tmpやその他の平文データが出現することはない。しかし編集・保存によって、既存のefs0.tmpやその他の平文データが消えるわけではない。
efs0.tmpやその他の平文データを抹消するには、"cipher /w:/ドライブ名"を実行する。ただしディスクサイズが大きいと長い時間がかかるので、ひんぱんに行うのは現実的ではない。最初から、平文データを残さないように使うのが賢明だ。
EFSではファイルごとに異なるキーで暗号化されているため、あるファイルの平文データを復元されても、それによって他のファイルが復号されることはない。
Copyright (C) Cybernetic Survival Network. All Rights Reserved.