Encrypting File System(暗号化ファイルシステム、EFS)とはMicrosoft WindowsにおいてNTFSバージョン3.0で追加された機能で[1]、ファイルシステムレベルでの暗号化を提供する。この技術はコンピューターに物理的にアクセスする攻撃者から機密データを保護するために、ファイルの透過的暗号化を実現する。
EFSはWindows 2000以降の全てのビジネス向けエディションのWindowsで利用できる[2]。既定では暗号化されたファイルは存在しないが、ユーザーの選択でファイルごと、ディレクトリーごと、あるいはドライブごとに暗号化を有効にすることができる。いくつかのEFS設定はWindowsドメイン環境のグループポリシーで強制させることもできる。[3]
暗号ファイルシステム実装は他のオペレーティングシステムでも利用可能であるが、Microsoft EFSはそれらとの互換性はない。
動作原理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
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[7]
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
他のオペレーティングシステム
Windowsバージョン別の新機能
クライアントサイドでの暗号化(オフラインファイル
ドメイン公開鍵を使ったDPAPIマスターキーのバックアップの保護
暗号化済みファイルへのファイル単位の複数ユーザー共有アクセスと、暗号化ファイルを共有するときにその証明書の失効をチェック
暗号化ファイルを異なる色で表示(既定では緑)
強制回復エージェントが不要
暗号化がサポートされていないファイルシステムにファイルを移動したときに、復号されることを警告
パスワードリセットディスク
WebDAV越しのEFSとActive Directoryで委譲されたサーバーのリモート暗号化
既定で全てのEFS暗号化ファイルについてAES-256対称暗号化アルゴリズムの使用およびサポート
自己署名EFS証明書の適用をブロックする設定を追加
デジタルID管理サービス
自己署名EFS証明書を適用する場合に最小鍵長の設定を強制するためのRSA鍵長設定
クライアントサイド(オフラインファイル)のユーザー単位の暗号化
PC/SCスマートカード上のRSA秘密鍵の格納をサポート
EFSキー更新ウィザード
EFSキーバックアップメッセージ
PC/SCスマートカードからのDPAPIマスターキーの取得
BitLockerを使ったEFS関係の秘匿情報の保護[12][13]
統括管理のためのグループポリシー制御
ドキュメントフォルダーの暗号化
オフラインファイル暗号化