2015-01-05 3 views
5

मैं उस एप्लिकेशन में कुछ संवेदनशील डेटा संग्रहीत करने के लिए देख रहा हूं जिस पर मैं काम कर रहा हूं। मैं माइक्रोसॉफ्ट द्वारा प्रदान की गई ProtectedData कक्षा को देख रहा हूं, और यह बहुत सरल दिखता है। हालांकि, मेरे पास यह कैसे काम करता है इसके बारे में कुछ प्रश्न हैं।क्या संरक्षित डेटा कई कंप्यूटरों पर काम करता है?

सबसे पहले, मुझे लगता है कि यह एन्क्रिप्शन कुंजी उत्पन्न करने के लिए "उपयोगकर्ता के लॉगिन प्रमाण-पत्र" का उपयोग करता है। मैंने प्रलेखन में देखा है कि केवल वर्तमान उपयोगकर्ता डेटा को डिक्रिप्ट करने में सक्षम होगा। यह कोई समस्या नहीं है, मैं सिर्फ यह जानना चाहता हूं कि एक ही मशीन पर एक ही उपयोगकर्ता लॉग इन है या नहीं, क्या वे डेटा को डिक्रिप्ट करने में सक्षम होंगे? मैं OneDrive पर सहेजी गई सहेजी गई जानकारी को रखने की योजना बना रहा हूं, इसलिए उम्मीद है कि यह किसी भी डिवाइस पर पहुंच योग्य होगा जो वही उपयोगकर्ता उपयोग कर रहा है।

पूर्व:

User A logs in on desktop computer, saves encrypted file abc.txt 
User A then logs in on tablet, loads file abc.txt 

है abc.txtउपयोगकर्ता टेबलेट पर एक के लिए सुलभ?

दूसरा, उपयोगकर्ता अपना पासवर्ड बदलने के बाद क्या होता है? ऐसा लगता है कि एन्क्रिप्शन कुंजी तब अलग होगी, और इससे डेटा की डिक्रिप्शन नहीं होगी जो पिछले एन्क्रिप्शन कुंजी का उपयोग करने योग्य नहीं होगा?

पूर्व:

User A logs in on desktop computer, saves encrypted file abc.txt 
User A changes password 
User A logs in on desktop computer, loads file abc.txt 

है abc.txt सुलभ को उपयोगकर्ता A अब और ??

+0

मैं सोच रहा हूँ इसे और अधिक समझ कर सकता है मेरी प्रयोजनों जैसे 'RijndaelManaged कुछ का उपयोग करने के लिए: पृथक रोमिंग की दुकान पाने के लिए

using (IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Domain | IsolatedStorageScope.Assembly, null, null)) { isoStore.CreateDirectory("TopLevelDirectory"); isoStore.CreateFile("abc.txt"); } 

उदाहरण:

उदाहरण पृथक घूम दुकान बनाने के लिए इसके बजाए कम से कम कुछ जो सीधे किसी विशिष्ट उपयोगकर्ता से बंधे नहीं है। प्रश्न अभी भी खड़ा है, फिर भी 'संरक्षित डेटा' एक ही लॉग इन उपयोगकर्ता के साथ कई वर्कस्टेशन में काम करेगा? –

+0

मैं कहूंगा, 'संरक्षित डेटा' वास्तव में एकाधिक मशीनों पर उपयोग करने के लिए डिज़ाइन नहीं किया गया है। यह "स्मृति में" डेटा सुरक्षा के लिए अधिक है। आपको एक एन्क्रिप्शन के लिए कुछ अच्छी क्रिप्टो सेवा का उपयोग करने की आवश्यकता है जिसे आप तार पर भेजना चाहते हैं। और मुझे संदेह है कि यह मल्टी पर काम करेगा। मशीनें क्योंकि यह .NET नहीं है - यह डीपीएपीआई का उपयोग करता है। –

उत्तर

4

क्या टैबलेट पर उपयोगकर्ता ए के लिए abc.txt सुलभ है?

