HOME


WindowsのEFS(暗号化ファイルシステム) メモ

2004/11/25
2004/12/14 回復エージェントによる復号について追記。

Windows 2000/XP Pro/Server 2003でフォルダ/ファイル単位に暗号化できるEFS(暗号化ファイルシステム)。使い方はフォルダ/ファイルのプロパティで暗号化のチェックを入れるだけだ。
使い方があまりに簡単なので、細かい仕組はかえってよくわからない。たとえば...

これらについて、あちこち調べてわかったことをまとめてみた。


EFSの暗号アルゴリズムは何を使っているのか?

EFSの暗号化の仕組は、S/MIMEおよびSSLと似ており、データ自体は共通鍵(対称鍵)で暗号化し、その共通鍵を公開鍵で暗号化する方式である。

公開鍵/秘密鍵のペアは、あるマシンで最初にEFSを使用したとき、自動的に作られる(インポートもできる)。公開鍵暗号のアルゴリズムはRSAだ。

各ファイルは、共通鍵で暗号化される。この共通鍵は、ファイルごとに異なるものが自動的に生成される。公開鍵によって共通鍵が暗号化され、ファイル自体に付けられる。共通鍵暗号のアルゴリズムは、デフォルトでは以下のものが使われる。

DESXとはDES eXtensionの意味で、DES(Data Encryption Standard)の拡張版だ。DESXではDESの56ビット鍵による暗号化の前と後に、付加的な64ビットの鍵でXOR(排他的論理和)を実行する。これによって、DESよりも鍵の総当り攻撃に対する耐性が大幅に向上している。

AESは、当サイトにお越しの方にはポピュラーであろう。

XP ProとServer 2003では、セキュリティポリシーやレジストリで、Triple DESを使用するように設定できるようだ。


EFSの暗号鍵は全部同じなのか?

前項でもすでに触れているが、各ファイルはそれぞれ異なる共通鍵によって暗号化される。この共通鍵は自動的に生成される。

EFSのRSA公開鍵/秘密鍵ペア--Microsoftの文書では「証明書」と呼ばれる--は、ユーザーごとに一組と考えてよい。


EFSの暗号鍵はどこに保存されているのか?

RSA公開鍵/秘密鍵ペアは、Windowsの証明書ストアに保存される。

共通鍵はRSA公開鍵によって暗号化され、その共通鍵で暗号化したファイル自体に付けられる。これはなかなかよくできた仕組だ。

RSA公開鍵とペアになる秘密鍵があれば、ファイルの共通鍵を復号できる。逆に、公開鍵のペアになる秘密鍵がなければ、どのファイルの共通鍵も復号できない。共通鍵を復号できれば、その共通鍵でファイル自体を復号できる。


回復エージェントによる復号の仕組

この仕組もシンプルでよくできている。

回復エージェントであるユーザー(デフォルトはAdministrator)の公開鍵で、ファイルの共通鍵を暗号化し、ファイルに追加する。回復エージェントはこの共通鍵を復号できるので、ファイル自体も復号できるというわけだ。

ただし回復エージェントが使えるこの共通鍵の部分を、バイナリエディタ--あるいは専用のツール--で壊してしまうことにより、回復エージェントによる復号を無効にできそうだ。

なお、ドメインに参加していないWindows XP Proでは、デフォルトの回復エージェントが設定されていない。したがってユーザー本人だけが復号できる状態になっている。


参考

"EFS Internals" (http://www.ntfs.com/internals-encrypted-files.htm)

"Encrypting File System in Windows XP and Windows Server 2003" (http://www.microsoft.com/technet/prodtechnol/winxppro/deploy/cryptfs.mspx)

「Windows 2000 Server 暗号化ファイルシステム ステップ バイ ステップ ガイド」 (http://www.microsoft.com/japan/windows2000/docs/S5.doc) 」


HOME

Copyright (C) Cybernetic Survival Network. All Rights Reserved.