2012-11-30 5 views
7

私は、v4のSystem.Security.Cryptography.ProtectedData()とUnprotectData()メソッドをDataProtectionScope.LocalMachineスコープで使用して、ファイルを1台のマシンでのみ暗号化/復号化できることをテストしています。ここで私がやっているかの一般的な考えは、私はこれをやったときに、私は予想される動作を取得し、それで完全に同じ上の任意のユーザーを仕事に表示されていることを確実にするために、テストの負荷を行っている...DPAPIとProtectedData.Protect()はどのように.net 4のディスクイメージ/クローンを扱いますか?

//Encrypt  
byte[] outBytes = ProtectedData.Protect(File.ReadAllBytes(fileIn), null, DataProtectionScope.LocalMachine); 
File.WriteAllBytes(fileOut, outBytes); 

//Decrypt  
byte[] outBytes = ProtectedData.Unprotect(File.ReadAllBytes(fileIn), null, DataProtectionScope.LocalMachine);    
File.WriteAllBytes(fileOut, outBytes); 

ですマシンは上記のメソッド呼び出しを使用してファイルを暗号化/復号化できます。

私の質問は、このメカニズムを使って暗号化されたファイルを含むシステムのディスクイメージを作成したり(Acronis、Ghostなどを使用して)複製し、そのイメージを別のマシンに復元するとどうなりますか? (1つの例として、IT部門は1つのシステムをあらかじめロードし、その後同じハードウェア構成のマシン群の基本イメージとなります)。別のハードウェア上の復元されたOSは、「元の」システムで暗号化されたファイルを復号化できますか?私は、異なるハードウェアのために解読は失敗するだろうが、暗号を行うのに必要なすべての情報がレジストリまたはファイルシステムに存在すれば、それはうまくいくだろうと考えられる。

明らかに、私はこれを自分でテストすることができましたが、私は実際にそうするためのリソースを持っていないし、他の誰かがすでに答えを知っているかどうかを無限に調べています。どんなアドバイスも大歓迎です!

答えて

4

私の回答はがActive Directoryやその他のローミングソースに格納されているキーを明示的に使用しているため、単一の物理キーに結び付けられていないためです。

LocalMachineまではマシンキーがマシンのHDDに保存され、Windowsのインストールの「sysprep」ステージを使用して生成されるため、コンピュータのクローンは同じファイルを開くことができます企業のWindowsロールアウトで同じシステムイメージを使用できる理由はありますが、sysprepを実行している限り、各システムには独自のキーがあります)。

コンピュータはマシンキーを再作成することができます(古いキーを保存して、古いデータを復号化することもできます)。私はキーを再作成して古いものを削除する方法を知りません。

出典:http://www.windows-server-answers.com/microsoft/Security-Cryptography/30350079/local-machine-masterkey-in-dpapi.aspx

0

いい質問 - 狩猟マスターキーが自動的にすべてのCAを再生しているようだ周り90日。 Passcape.comには非常に良いanalysisがあります - DPAPIセキュリティの中心はSYSTEMハイブのレジストリに格納されているシステムのSYSKEYにリンクされています。

apparentlyは、CRYPT_PROTECT_REGENERATEフラグを指定したCryptProtectData()呼び出しを使用して、クローンシステムでDPAPIマスターキーを更新することができるため、DPAPI保護のユースケースはセキュリティ上のリスクとなります。

DPAPIはローカルマシンのセキュリティには最適ですが(ただし、パスワード回復についてEpyx Forensicsのpostを参照してください)、クローン作成時にセキュリティ対策を追加する必要があります。システムのクローン作成方法を制御することはできません。

この質問はおそらくhttps://security.stackexchange.com/でより良い回答が得られるでしょう。

関連する問題