Encrypting File System(暗号化ファイルシステム、EFS)とはMicrosoft WindowsにおいてNTFSバージョン3.0で追加された機能で[1]、ファイルシステムレベルでの暗号化を提供する。この技術はコンピューターに物理的にアクセスする攻撃者から機密データを保護するために、ファイルの透過的暗号化を実現する。
EFSはWindows 2000以降の全てのビジネス向けエディションのWindowsで利用できる[2]。既定では暗号化されたファイルは存在しないが、ユーザーの選択でファイルごと、ディレクトリーごと、あるいはドライブごとに暗号化を有効にすることができる。いくつかのEFS設定はWindowsドメイン環境のグループポリシーで強制させることもできる。[3]
暗号ファイルシステム実装は他のオペレーティングシステムでも利用可能であるが、Microsoft EFSはそれらとの互換性はない。
EFSはファイル暗号化キー (File Encryption Key ; FEK) という大量の対称鍵によってファイルを暗号化する。対称暗号化アルゴリズムを使用する理由は、非対称鍵暗号を用いるよりも暗号化および復号に掛かる時間が短くなるためである。使用される対称暗号化アルゴリズムはオペレーティングシステムのバージョンや設定によって異なる。FEK(ファイルの暗号化に用いられる対称鍵)はファイルの暗号化を行うユーザーと関連付けられた公開鍵によって暗号化され、この暗号化されたFEKは暗号化ファイルの$EFS代替データストリームに格納される[4]。ファイルを復号する手順としては、EFSコンポーネントドライバーはファイルの暗号化に使われたEFSデジタル証明書に合致する秘密鍵を使い、$EFSストリームに格納されている対称鍵を復号する。そしてその対称鍵を使ってファイルを復号する。暗号化および復号処理はNTFSファイルシステム下のレイヤーで行われるため、ユーザーや全てのユーザーアプリケーションから見ると透過している。
コンテンツを含むフォルダーはファイルシステムによって暗号化属性でマークされた上で暗号化される。EFSコンポーネントドライバーはこの暗号化属性をNTFSにおけるアクセス許可(パーミッション)の継承と同様に扱い、フォルダーが暗号化としてマークされると、既定ではそのフォルダー下に作成される全てのファイルやサブフォルダーも暗号化される。暗号化ファイルをNTFSボリューム間で移動しても、ファイルは暗号化されたままである。
ファイルおよびフォルダーはFAT32のような他のファイルシステムでフォーマットされたボリュームにコピーされる場合に復号される。暗号化ファイルをSMB/CIFSプロトコル(Windowsのファイル共有サービスで使われるプロトコル)を使ってネットワーク越しにコピーしたとき、ファイルはネットワークに送信される前に復号される。
バックアップアプリケーションにも使われている、復号コピーを防止する最もよく使われる手法は "Raw" APIが知られる[5]。バックアックアプリケーションはこれらのRaw APIを実装していて、暗号化ファイルストリームと$EFS代替データストリームを単一のファイルとして単純にコピーする。言い換えると、ファイルは暗号化状態でコピーされ、バックアップ中に復号されない。
Windows Vistaより、ユーザーの秘密鍵はスマートカードに格納できるようになった。データ回復エージェント (Data Recovery Agent ; DRA)もまたスマートカードに格納できる。[6]
他のオペレーティングシステムまたはファイルシステムでEFSをネイティブにサポートするものは存在しない。
Windows XP
Windows XP SP1
Windows XP SP2 + KB912761[8]
Windows Server 2003
Windows VistaおよびWindows Server 2008[9][10][11]
Windows Server 2008[11]
Windows 7およびWindows Server 2008 R2[14]
Windows EFSはいくつかの対称暗号化アルゴリズムをサポートし、ファイルの暗号化に用いられるアルゴリズムはWindowsのバージョンによって異なる。
オペレーティングシステム | 既定のアルゴリズム | 他のアルゴリズム |
---|---|---|
Windows 2000 | DES-X | (なし) |
Windows XP RTM | DES-X | トリプルDES |
Windows XP SP1 | AES | トリプルDES、DES-X |
Windows Server 2003 | AES | トリプルDES、DES-X[17] |
Windows Vista | AES | トリプルDES、DES-X |
Windows Server 2008 | AES | トリプルDES、DES-X (?) |
Windows 7 Windows Server 2008 R2 |
混合 (AES, SHA, ECC) | トリプルDES、DES-X |