【Windows】EFS (Encrypting File System) の仕組み

EFS (Encrypting File System) とは、Windows OS 標準で利用可能な機能で、ファイルやフォルダを暗号化してセキュリティ保護することができます。

EFS 暗号化ファイル システムでは、公開鍵暗号化方式と共通鍵暗号化方式の技術を組み合わせてデータを暗号化し、他のユーザーにファイルの中身を参照できないようにして、機密性を担保しています。

今回は、EFS という機能の仕組みについて紹介します。

 

EFS の仕組み

EFS でファイルを暗号化する際、暗号化には共通鍵暗号化方式(=暗号化する鍵と復号する鍵が同じ)を使用します。
このファイルを暗号化/復号に使用する鍵を FEK (the file encryption key) と呼びます。

EFS では FEK でファイルを暗号化した後、FEK 自体を公開鍵で暗号化し、そのデータをファイルのヘッダとして保存します。

ここで、EFS 暗号化する時に公開鍵として使用するのは、ユーザーが個々に保持する EFS 証明書となります。
そのため、EFS 暗号化する際は、EFS 暗号化の作業を行ったユーザーの個人の証明書ストアに、EFS 暗号化に利用できる証明書が必要となります。

※ EFS 暗号化に使用できる証明書が存在しない場合は、EFS 暗号化の処理を行う時に発行されます。

 

EFS 暗号化されたファイルを開くとき、暗号化されたデータを復号する必要があります。
以下の通り、暗号化に使用した EFS 証明書の秘密鍵を使ってヘッダを復号して FEK を入手した後、FEK を使用して暗号化されたファイルを復号します。

EFS の機能において、ファイルを暗号化する場合もファイルを復号する場合においても、ファイルを操作するユーザーが EFS 証明書(秘密鍵つき)で保持している必要があります。

 

EFS 回復エージェント証明書 

EFS 回復エージェント証明書とは、EFS 証明書が損失した場合に EFS 暗号化ファイルを復元させるための証明書です。

EFS 証明書を誤って削除したり、秘密鍵が破損して利用できなくなった場合、EFS 暗号化したファイルは開けなくなります。
その際、ファイルを開こうとすると、”アクセス権がありません” というエラー メッセージが表示されます。

EFS 暗号化を行うためには、EFS 証明書に紐づく秘密鍵が必要となります。
そのため、EFS 証明書を秘密キー付きでエクスポート ファイル(pfx 形式)を保存して、バックアップとして保存しておきます。
EFS 暗号化されたファイルが開けなくなったとき、バックアップの EFS 証明書をインストールして復元する必要があります。

関連記事

ファイルを EFS 暗号化した時に、画面の右下に以下のような通知が表示されることがあります。 ファイル暗号化キーのバックアップ これにより、暗号化されたファイルに永久にアクセスできなくなることを防ぎます。   これは […]

ただし、EFS 証明書のバックアップを保存していない場合も多くあります。
そのようなことを想定して、EFS 回復エージェント証明書を用意しておくと便利です。
EFS 回復エージェント証明書を利用することで、EFS 暗号化されたファイルを回復させることができるようになります。

EFS 回復エージェント証明書の仕組みは以下の通りです。
EFS では FEK でファイルを暗号化した後、FEK 自体を回復エージェント証明書の公開鍵で暗号化し、そのデータをファイルのヘッダとして追加します。

 

EFS 回復エージェント証明書は複数用意することができ、回復エージェント証明書の分だけヘッダを追加できます。

EFS 回復エージェント証明書を使用して EFS 暗号化された証明書を復号する場合、回復の作業するユーザーの個人の証明書ストアに、秘密鍵付きでEFS 回復エージェント証明書をインストールします。
EFS 回復エージェント証明書をインストールした後、EFS 暗号化ファイルが開けるようになります。

 

EFS 関連の用語として、ヘッダーごとに名前が付けられています。

 

DDF (Data Decryption Fields) :
FEK をユーザーの EFS 証明書の公開鍵で暗号化したデータのフィールドです。

DRF (Data Recovery Fields) :
FEK を回復エージェント証明書の公開鍵で暗号化したデータのフィールドです。
DRF のフィールドは複数もつことができ、もし回復エージェントが複数設定されている場合は、その分だけヘッダーの数が追加されます。

 

回復エージェント証明書の設定方法

回復エージェントの証明書の設定は、グループ ポリシーにて行うことができます。

EFS 暗号化の仕組みからも確認できる通り、ファイルの EFS 暗号化処理においては FEK を公開鍵で暗号化するのみとなります。
そのため、EFS 回復エージェント証明書をグループ ポリシーを利用して、ドメイン内のクライアント端末に配布すれば、自動で EFS 回復エージェント用のヘッダが作成されます。

回復エージェント証明書を配布するポリシーは以下の通りです。

パス:[コンピューターの構成] – [ポリシー] – [セキュリティの設定] – [暗号化ファイル システム]

対象のポリシーには、回復エージェント証明書(有効期間 100 年)が登録されております。
ドメイン構築時に自動で登録される回復エージェント証明書で、ドメイン環境を新規に構築する最初の 1 台目のドメイン コントローラーを構成する作業をしたユーザーが回復エージェントとなります。

対象の回復エージェント証明書は、1 台目のドメイン コントローラー上に、回復エージェントとなるユーザーの個人ストア上に秘密キーで保存されています。