昔の名前で出ています

Wikipedia(英語)の"Index.dat"エントリーから辿って知った話だが、IE(Internet Explorer)の「ツール→インターネットオプションからブラウズの痕跡を消せる」というのは一般的に知られている事実と異なるようだ(おっと、IE7ユーザーは知っている話かもしれない)。

ブラウズしたりタイプしたURLや送信したEメールアドレス・Windows Meida Playerで再生したURLなどは、期限が来るまで、index.datという簡略データベース(というか、か、ハッシュで管理される索引ファイル)にキャッシュとして格納される。この場所は以下の通り。

Windows 9x
  • \WINDOWS\Cookies\
  • \WINDOWS\History\
  • \WINDOWS\Temporary Internet Files\
Windows XP
  • \Documents and Settings\[アカウント名]\Cookies\
  • \Documents and Settings\[アカウント名]\Local Settings\History\History.IE5\
  • \Documents and Settings\[アカウント名]\Local Settings\History\History.IE5\MSHist[西暦年月日と連番]\
  • \Documents and Settings\[アカウント名]\Local Internet Files\Content.IE5\
  • ...その他、インストールしているソフト(OfficeやOutlook)による。
問題は「消す」という操作の意味。IE7については後で述べるとして、IE6までは「消す=無効化する」だけであって、イレーズするわけではない。さらに古くなったエントリは名前を変更され、見えないファイルとして残っている(Explorerで見ても、「今日」とか「1週間前」といった表示しか行われず、通常のファイルとしては見えない。隠しファイルを表示する設定でも同じ)。またExplorerがこのファイルを掴んでいるので、セーフモードで操作するなりしないとファイル自体を消すことはできない。

自分のPCにどんな履歴が残っているのかを知るためには、いくつかのツールが存在する。
  • Index Dat Spy → 見るだけ
  • Index.dat QV → 見るだけ
  • Index.dat Suite → Basic/Full/No-Installの3種類があるが、BasicかNo-Installが推奨されている。見るだけでなく内容をクリアしたり、リブートを経て古いindex.datを消すこともできる
IEのツール→インタネットオプションからブラウズ履歴を消し、リブートした上で、Index Dat Spyを流してみる。まず、見えないindex.datがたくさん見つかった。IE6なのにIE5という名前がついているのは、Microsoft曰く、フォーマットが変わっていないからだそう。

indexdat1

中身を見てみると、うわっ、過去の履歴がモロ入ってるやんけー。

indexdat2

MicrosoftのWindows Networking Team blogでは、「digg記事とそのWikipediaエントリーがindex.datに関して少し混乱しているように見えるので...」と補足記事を書いてくれているが、「on vista」という記述と共にVistaの話が混じっていて判り難い。ただ、
Windows Core Networking : A bit about WinInet's Index.dat:
The way we use to delete entries in the index.dat file was pretty similar, the old URL data was marked free, but was still there, at least until it was overwritten by a new entry. In IE7 we now zero out the entry.
と、URLが残ること自体は書き手であるwndpteam氏も認めている。さらに、この記事のコメントに「(Wikipedia等の指摘を)ミスリードしている。クッキーは消えるのにURLは残る。僕らはプライバシーを問題にしているのだ」という意見があり、これについて、さらにQ&Aという形で補足記事が書かれている。
Windows Core Networking : A bit about WinInet’s Index.dat – Q&A:
1) Mike: The real problem behind index.dat is that whether or not the indexes inside are still relevant or not, it keeps named urls forever. …

In IE7 and Windows Vista, deleted entries are actually zeroed out instead of just marked free till overwritten. There shouldn't be any residual URL names lying around if the entry was deleted.
IE7とWindows Vistaではゼロパターンでイレースされるみたいだ。Windows Vistaと書かれているのは何か意味があるのかな?たぶんIE7 on Windows XPでもOKだと思うのだが...。もし、IE7の改良点に関して、「IE6でも消せたが、IE7では一括で消せるようになった→便利になった」と理解しているとしたら、それは間違った解釈ということだ。根本的に違う。

さて、履歴を完全に消す選択肢は4つあることになる。
  1. IE7にバージョンアップする
  2. インターネット上のツールを使う(前述のIndex.dat Suiteで消すことができるが、自己責任でと書かれている)
  3. Safeモードで入って手動で該当のindex.datを消す(ファイルがロックされていない)
  4. Firefoxなど他のブラウザを使う
で、僕は迷わず4なわけだが(笑)、昔はIEを使っていたこともあり、古い履歴を試しに消すために2を実行。でも、保証がないツールなのでお薦めはできません。3はDOS窓操作なのでエキスパート向きかな。当然ながら放置という選択肢もある。多少の気持ち悪さは残るけどね。

最後に、フォレンジックというか、企業向けに内部監査なんかする側に立つならば、IE7以降は某ツールなどでユーザーのPCを調べてもわからないので、プロキシーやAudit用の専用ルーター設置は必須になるということ。あと、「金融商品取引法(J-SOX)対応にIE7を」というマーケティングもあるね、
> MS殿 ( ̄ー ̄)ニヤリッ