EFSってあんぜんなの?

Windows 2000以降のWindows XP ProfessionalやWindows 2003 ServerにはEFSという機能が搭載されています。この機能を使用するとファイルが自動的に暗号化されて保存されるので、万が一パソコンを紛失した場合でもファイルの中身を見られることが無くて安心安全というわけなのです。
使い方は簡単で、ファイル又はフォルダのプロパティを開いて「詳細設定」ボタンを押し、「内容を暗号化してデータをセキュリティで保護する」にチェックを入れるだけです。多少ファイルの読み書きが遅くはなりますが、変なフォルダに設定したりしない限りは特に問題も起きない優れものです。

と、ここで気になることがあります。暗号化するときに使った鍵はどうしているのでしょうか。
どっかに保存しておかなきゃならないのは確かですが、暗号化されたファイルと鍵が同じ場所にあったらあまり意味が無いのです。田舎の共働き家庭じゃないのです。玄関の鍵をポストに入れておいて空き巣に入られた家が近所にありました。
まさかMicrosoftが田舎の共働き家庭並みのセキュリティとは思えないので、勝手にEFSの仕組みは下のようになっているんじゃないかと考えていたのです。

EFSを最初に使うとき
ユーザ毎に秘密鍵・公開鍵ペアが生成される
↓
秘密鍵はログオンパスワードを元に暗号化(共通鍵暗号)
ファイルを暗号化するとき
共通鍵をランダムに生成
↓
ファイルの内容を生成した共通鍵で暗号化(共通鍵暗号)
↓
共通鍵をユーザの公開鍵で暗号化(公開鍵暗号)
↓
暗号化されたファイルの内容をファイルとして保存
↓
暗号化された共通鍵をファイルのサブストリームに保存
ファイルを復号するとき
暗号化された共通鍵をサブストリームから読み出す
↓
(復号されている)ユーザの秘密鍵で共通鍵を復号(公開鍵暗号)
↓
復号された共通鍵でファイルの内容を復号(共通鍵暗号)

この場合ログオンパスワードがわからなければファイルの復号はできないはずです。
が、id:sonodam:20051013#p2やWindows 2000 Syskey および暗号化ファイル システムにおいて噂されている脆弱性の分析を読んでいると、どうも若干違うようなのです。
管理者がユーザのパスワードを強制リセットしようとすると「暗号化したファイルが読めなくなるよ」と警告されるので、ログオンパスワードもEFSに関係あるものと思っていたのですが、どうやらログオンパスワードは使われていないようです。

それじゃあ暗号化しても結局鍵はHDDに残ることになるので意味ナイジャーンと思ったわけですが、対策としてWindowsにはNT4SP3時代からSYSKEYという仕組みが導入されているそうなのです。このSYSKEYはWindowsのログオンパスワードなどを格納しているSAMデータベースと、EFS用の公開鍵ペアを格納しているLSA Secrets領域を暗号化する仕組みなのだそうです。
Windowsをインストールすると自動的にSYSKEYは有効になって、SAMやLSA Secretsは暗号化されるのですが、暗号化に使った鍵はHDDに保存されていて、Windowsが起動時に自動的に読み込んでいるとのことです。ってやっぱり鍵はHDDの中にあるそうです。
つまり、紛失したノートパソコンのログオンパスワードが推測できないくらい複雑で、尚且つEFSによるファイルの暗号化をしていたとしても、ノートパソコンを手に入れた側に知識とめんどくさそうな作業をするガッツがあれば、暗号を解読するよりもかなり短い時間で復号できてしまうということです。

このままだとEFS使えないじゃんということになってしまうのですが、Microsoftが言うには「SYSKEYにはモード1,2,3がある。2か3を使えば安全だ。」と。
SYSKEYのモード1というのは最初から使っているモードで、鍵をHDDに保存するモードのことです。鍵はOSが自動的に探すので、ユーザは何もしなくて良いです。モード2ではOS起動時にパスワードの入力が求められます。このパスワードがSYSKEY用の鍵になります。モード3では鍵をFDに保存して、OSの起動時にFDを読み込ませます。
モード2と3ではSYSKEYの鍵はHDDに保存されないので、万が一パソコンを紛失したような場合でも安心安全だそうです。モード2でパスワードがへなちょこだったり、モード3でFDが半挿しになっていたりしなければですが。

結局、EFSを使う場合はSYSKEYのモード2か3を使えば安全。モード1のままだとこけおどしという結論になりました。
ちなみにSYSKEYのモードは「ファイル名を指定して実行」で「syskey」を実行すれば変更できます。

EFSの必要性はデスクトップより紛失の危険が高いノートパソコンの方が高いと思うのですが、特に持ち歩くことを前提としたノートパソコンほどFDDは搭載されていない気がします。モード3ではFDにしか保存できないようなのですが、今時FDはねえだろうと思わなくもないです。

あと、ドメイン環境でどうなるかは知りません。そもそも家はXP Homeです。

追記
一時話題になったOphcrackは、WindowsのSAMデータベースをダンプして総当たりでクラックする仕組みというので、もしかしたらと思いSYSKEYモード2に設定したPCに対して実行してみました。使用したのはOphcrack 0.9a Live CD版です。
すると、SYSKEYモード1の状態ではおよそ8分でパスワードを解読されてしまったのですが、SYSKEYモード2の状態では30分経っても解読されませんでしたので、効果ありそうですよ!