トップ回答者
EFS構築について

質問
-
お世話になっております。
現在、受託業務にあたりデータファイルの暗号化を求められており、
EFSを構築することで対応しようとしております。
ドメインサーバ(1台):Windows2003Svr
クライアント(10台):WindowsXP Professional SP2
上記のシステム構成にて、ドメインを構築して、10人のドメインアカウントを作成しております。
一人一台専用のクライアントPCを割り当てているため、ローカルプロファイルを使用しております。
現在行き詰っている点として、2点あります。
1.回復エージェントにて、あるユーザーが暗号化したファイルを回復させるが失敗する。
ドメインアカウントユーザー(auser@mmm.com)で、専用のクライアントPCにログインし、テキストファイルを暗号化しました。
(※詳細ボタンにて内容を見ると「このファイルに自由に・・・」 auser@mmm.com / 「回復エージェント」administrator)
このファイルを共有ファイルにおき、ドメインサーバPCにて、ドメイン管理者(administrator)でログインし
アクセスして、暗号化の解除を試みると、「・・・・アクセスを拒否されました」と言われます。
ダブルクリックしても「上書き禁止の・・・」とエラーが表示がされます。
既定では、ドメインの Administrator ビルトイン アカウントとなると記載してあったので、
ドメインアカウントのadministratorはアクセスや、暗号化の解除などが自由にできるものと解釈していました。
2.あるユーザーが作成したEFSファイルを複数のアカウントにて共有できるようにしたいが失敗する。
これについては、FEK (File Encryption Key)を暗号化するための公開鍵が必要なのはわかるのですが、
その公開鍵はどのように取得・設定するものなのでしょうか。
いろいろなサイトを見ながら、半日かけたのですが、行き詰ってしまいました。
希望としては、
「ActiveDirectory コンピュータとユーザー」で、各ユーザーアカウントのプロパティの「公開された証明書」に証明書を追加して、
クライアント側は暗号化と誰に複合化させるかのみを意識すればとおもっていたのですが、なんかうまくいかんです。
ご教授ください。
2008年9月12日 11:40
回答
-
【[HOWTO] Windows Server 2003 Enterprise Server で暗号化ファイル システムを管理する方法】
http://support.microsoft.com/kb/324897/jaEFS を使用したハード ドライブの暗号化でデータを保護する
http://www.microsoft.com/japan/smallbiz/sgc/articles/protect_data_efs.mspx#EQE
上に書かれているのですが、ドメインの Administrator ビルトインアカウントの回復証明書(Administrator.cerファイル)は、そのドメインで構築された最初のドメインコントローラに作成されます。その回復証明書を証明書スナップイン(MMC管理コンソール)で「個人ストア」からFD等にインポートし、作成・リンクしたグループポリシーを編集し(Default Domain Policy を編集してもよいのですが)
コンソールツリーで、下記を展開し
「コンピュータの構成/Windows の設定/セキュリティの設定/公開キーのポリシー/ファイル システムの暗号化」
詳細ウィンドウを右クリックし、[データ回復エージェントの追加]でFD等にインポートした、回復証明書(Administrator.cerファイル)
を読み込ませる必要があります。
それでも、或るユーザーが暗号化したフォルダをAdministrator ビルトインアカウントの回復証明書が存在しないコンピュータより
複号化するには、FD等に保存した、ドメインの Administrator ビルトインアカウントの回復証明書(Administrator.cerファイル)
およびその秘密キー(.pfxファイル)をインポートしないと複号化はできないようです。
あるユーザーが作成したEFSファイルを複数のアカウントにて共有する場合も同様です。
上記の「EFS を使用したハード ドライブの暗号化でデータを保護する」のURLの
「データ回復キーをエクスポートおよびインポートする」以下にその手順が書かれています。
この暗号化ファイルシステムは非常に複雑なので、実際はパスワード付き暗号化ソフト(フリーソフト)を使っていますね。
例えば、
「アタッシュケース」は簡単ですが。(下記)
http://www.vector.co.jp/soft/win95/util/se280871.html2008年9月12日 22:28 -
以下のように記憶しています。
PC-Aからuser-Aアカウントで共有フォルダを暗号化する。
user-Aの証明書(user-A.cer)をFD等にエクスポートする時、秘密キーも一緒にパスワード付きで(.pfx形式)でエクスポートする必要があります。
その後、FD等にエクスポートしたuser-Aの証明書(user-A.cer)およびパスワード付きの秘密キー(.pfx形式)を
PC-Bのuser-Bアカウントの「証明書スナップイン」でuser-Aの証明書(user-A.cer)をインポートしかつパスワード付きの秘密キー(.pfx形式)をインストールしなければPC-Bのuser-Bアカウントからは、アクセスできなかったと記憶しています。
ドメインのビルトインアカウントのAdministratorの回復証明書(Administrator.cer)をエクスポートする時も同様です。
ドメインのビルトインアカウントのAdministratorの回復証明書はドメインで構築された最初のドメインコントローラでしか、そのパスワード付きの秘密キー(.pfx形式)はエクスポートできないようです。そのほかのPCから複号化するにはドメインのビルトインアカウントのAdministratorの回復証明書(Administrator.cer)およびそのパスワード付きの秘密キー(.pfx形式)がないと複号化できないようです。
当方、この暗号化ファイルシステムは現在使用していないので(暗号化フリーソフトの使用または共有フォルダへのアクセス権を付けて対応)しているので、詳しいことが知られたいなら、Microsoft社の正式サホートを受けられてはいかがでしょうか。
2008年9月16日 16:07 -
例えば、
PC-Aからuser-Aアカウントでドメインコントローラの共有フォルダを暗号化する。
ドメインコントローラの「証明書スナップイン」を叩くと「個人ストア」に目的が「暗号化ファイルシステム」となっている証明書(*.cer)が作成される。
その証明書をActive DirectoryユーザーとコンピュータでビルトインAdministratorアカウントに公開する。
暗号化された共有フォルダのあるドメインコントローラで「証明書スナップイン」を叩き「個人ストア」に目的が「暗号化ファイルシステム」となっている証明書(*.cer)を右クリックし、その秘密キーをパスワード付で(*.pfx)ファイル形式でFD等に保存する。
暗号化された共有フォルダがあるドメインコントローラでビルトインAdministratorアカウントでログオンし、パスワード付でFD等に保存した秘密キー(*.pfx)ファイルを右クリックしてインストールする。といった手順になるようです。
PC-Bからuser-Bアカウントでその暗号化された共有フォルダを共有する時も同様で、Active Directoryユーザーとコンピュータで
user-Bアカウントに公開するといった手順になるようです。(パスワード付でFD等に保存した秘密キー(*.pfx)ファイルをインストール
しておくことが必要です。)
2008年9月17日 9:40 -
チャブーンです。
まずこれですが、ご要望を言い換えると、こういうことですね?
ドメイン参加したクライアント PC-A 上に共有フォルダを作り、そこに置いたファイルをUser-A、User-B両方で暗号/復号できるようにしたい。User-Bは別コンピュータでログオンして、ネットワーク越しに復号したい、と。
これをするためには、2 つ条件がいります。最初の 1 つは「PC-A にログオンした状態のUser-A/User-Bがファイルを暗号/復号できるようにする」ということです。
EFS ファイルはその暗号/復号に、基本的にファイルが置かれたコンピュータにある暗号化証明書だけを利用します。暗号化証明書はユーザ証明書ストアにありますが(ない場合は必要時に生成されます)、ユーザ証明書ストアはユーザプロファイルに含まれますので、一度でもログオンをしてユーザプロファイルが生成されないと利用できません (共有フォルダ上へのアクセスでも、共有フォルダを持つコンピュータ上にプロファイルが自動的に作られます)。
ここでは一番簡単な方法として、PC-A に User-B でもログオンして、適当な EFS 暗号化ファイル(ダミーでよい)を設定します。すると、User-B のユーザ証明書ストアに暗号化証明書が生成されますので、これから公開鍵だけをエクスポートし、これを Active Directory に登録します。この公開鍵を User-A で作った EFS ファイルに追加で暗号化するよう、設定すればよいでしょう。こうすることで (NTFS アクセス許可を間違えなければ)、PC-A 上にログオンした User-A および User-B どちらでも復号できます。
User-B が復号できるのは、(エクスポートした)公開鍵に対応する秘密鍵をもつ暗号化証明書が、自分の証明書ストアに入っているからです。ちなみに秘密鍵を含む暗号化証明書が自動的にインポートされることはありません。たとえばどのコンピュータにログオンしても「証明書ストアに同一の(秘密鍵付き)暗号化証明書が入っている」状態を作る出したければ、移動プロファイルを利用するのがよいでしょう。ただし、移動プロファイルに含まれるファイルやフォルダを EFS 暗号化に設定してはいけません。
最初の条件がクリアされたら、次は「共有フォルダを持つコンピュータを『委任に対して信頼する』よう設定する」ことになります。
『コンピュータを委任に対して信頼する』というのは、あるコンピュータに対してドメイン認証を行った後、再度ドメイン認証が必要になったとき、クライアントではなくそのコンピュータが代わりに認証を行ってくれる、というしくみです。共有フォルダに置かれた EFS をネットワーク越しに暗号/復号する場合、この機能が必要になります。細かい点は、したの資料のを見ていただくといいでしょう。
2008年9月21日 16:41 -
下記の手順で検証できました。
(1).PC-Aからuser-Aアカウントでドメインコントローラの暗号化ファイルの共有が目的の共有フォルダを暗号化する。
(2).ドメインコントローラで「証明書スナップイン」を叩くと「信頼されたユーザー」→「証明書」に「user-A.cer」が作成される。
(3).PC-Bからuser-Bアカウントでドメインコントローラの任意(暗号化ファイルの共有が目的ではない)の共有フォルダを暗号化する。
(4).ドメインコントローラで「証明書スナップイン」を叩くと「信頼されたユーザー」→「証明書」に「user-B.cer」が作成される。
(5).ドメインコントローラでビルトインAdministratorでログオンしActive Directoryユーザーとコンピュータを開き「公開された証明書」で、user-Aアカウントに「user-A.cer」をストアから追加、user-Bアカウントに「user-B.cer」をストアから追加する。
(6).ドメインコントローラでビルトインAdministratorでログオンし、手順(1).PC-Aからでuser-Aアカウントで暗号化した共有フォルダの中の暗号化ファイルの共有が目的のファイルに、手順(4).で作成した「user-B.cer」を追加する。
user-Aアカウントの「user-A.cer」の秘密キーのエクスポート・インポートは必要ありませんでした。
ただし、ドメインコントローラでないメンバーサーバー・クライアントコンピュータの共有フォルダはActive Directoryユーザーとコンピュータを開き、共有フォルダがある該当のコンピュータアカウントで、「委任」→「任意のサービスへの委任でこのコンピュータを信頼する」にチェックを付けないと、ネットワーク越しにクライアントより暗号化はできません。
※現実には、このようなケースでは暗号化ファイルシステムは使用せず、目的の共有フォルダにuser-Aアカウント、user-Bアカウントのみにアクセス権を付与する方法で対処していますが。
2008年9月26日 11:00
すべての返信
-
【[HOWTO] Windows Server 2003 Enterprise Server で暗号化ファイル システムを管理する方法】
http://support.microsoft.com/kb/324897/jaEFS を使用したハード ドライブの暗号化でデータを保護する
http://www.microsoft.com/japan/smallbiz/sgc/articles/protect_data_efs.mspx#EQE
上に書かれているのですが、ドメインの Administrator ビルトインアカウントの回復証明書(Administrator.cerファイル)は、そのドメインで構築された最初のドメインコントローラに作成されます。その回復証明書を証明書スナップイン(MMC管理コンソール)で「個人ストア」からFD等にインポートし、作成・リンクしたグループポリシーを編集し(Default Domain Policy を編集してもよいのですが)
コンソールツリーで、下記を展開し
「コンピュータの構成/Windows の設定/セキュリティの設定/公開キーのポリシー/ファイル システムの暗号化」
詳細ウィンドウを右クリックし、[データ回復エージェントの追加]でFD等にインポートした、回復証明書(Administrator.cerファイル)
を読み込ませる必要があります。
それでも、或るユーザーが暗号化したフォルダをAdministrator ビルトインアカウントの回復証明書が存在しないコンピュータより
複号化するには、FD等に保存した、ドメインの Administrator ビルトインアカウントの回復証明書(Administrator.cerファイル)
およびその秘密キー(.pfxファイル)をインポートしないと複号化はできないようです。
あるユーザーが作成したEFSファイルを複数のアカウントにて共有する場合も同様です。
上記の「EFS を使用したハード ドライブの暗号化でデータを保護する」のURLの
「データ回復キーをエクスポートおよびインポートする」以下にその手順が書かれています。
この暗号化ファイルシステムは非常に複雑なので、実際はパスワード付き暗号化ソフト(フリーソフト)を使っていますね。
例えば、
「アタッシュケース」は簡単ですが。(下記)
http://www.vector.co.jp/soft/win95/util/se280871.html2008年9月12日 22:28 -
ご返事ありがとうございます。
Windows2003 ActiveDirectoryドメイン上で、2つのドメインアカウントと2つのPCで
暗号化ファイルの共有を試みているのですが、うまくいきません。
アクセス拒否となります。
PC-A / user-A
PC-B / user-B
1.PC-Aからuser-Aアカウントでドメインにログインし、共有フォルダのファイルA(テキストファイル)を暗号化
(※この時点では、複合化できるのは、user-Aのみ。)
2.PC-Bからuser-Bアカウントでドメインにログインし、ファイルBを暗号化
(※証明書を作成するために暗号化)
PC-Bから「証明書スナップイン」で、「証明書-現在のユーザー」-「個人」-「証明書フォルダ」から
user-Bの公開鍵のみをエクスポートします。「userb.cerファイル」
3.ドメインサーバにadministratorでログインし、「ActiveDirectory ユーザーとコンピュータ」を開き
user-Bアカウントのプロパティの「公開された証明書」タブで、「2.」でエクスポートした証明書をインポートします。
4.PC-A / user-Aで、先ほど暗号化したファイルに、「自由にアクセスできるユーザー」としてuser-Bを追加します。
実際は、証明書を選択。
(※想像ですが、ここでFEKをuser-Bの公開鍵で暗号を行いDDFに追加され保存されているはず。)
5.PC-B/user-BからPC-Aの共有フォルダにあるファイルAにアクセス
(※実際にはダブルクリックにて開こうとしています)
6.「アクセスが拒否されました」と表示され、ひらくことができない。
「6.」では、user-Bの秘密鍵にてDDFに保存されたFEKを取り出し、複合を行ってくれるはずなのですが、
なにが間違っているのかわかりません。
アドバイスお願いします。
2008年9月16日 10:12 -
以下のように記憶しています。
PC-Aからuser-Aアカウントで共有フォルダを暗号化する。
user-Aの証明書(user-A.cer)をFD等にエクスポートする時、秘密キーも一緒にパスワード付きで(.pfx形式)でエクスポートする必要があります。
その後、FD等にエクスポートしたuser-Aの証明書(user-A.cer)およびパスワード付きの秘密キー(.pfx形式)を
PC-Bのuser-Bアカウントの「証明書スナップイン」でuser-Aの証明書(user-A.cer)をインポートしかつパスワード付きの秘密キー(.pfx形式)をインストールしなければPC-Bのuser-Bアカウントからは、アクセスできなかったと記憶しています。
ドメインのビルトインアカウントのAdministratorの回復証明書(Administrator.cer)をエクスポートする時も同様です。
ドメインのビルトインアカウントのAdministratorの回復証明書はドメインで構築された最初のドメインコントローラでしか、そのパスワード付きの秘密キー(.pfx形式)はエクスポートできないようです。そのほかのPCから複号化するにはドメインのビルトインアカウントのAdministratorの回復証明書(Administrator.cer)およびそのパスワード付きの秘密キー(.pfx形式)がないと複号化できないようです。
当方、この暗号化ファイルシステムは現在使用していないので(暗号化フリーソフトの使用または共有フォルダへのアクセス権を付けて対応)しているので、詳しいことが知られたいなら、Microsoft社の正式サホートを受けられてはいかがでしょうか。
2008年9月16日 16:07 -
例えば、
PC-Aからuser-Aアカウントでドメインコントローラの共有フォルダを暗号化する。
ドメインコントローラの「証明書スナップイン」を叩くと「個人ストア」に目的が「暗号化ファイルシステム」となっている証明書(*.cer)が作成される。
その証明書をActive DirectoryユーザーとコンピュータでビルトインAdministratorアカウントに公開する。
暗号化された共有フォルダのあるドメインコントローラで「証明書スナップイン」を叩き「個人ストア」に目的が「暗号化ファイルシステム」となっている証明書(*.cer)を右クリックし、その秘密キーをパスワード付で(*.pfx)ファイル形式でFD等に保存する。
暗号化された共有フォルダがあるドメインコントローラでビルトインAdministratorアカウントでログオンし、パスワード付でFD等に保存した秘密キー(*.pfx)ファイルを右クリックしてインストールする。といった手順になるようです。
PC-Bからuser-Bアカウントでその暗号化された共有フォルダを共有する時も同様で、Active Directoryユーザーとコンピュータで
user-Bアカウントに公開するといった手順になるようです。(パスワード付でFD等に保存した秘密キー(*.pfx)ファイルをインストール
しておくことが必要です。)
2008年9月17日 9:40 -
チャブーンです。
まずこれですが、ご要望を言い換えると、こういうことですね?
ドメイン参加したクライアント PC-A 上に共有フォルダを作り、そこに置いたファイルをUser-A、User-B両方で暗号/復号できるようにしたい。User-Bは別コンピュータでログオンして、ネットワーク越しに復号したい、と。
これをするためには、2 つ条件がいります。最初の 1 つは「PC-A にログオンした状態のUser-A/User-Bがファイルを暗号/復号できるようにする」ということです。
EFS ファイルはその暗号/復号に、基本的にファイルが置かれたコンピュータにある暗号化証明書だけを利用します。暗号化証明書はユーザ証明書ストアにありますが(ない場合は必要時に生成されます)、ユーザ証明書ストアはユーザプロファイルに含まれますので、一度でもログオンをしてユーザプロファイルが生成されないと利用できません (共有フォルダ上へのアクセスでも、共有フォルダを持つコンピュータ上にプロファイルが自動的に作られます)。
ここでは一番簡単な方法として、PC-A に User-B でもログオンして、適当な EFS 暗号化ファイル(ダミーでよい)を設定します。すると、User-B のユーザ証明書ストアに暗号化証明書が生成されますので、これから公開鍵だけをエクスポートし、これを Active Directory に登録します。この公開鍵を User-A で作った EFS ファイルに追加で暗号化するよう、設定すればよいでしょう。こうすることで (NTFS アクセス許可を間違えなければ)、PC-A 上にログオンした User-A および User-B どちらでも復号できます。
User-B が復号できるのは、(エクスポートした)公開鍵に対応する秘密鍵をもつ暗号化証明書が、自分の証明書ストアに入っているからです。ちなみに秘密鍵を含む暗号化証明書が自動的にインポートされることはありません。たとえばどのコンピュータにログオンしても「証明書ストアに同一の(秘密鍵付き)暗号化証明書が入っている」状態を作る出したければ、移動プロファイルを利用するのがよいでしょう。ただし、移動プロファイルに含まれるファイルやフォルダを EFS 暗号化に設定してはいけません。
最初の条件がクリアされたら、次は「共有フォルダを持つコンピュータを『委任に対して信頼する』よう設定する」ことになります。
『コンピュータを委任に対して信頼する』というのは、あるコンピュータに対してドメイン認証を行った後、再度ドメイン認証が必要になったとき、クライアントではなくそのコンピュータが代わりに認証を行ってくれる、というしくみです。共有フォルダに置かれた EFS をネットワーク越しに暗号/復号する場合、この機能が必要になります。細かい点は、したの資料のを見ていただくといいでしょう。
2008年9月21日 16:41 -
下記の手順で検証できました。
(1).PC-Aからuser-Aアカウントでドメインコントローラの暗号化ファイルの共有が目的の共有フォルダを暗号化する。
(2).ドメインコントローラで「証明書スナップイン」を叩くと「信頼されたユーザー」→「証明書」に「user-A.cer」が作成される。
(3).PC-Bからuser-Bアカウントでドメインコントローラの任意(暗号化ファイルの共有が目的ではない)の共有フォルダを暗号化する。
(4).ドメインコントローラで「証明書スナップイン」を叩くと「信頼されたユーザー」→「証明書」に「user-B.cer」が作成される。
(5).ドメインコントローラでビルトインAdministratorでログオンしActive Directoryユーザーとコンピュータを開き「公開された証明書」で、user-Aアカウントに「user-A.cer」をストアから追加、user-Bアカウントに「user-B.cer」をストアから追加する。
(6).ドメインコントローラでビルトインAdministratorでログオンし、手順(1).PC-Aからでuser-Aアカウントで暗号化した共有フォルダの中の暗号化ファイルの共有が目的のファイルに、手順(4).で作成した「user-B.cer」を追加する。
user-Aアカウントの「user-A.cer」の秘密キーのエクスポート・インポートは必要ありませんでした。
ただし、ドメインコントローラでないメンバーサーバー・クライアントコンピュータの共有フォルダはActive Directoryユーザーとコンピュータを開き、共有フォルダがある該当のコンピュータアカウントで、「委任」→「任意のサービスへの委任でこのコンピュータを信頼する」にチェックを付けないと、ネットワーク越しにクライアントより暗号化はできません。
※現実には、このようなケースでは暗号化ファイルシステムは使用せず、目的の共有フォルダにuser-Aアカウント、user-Bアカウントのみにアクセス権を付与する方法で対処していますが。
2008年9月26日 11:00 -
こんにちは。
フォーラムオペレーターの鈴木裕子です
OTAKA さん、その後いかがですか?
試験問題作成委員会 さん、チャブーン さんの投稿をもとに検証はうまくいきましたでしょうか?
OTAKA さんのその後が気になるところではありますが、
こちらの情報を他の皆様にも活用していただきたく、
勝手ながら私の方で回答チェックをつけさせていただきました。
OTAKA さんはチェックの解除ができますので、もし不適切でしたら修正をお願いします。
よろしければ、その後の情報を投稿していただけるとうれしいです!
これからもForumをご活用くださいね。
2008年10月9日 4:59