削除ネタをひとつ。PGP9 の機能のひとつに細断処理がある。
ファイルを完全に抹消するのが目的である。
対象となるファイルは復号化した平文などである。他人に見られたくない。
そこで、本当に削除(上書き)されているかテストしてみた。
テストの手順は下記である。
1.小さな NTFSのパーティションを作成。
2.そこに数文字のテキストファイルを作成。その数文字の内容を記憶。
3.そのファイルを PGP9の細断処理で抹消。
4.特殊なツールを使用して、パーティション全域を検索。(手順2の数文字を検索)
パーティション全域の検索には WinHex というツールを使用した。
http://www.x-ways.net/winhex/
NTFSのごく小さなファイルのデータは $MFT というメタ・データに格納される。
それは上書きされていた。ミラーである $MFTMirr にもデータは残っていなかった。
しかし、テストの結果、$LogFile に手順2の数文字がそのまま残っていた。
$LogFile とはトランザクション・ログと言われるメタ・データである。OSが記録する。
細断処理では $LogFile は処理対象外らしい。
PGP9の空き領域抹消をしても消えない。
NTFS 内部データ構造の抹消オプション付きで、空き領域抹消をすると消えた。
この内部データ構造の抹消オプションは、ブートパーティションでは使用できない。
嫌な予感がした。
PGP9は暗号文を開くと通常はブートパーティションに一時ファイルを作成するからだ。
そこで、次のテストをしてみた。
1.別機で暗号ファイルを作成。元の平文の数文字の内容を記憶。
2.テスト機に暗号ファイルをコピー。
3.PGP Desktop で上記の暗号ファイルを開き、何もしないで、すぐに閉じる。
4.WinHex を使用して、テスト機のブートパーティション全域を検索。
(手順1の数文字を検索)
結果は思ったとおりでした。$LogFile に復号化した平文が残っていました。
たとえ暗号ファイルが別パーティションにあろうとも同じ事である。
一時ファイルが $MFT内に収まった場合、必ずブートパーティションに平文の痕跡が残るのである。
しかもPGP9だけでは、その見られたくない平文の痕跡を消す手段は無いのである。
OSによって上書きされるのを待つか、別ツールを用意して消すしかない。
別のツールで消去するしかないと書いたが、そんなツールは本当にあるんだろうか?
$LogFile は OS と直結しており、リアルタイムに変化している。
WinHex などを使用して、直接に編集することはリスクがあり、出来ない。
一般のデータ抹消ツールはどうか?
そもそも、ブートパーティションの空き領域抹消は時間が掛かりすぎる。やってられない。
ちなみに Cipher.exe は $LogFile内のデータまでは抹消しない。
では、PGP Desktop を終了する前に一時ファイルを強引に抹消すればどうか?
Eraser5.8 や BCWipe3 などのツールを使用しても、$LogFile内のデータまでは抹消しない。
打つ手が無いのである。
OS を再起動しても $LogFile 内のデータはしぶとく残っていた。
これは危険な事である。他人に復号文を覗かれる可能性がある。
復号文の一部でも推測できれば、それを元に検索できる。
WinHex などを使用して、$LogFile 内だけを検索すれば時間は掛からない。簡単である。
これは、あきらかにセキュリティホールではないだろうか?
ついでに書いておくと、これは PGP9 だけの話ではない。
GnuPG だろうが何だろうが、1000バイト未満程度の小さい復号化をすると、
$LogFile内にデータが残る可能性がある。FATファイルシステムなら残らないが。
お名前、投稿内容、アイコン、文字色、メッセージ(本文)、パスワードは必須記入項目です。
下記フォームからスレッドNo.5内の記事を修正・削除することができます。