Encrypting File System

Encrypting File SystemとはMicrosoft WindowsにおいてNTFSバージョン3.0で追加された機能で、ファイルシステムレベルでの暗号化を提供する。この技術はコンピューターに物理的にアクセスする攻撃者から機密データを保護するために、ファイルの透過的暗号化を実現する。

EFSはWindows 2000以降の全てのビジネス向けエディションのWindowsで利用できる。既定では暗号化されたファイルは存在しないが、ユーザーの選択でファイルごと、ディレクトリーごと、あるいはドライブごとに暗号化を有効にすることができる。いくつかのEFS設定はWindowsドメイン環境のグループポリシーで強制させることもできる。

暗号ファイルシステム実装は他のオペレーティングシステムでも利用可能であるが、Microsoft EFSはそれらとの互換性はない。

1. 動作原理
-------

EFSはファイル暗号化キー  という大量の対称鍵によってファイルを暗号化する。対称暗号化アルゴリズムを使用する理由は、非対称鍵暗号を用いるよりも暗号化および復号に掛かる時間が短くなるためである。使用される対称暗号化アルゴリズムはオペレーティングシステムのバージョンや設定によって異なる。FEKはファイルの暗号化を行うユーザーと関連付けられた公開鍵によって暗号化され、この暗号化されたFEKは暗号化ファイルの$EFS代替データストリームに格納される。ファイルを復号する手順としては、EFSコンポーネントドライバーはファイルの暗号化に使われたEFSデジタル証明書に合致する秘密鍵を使い、$EFSストリームに格納されている対称鍵を復号する。そしてその対称鍵を使ってファイルを復号する。暗号化および復号処理はNTFSファイルシステム下のレイヤーで行われるため、ユーザーや全てのユーザーアプリケーションから見ると透過している。

コンテンツを含むフォルダーはファイルシステムによって暗号化属性でマークされた上で暗号化される。EFSコンポーネントドライバーはこの暗号化属性をNTFSにおけるアクセス許可の継承と同様に扱い、フォルダーが暗号化としてマークされると、既定ではそのフォルダー下に作成される全てのファイルやサブフォルダーも暗号化される。暗号化ファイルをNTFSボリューム間で移動しても、ファイルは暗号化されたままである。

ファイルおよびフォルダーはFAT32のような他のファイルシステムでフォーマットされたボリュームにコピーされる場合に復号される。暗号化ファイルをSMB/CIFSプロトコルを使ってネットワーク越しにコピーしたとき、ファイルはネットワークに送信される前に復号される。

バックアップアプリケーションにも使われている、復号コピーを防止する最もよく使われる手法は "Raw" APIが知られる。バックアックアプリケーションはこれらのRaw APIを実装していて、暗号化ファイルストリームと$EFS代替データストリームを単一のファイルとして単純にコピーする。言い換えると、ファイルは暗号化状態でコピーされ、バックアップ中に復号されない。

Windows Vistaより、ユーザーの秘密鍵はスマートカードに格納できるようになった。データ回復エージェント もまたスマートカードに格納できる。

2. サポートされるオペレーティングシステム
----------------------

2.1. Windows
------------

Windows 2000 Professional, Server, Advanced Server, Datacenter
Windows XP Professional, Tablet PC Edition, Media Center Edition, x64 Edition
Windows Server 2003, Windows Server 2003 R2
Windows Vista Business, Enterprise, Ultimate
Windows 7 Professional, Enterprise, Ultimate
Windows Server 2008, Windows Server 2008 R2
Windows 8, 8.1 Pro, Enterprise
Windows Server 2012, Windows Server 2012 R2
Windows 10 Pro, Enterprise, Education
Windows Server 2016
Windows Server 2019

2.2. 他のオペレーティングシステム
-------------------

他のオペレーティングシステムまたはファイルシステムでEFSをネイティブにサポートするものは存在しない。

3. Windowsバージョン別の新機能
--------------------

Windows XP

クライアントサイドでの暗号化
ドメイン公開鍵を使ったDPAPIマスターキーのバックアップの保護
暗号化済みファイルへのファイル単位の複数ユーザー共有アクセスと、暗号化ファイルを共有するときにその証明書の失効をチェック
暗号化ファイルを異なる色で表示
強制回復エージェントが不要
暗号化がサポートされていないファイルシステムにファイルを移動したときに、復号されることを警告
パスワードリセットディスク
WebDAV越しのEFSとActive Directoryで委譲されたサーバーのリモート暗号化Windows XP SP1

既定で全てのEFS暗号化ファイルについてAES-256対称暗号化アルゴリズムの使用およびサポートWindows XP SP2 + KB912761

自己署名EFS証明書の適用をブロックする設定を追加Windows Server 2003

デジタルID管理サービス
自己署名EFS証明書を適用する場合に最小鍵長の設定を強制するためのRSA鍵長設定Windows VistaおよびWindows Server 2008

クライアントサイドのユーザー単位の暗号化
PC/SCスマートカード上のRSA秘密鍵の格納をサポート
EFSキー更新ウィザード
EFSキーバックアップメッセージ
PC/SCスマートカードからのDPAPIマスターキーの取得
BitLockerを使ったEFS関係の秘匿情報の保護
統括管理のためのグループポリシー制御
ドキュメントフォルダーの暗号化
オフラインファイル暗号化
暗号化ファイルのインデックス
EFS用のスマートカードの必要性
スマートカードからユーザーキーを生成
ユーザーキーが生成または変更されたときにキーバックアップ通知を表示
強制的に自動で使われるEFS認証の認証テンプレートの指定Windows Server 2008

Windows Server 2008サーバー上のEFS自己署名証明書で2048ビットRSA鍵長が既定に
全てのEFSテンプレートで2048ビットRSA鍵長が既定にWindows 7およびWindows Server 2008 R2

Windows 7でECCおよびRSAアルゴリズムの混合モードを後方互換性のためにサポート
ECC使用時にEFS自己署名証明書で256ビット鍵を既定に
EFSで自己署名RSA証明書使用時に1k/2k/4k/8k/16kビット鍵、あるいはECC証明書使用時に256/384/521ビット鍵の使用が設定可能に。
下位エディションでも一部のEFS操作が可能に。Windows 10 バージョン 1607 および Windows Server 2016
FAT および exFAT での EFS サポート

4. Windowsバージョン別の使用アルゴリズム
-------------------------

Windows EFSはいくつかの対称暗号化アルゴリズムをサポートし、ファイルの暗号化に用いられるアルゴリズムはWindowsのバージョンによって異なる。



5. 関連項目
-------

BitLocker
Data Protection API 
EncFS

6. 脚注
-----

7. 参考文献
-------