मैं .NET v4 की System.Security.Cryptography.ProtectedData() और UnprotectData() और DataProtectionSocope.LocalMachine स्कोप के साथ विधियों का उपयोग करने के विचार का परीक्षण कर रहा हूं यह सुनिश्चित करने के लिए कि एक फ़ाइल को केवल एक मशीन पर एन्क्रिप्ट/डिक्रिप्ट किया जा सके। यहाँ मैं क्या कर रहा हूँ के सामान्य विचार ...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);
मैं परीक्षण का भार किया है सुनिश्चित करने के लिए कि मैं अपेक्षित व्यवहार मिलता है जब यह कर रही है और यह एक ही पर कोई भी उपयोगकर्ता है कि में पूरी तरह से काम करने के लिए प्रकट होता है मशीन ऊपर सूचीबद्ध विधि कॉल का उपयोग कर फ़ाइल को एन्क्रिप्ट/डिक्रिप्ट कर सकती है।
मेरा प्रश्न यह है कि अगर कोई इस डिस्क का उपयोग करके एन्क्रिप्टेड फ़ाइल वाली एक डिस्क की डिस्क छवि या क्लोन (एक्रोनिस, घोस्ट, इत्यादि ...) का उपयोग करता है, तो उस छवि को एक अलग मशीन पर पुनर्स्थापित करता है? (एक उदाहरण है और आईटी विभाग एक प्रणाली को पूर्व-लोड कर रहा है जो तब समान हार्डवेयर कॉन्फ़िगरेशन वाली मशीनों की सेना के लिए मूल छवि बन जाता है)। क्या हार्डवेयर के एक अलग टुकड़े पर पुनर्स्थापित ओएस फाइल को डिक्रिप्ट करने में सक्षम होगा जो "मूल" सिस्टम पर एन्क्रिप्ट किया गया था? मेरी आशा है कि विभिन्न हार्डवेयर की वजह से, डिक्रिप्शन विफल हो जाएगा, लेकिन यह समझ में आ सकता है कि यदि क्रिप्टो करने के लिए आवश्यक सभी जानकारी रजिस्ट्री या फ़ाइल सिस्टम पर मौजूद है, तो यह काम करेगी।
जाहिर है, मैं अपने लिए यह परीक्षण कर सकता हूं, लेकिन मेरे पास वास्तव में ऐसा करने के लिए संसाधन नहीं हैं और यह देखने के लिए अंतहीन खोज रहे हैं कि क्या कोई और वहां से पहले ही जवाब जान सकता है या नहीं। किसी भी सलाह की बहुत प्रशंसा की जाएगी!