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


〔目次〕  〔全項展開〕



Windows XP Professional で陥りがちな落とし穴

EFSで特に注意しなければならないことは、「EFS DRA 証明書で暗号化ファイルのアクセスに成功した場合、そのファイルに付加された EFS DRA 証明書 (で暗号化された共通鍵) は直ちに現在のシステムの EFS DRA 証明書 (で暗号化された共通鍵) で置き換えられる」点と、「EFS 証明書で暗号化ファイルのアクセスに成功した場合、そのファイルに付加された EFS 証明書 (で暗号化された共通鍵) は直ちに現在のユーザーの EFS 証明書 (で暗号化された共通鍵) で置き換えられ、EFS DRA 証明書 (で暗号化された共通鍵) は直ちに現在のシステムの EFS DRA 証明書 (で暗号化された共通鍵) で置き換えられる」点である。コピーしたり保存し直したりすることなく、単に開いただけで置き換えられてしまう。それどころか、開かなくても単に Explorer のヒント情報が表示されただけでも置き換えられてしまう。読み取りに失敗した(アクセス拒否された)場合には置き換えられない。
この点は、条件によっては「良くてたった一回しか開けない」場合があるので細心の注意を要する。

例えば、PC1 に回復エージェントを設定し、その EFS DRA 証明書をファイルに保存しておいたとする。
その後、PC1 上のユーザーが作成した暗号化ファイルには、すべて回復エージェントの EFS DRA 証明書が付加される。もちろん作成者の EFS 証明書も付加される。
さて、PC1 の Windows が破損して、Windows の再インストールを行って PC2 になったとする。
PC2 では回復エージェントを設定しようがしまいが、かつての PC1 での暗号化ファイルを開くには、保存しておいた PC1 の EFS DRA 証明書、または PC1 のファイル作成者の EFS 証明書をインポートしなければならない。もちろん両方の証明書を保存していた場合は暗号化ファイル作成者の EFS 証明書をインポートしても良いが、この場合は EFS 証明書は保存してなかったとする。すると EFS DRA 証明書をインポートするしかない。

ここで重大なことが起きる。もしも PC2 で回復エージェントを全く指定していなかった場合、インポートした EFS DRA 証明書で暗号化ファイルを開いたとたんに、そのファイルからは EFS DRA 証明書が削除されてしまう。そして何も気づかずにファイルを閉じてしまうと、二度とそのファイルを開くことができなくなる。なぜならそのファイルにはもう EFS DRA 証明書が何もなく、付加されているのは PC1 での作成者の EFS 証明書だけだからである。多くの場合、知らない間にアクセスが発生し、開こうとしても一度も開けないことがある。

(もしもあらかじめ PC2 で回復エージェントを指定していたなら、暗号化ファイルの EFS DRA 証明書は削除されるのではなく PC2 の EFS DRA 証明書で置き換えられるので、二度目以降は PC2 の回復エージェント用に保存した EFS DRA 証明書をインポートすれば何度でも開くことができる。この時そのファイルには PC2 の EFS DRA 証明書と、PC1 での作成者の EFS 証明書が付加されている。なお、EFS DRA 証明書を使ってファイルにアクセスしている場合、ファイルを暗号化のままコピーしたりアプリケーションで開いて上書き保存しても、ファイルの EFS 証明書は現在のユーザーのものに置き換わらない。いったん暗号化を解除して暗号化し直すか、アプリケーションで開いて名前を付けて保存し直せば、EFS 証明書も現在のユーザーのものに置き換わる。)

つまり、「回復エージェントを指定していないシステムで EFS DRA 証明書を使って暗号化ファイルを開いた場合、そして作成者の EFS 証明書が得られない場合、良くて最初の一回しか開けない」ということなのである。後から回復エージェントを設定しても手遅れである。なぜならすでにそのファイルにはアクセスできなくなっているので、EFS DRA 証明書が追加されることはないからである。

PC1 の EFS DRA 証明書ではなく、PC1 での暗号化ファイル作成者の EFS 証明書をインポートして開いた場合には、現在のユーザーの EFS 証明書で置き換えられるが、もちろん何度でも開くことができる。同時に EFS DRA 証明書も現在のシステムの EFS DRA 証明書で強制的に置き換えられる (回復エージェントが設定されていなければ削除される)。ちなみに、現在のユーザーが一度も暗号化ファイルを作成したことがなく、自身の証明書を持っていないときにインポートすると、その EFS 証明書がそれ以後もそのユーザー自身の EFS 証明書となる。その後そのユーザーが初めて暗号化ファイルを作成しても、その EFS 証明書が使われ、別途新しい証明書が作成されることはない。

以上のようなことから、システム破損に備えてバックアップしておく証明書は、EFS DRA 証明書だけでは心許ない。Windows 2000 の時代には、すべてのシステムにデフォルトで回復エージェントが設定されていた (Administrator が回復エージェントの秘密鍵を持っていた) から、このようなトラブルは起きにくかったが、Windows XP ではデフォルトで回復エージェントが設定されていないので、この罠にはまってしまうケースが多々あると思われる。

対策としては、証明書をバックアップする際は、システムの EFS DRA 証明書だけでなく、各ユーザーの EFS 証明書も必ずバックアップする。また、EFS DRA 証明書をインポートする場合は、必ず現在のシステムに回復エージェントが設定されていることを確認する。そして現在のシステムの EFS DRA 証明書もあらかじめインポートしておくこと。なぜなら多くの場合、知らない間にアクセスが発生し、「二度目以降」のアクセスがすぐに必要になるから。

【Windows XP Professional および Windows XP Home Edition のセキュリティ最新情報】
http://www.microsoft.com/japan/technet/prodtechnol/winxppro/evaluate/xpsec.mspx


〔目次〕  〔全項展開〕