"DPAPI में है कि एक अलग कंप्यूटर पर लॉग में सही ढंग से काम करने के लिए जब यह प्रोफाइल रोमिंग का उपयोग करता है, डोमेन उपयोगकर्ता केवल डोमेन में एक भी कंप्यूटर पर लॉग इन होना चाहिए। उपयोगकर्ता चाहता है के लिए डोमेन, उपयोगकर्ता को दूसरे कंप्यूटर पर लॉग ऑन करने से पहले लॉग ऑन करना होगा। यदि उपयोगकर्ता एक ही समय में कई कंप्यूटरों पर लॉग ऑन है, तो यह संभावना है कि DPAPI मौजूदा एन्क्रिप्टेड डिक्रिप्ट करने में सक्षम नहीं होगा डेटा सही ढंग से। " - http://support.microsoft.com/kb/309408

क्या abc.txt उपयोगकर्ता ए के लिए सुलभ है? एक मशीन पर, पासवर्ड बदलने के बाद उपयोगकर्ता को पहले से एन्क्रिप्टेड फ़ाइलों तक पहुंचने में सक्षम होना चाहिए। मेरी समझ है कि पहले जेनरेट की गई कुंजी अभी भी इसकी अनुमति देने के लिए एक सूची में संग्रहीत हैं। (जब भी कोई उपयोगकर्ता अपना पासवर्ड बदलता है, तो यह पहले से संग्रहीत डेटा को डिक्रिप्ट और फिर से एन्क्रिप्ट करना होगा, इसलिए इसके बजाय वे पुरानी चाबियाँ रखते हैं।)

हालांकि, ऐसे प्रशासनिक टूल हैं जो आपको अनुमति देंगे पासवर्ड को इस तरह से बदलने के लिए जो इसे तोड़ सकता है।

मुझे नहीं पता कि मशीन ए पर अपना पासवर्ड बदलने की असर मशीन बी पर होगी। मुझे लगता है कि रोमिंग प्रोफाइल इस तरीके से ठीक से निपटेंगे, लेकिन यह एक अवैध धारणा हो सकती है।

मैं डीपीएपीआई में डेटा स्टोर नहीं करता जो इसे कहीं भी समर्थन के बिना महत्वपूर्ण है। बेशक, डेटा की संवेदनशीलता के आधार पर अन्य सुरक्षा संबंधी जटिलताओं को प्रस्तुत करता है।

+0

मुझे लगता है कि यह मेरी धारणा को मजबूत करता है कि एन्क्रिप्शन की एक अलग विधि का उपयोग करना शायद मेरी स्थिति में जाने का तरीका है। प्रश्न के दोनों हिस्सों के पूर्ण जवाब के लिए धन्यवाद। –

3

डेटा प्रोटेक्शन एपीआई (डीपीएपीआई) roaming profiles के साथ सही तरीके से काम करता है। तो यह इस तथ्य को कवर करेगा कि उपयोगकर्ता नेटवर्क पर डेटा डिक्रिप्ट कर सकता है। IsolationStorage का उपयोग डेटा को संग्रहीत करने के लिए किया जाता है जो एकाधिक अनुप्रयोगों पर लागू होता है और उपयोगकर्ता के नाम या लाइसेंस जानकारी जैसे किसी विशेष एप्लिकेशन से बंधे नहीं है।

IsolatedStorageFile isoFile = 
IsolatedStorageFile.GetStore(IsolatedStorageScope.User | 
    IsolatedStorageScope.Assembly | 
    IsolatedStorageScope.Roaming, null, null); 
+0

इस जानकारी के लिए धन्यवाद। सुरक्षा को बढ़ाने के लिए पृथक भंडारण के अतिरिक्त एन्क्रिप्शन का उपयोग किया जाएगा? या अलग भंडारण भी एन्क्रिप्शन प्रदान करता है? –

+0

पृथक भंडारण तक पहुंच एप्लिकेशन के डोमेन और असेंबली, या अकेले असेंबली से जुड़ी पहचान के अनुसार भी प्रतिबंधित है। एमएसडीएन दस्तावेज़ पढ़ें। यह सब बहुत अच्छी तरह से समझाया गया है – Sievajet

संबंधित मुद्दे