暗号化ファイルシステムEFSで暗号化したファイルを他のPCで読み出すためには、暗号化に使用した証明書と秘密鍵の情報も必要となる。それらの情報をエクスポート/インポートする方法を紹介する。
対象OS:Windows 7/Windows 8/Windows 8.1/Windows 10/Windows Server 2008 R2/Windows Server 2012/Windows Server 2012 R2/Windows Server 2016
TIPS「Windows 10でUSBメモリに書き込んだファイルが読めない場合の原因と対策(FATのEFS暗号化編)」では、USBメモリに保存したファイルが「暗号化ファイルシステムEFS」で暗号化されていると、別のPCでは読み出せなくなる、という症状を紹介した。
この原因は、EFSで暗号化されたファイルだけを別のPCに移動させても、暗号化を解除するための情報が不足しているからである。
EFSでは暗号化のために公開鍵暗号システムを使っている。そのため復号するには、読み出したいPC上にその秘密鍵情報と、それに対応するユーザー証明書を別途インストールしておく必要がある。
復号に必要な証明書は各ユーザーにひも付いている。だからといって、たとえ2台のPC上に同じ名前のユーザーアカウントを用意しても、一方のPC上で作成した暗号化ファイルは、別のPC上で復号することはできない(非Active Directory構成のPCの場合)。Windows OSの内部では、たとえ同じユーザー名でも、まったく別のユーザーとして扱われているからだ。
本TIPSでは、EFSで暗号化されたファイルを復号するための秘密鍵と証明書をエクスポートし、それを対象PCにインポートする手順についてまとめておく。Windows 10以外のEFSでも、この手順で読み書きできるようになる。
なおこの方法は、EFSファイルの復号のための証明書情報が不足している場合にのみ有効な手段である。暗号化されたファイルの拡張子が「〜.PFILE」になってしまっている場合は(Windows 10で書き込んだFAT/FAT32/exFAT形式のUSBメモリを、Windows 10以外でアクセスしようとしている場合)、証明書情報をインポートしても読み出せるようにはならない。
EFSで暗号化されたファイルを復号するためには、暗号化を行ったユーザーの「秘密鍵」と「暗号化ファイルシステム用の証明書」をあらかじめエクスポートしておく。
このためにはまず、暗号化を行ったPC上で、暗号化したファイルのプロパティ画面を表示させる。
「属性の詳細」画面が表示されるので、[詳細]ボタンをクリックする。
[詳細]ボタンをクリックすると暗号化に関する情報を確認できる。
ユーザー名を選んで[キーのバックアップ]をクリックすると、証明書のエクスポートウィザードが起動する。
この画面では、デフォルトで選択されている「Personal Information Exchange - PKCS #12 (.PFX)」を選んで次へ進める。その下にあるチェックボックスは、一番上((2))だけオンにしておけばよい。
この画面では、暗号化したファイルの復号に利用する秘密鍵を保護するためのパスワードを指定する。秘密鍵情報が漏えいすると、いくらEFSで暗号化していてもまったく意味がなくなる。なので秘密鍵は厳重に保護して対象のPCへインポートさせなければならない。簡単には解読されないように、十分長くて複雑なパスワードを付けておくこと。
パスワードを入力したら、次の画面では保存先を指定する。
保存先を指定したら[次へ]をクリックして証明書のエクスポートを完了させる。終了後は、指定した場所に「〜.pfx」というファイルが作成されているはずである。
D:\>dir MyEfsKey.* ……作成されたファイルの確認
ドライブ D のボリューム ラベルは DATAVOLUME です
ボリューム シリアル番号は 0344-EE00 です
D:\ のディレクトリ
2017/03/14 13:07 2,508 MyEfsKey.pfx ……エクスポートされた.pfxファイル。この中にユーザーの証明書と秘密鍵情報が保存されている
1 個のファイル 2,508 バイト
0 個のディレクトリ 1,209,791,463,424 バイトの空き領域
D:\>
Copyright© Digital Advantage Corp. All Rights Reserved.