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


〔目次〕  〔全項展開〕



ネットワーク ファイル共有で EFS を使用する (Windows 7 以降)

Windows XP までは、非ドメイン環境(ワークグループ環境)ではネットワーク ファイル共有(SMB)上で EFS を使用することはできなかった。しかし Windows 7 以降は限定的ながら非ドメイン環境のファイル共有でも EFS が使えるようになった。

「限定的」というのは、証明書の扱いに制限があるためである。ファイルサーバー A の上のユーザーアカウント User1 がファイルサーバー上に EFS 証明書 C1 をすでに持っていて、クライアントマシン B にも同じアカウントと同じ証明書 C1 を持っていたとする。Windows 7 以降、クライアント B にサインインした User1 がファイルサーバー A から EFS 暗号化されたファイルを手元のクライアント B にダウンロードすることは常に可能になった。

しかし、アップロードに関しては事情が異なり、単純にエクスプローラーを使ってファイルをアップロードするとサーバー A 上の User1 のアカウントに新規に EFS 証明書 C2 が作られ、それを使って暗号化されたファイルとして保存される。そしてファイルサーバー A 上では User1 のデフォルトの EFS 証明書は C2 となってしまう。

そのため、後にクライアント B にサインインした User1 がそのファイルをダウンロードしようとしても、エラーとなってダウンロードできなくなる。クライアントマシン B 上の User1 のアカウントには EFS 証明書 C2 はないためである。

ただし、クライアントマシンからアップロードするときに常に新規に EFS 証明書が作成されるわけではない。例外として、「サーバー A にサインインして、今より数十分以内に EFS 証明書 C1 を使って EFS 暗号化操作をしたことがある」場合に限り、新規に証明書が作成されることはなく既存の証明書 C1 が暗号化に使用される。この「数十分」とは約30分(10分以上1時間未満)である。

そのため、証明書が新規作成されることを避けるためには以下のような対処法が必要である。

アップロードの頻度が少ないなら、その都度リモートデスクトップでサインインして暗号化するのでもよいし、頻度が高いなら、AutoHotkey 等のスクリプトを使って、「EFS フォルダに小さい非暗号化ファイルをコピー」→「そのファイルを削除」という操作を 10 分置きに繰り返すようにしておけばよい。これによりサーバー A 上では 10 分置きに EFS 証明書 C1 が使用されることになり、タイムアウトが発生しなくなるので、いつクライアント B からファイルをアップロードしても証明書は C1 が使われるようになる。


〔目次〕  〔全項展開〕