私は、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は、「元の」システムで暗号化されたファイルを復号化できますか?私は、異なるハードウェアのために解読は失敗するだろうが、暗号を行うのに必要なすべての情報がレジストリまたはファイルシステムに存在すれば、それはうまくいくだろうと考えられる。
明らかに、私はこれを自分でテストすることができましたが、私は実際にそうするためのリソースを持っていないし、他の誰かがすでに答えを知っているかどうかを無限に調べています。どんなアドバイスも大歓迎です!