उपयोगकर्ता स्टोर के साथ एक वेब फार्म पर्यावरण में डीपीएपीआई/संरक्षित डेटा का उपयोग करना

मैं सोच रहा था कि क्या किसी ने वेब फार्म पर्यावरण में उपयोगकर्ता स्टोर के साथ डीपीएपीआई का सफलतापूर्वक उपयोग किया है?

चूंकि हमारा एप्लिकेशन हाल ही में 1.1 से 2.0 एएसपी.NET ऐप में परिवर्तित हो गया है, इसलिए हम एक कस्टम रैपर का उपयोग कर रहे हैं जो सीधे CryptUnprotect विधियों को कॉल करता है। लेकिन यह 2.0 ढांचे में उपलब्ध ProtectedData </​​code> विधि जैसा ही होना चाहिए।

चूंकि हम एक वेब फार्म पर्यावरण में परिचालन कर रहे हैं, हम इस बात की गारंटी नहीं दे सकते कि एन्क्रिप्शन मशीन जिसने इसे डिक्रिप्ट कर दिया है। (इसके अलावा मशीन विफलताओं को हमारे एन्क्रिप्टेड डेटा को नष्ट नहीं करना चाहिए)।

तो हमारे पास एक सर्विस्ड घटक है जो हमारे वेब बॉक्स में से प्रत्येक पर किसी विशेष उपयोगकर्ता खाते के तहत सेवा में चलता है। यह उपयोगकर्ता पुनर्मूल्यांकन के अनुसार रोमिंग प्रोफाइल रखने के लिए एक सेट अप है।

हमारे पास समस्या यह है कि एक मशीन पर एन्क्रिप्ट की गई जानकारी को किसी अन्य पर डिक्रिप्ट नहीं किया जा सकता है, यह Win32 त्रुटि के साथ विफल रहता है:

'निर्दिष्ट स्थिति में उपयोग के लिए कुंजी वैध नहीं है'।

मुझे संदेह है कि ऐसा इसलिए है क्योंकि मैंने कई मशीनों पर उपयोगकर्ता के रूप में एन्क्रिप्शन सेवा चलाने के द्वारा गलती की है, इसलिए उपयोगकर्ता को एक ही समय में एक से अधिक मशीनों पर लॉग इन करना है।

यदि यह समस्या है, तो वेब फार्म पर्यावरण में उपयोगकर्ता स्टोर के साथ अन्य डीपीएपीआई का उपयोग कैसे कर रहे हैं?

3
हाय, क्या आपको इसका जवाब मिला? मुझे भी यही समस्या हो रही है।
जोड़ा लेखक user6535, स्रोत

3 उत्तर

वेब डेटा पर्यावरण में, सीधे अपने डेटा को एन्क्रिप्ट/डिक्रिप्ट करने के लिए डीपीएपीआई का उपयोग करने के बजाय, आप इसके बजाय कुंजी को एन्क्रिप्ट करने के लिए इसका उपयोग करेंगे जिसे आपने बाद में अपने संरक्षित डेटा को डिक्रिप्ट करने के लिए उपयोग किया था।

आप तैनाती प्रक्रिया के हिस्से के रूप में प्रत्येक सर्वर पर कुंजी "इंस्टॉल" करेंगे। स्थापना स्क्रिप्ट को AppPool की पहचान के तहत चलाने की आवश्यकता होगी, और एन्क्रिप्टेड कुंजी को या तो app.config फ़ाइल में या रजिस्ट्री में संग्रहीत कर सकता है।

एन्क्रिप्टेड डेटा को केंद्रीय भंडार/डेटाबेस में संग्रहीत किया जा सकता है, ताकि इसे खेत के सभी सर्वरों तक पहुंचा जा सके। डेटा को डिक्रिप्ट करने के लिए, वेब ऐप एन्क्रिप्टेड कुंजी को इंस्टॉल किया गया था, जहां से इसे इंस्टॉल किया गया था, डीपीएपीआई का उपयोग इसे डिक्रिप्ट करने के लिए करें, फिर केंद्रीय भंडार से आने वाले डेटा को डिक्रिप्ट करने के लिए परिणाम का उपयोग करें।

नकारात्मकता यह है कि प्रारंभिक इंस्टॉल प्रक्रिया के दौरान स्थानीय डिस्क पर क्लीयरक्स्ट कुंजी मौजूद हो सकती है, जहां यह संचालन कर्मचारियों के संपर्क में आ सकती है। आप एन्क्रिप्शन की एक अतिरिक्त परत जोड़ सकते हैं, जैसे web.config machineKey, अगर यह चिंता है।

8
जोड़ा
यह दुर्भाग्यपूर्ण है, क्योंकि डीपीएपीआई के फायदों में से एक यह है कि यह स्वचालित रूप से हर 3 महीने में मास्टर कुंजी की अवधि समाप्त कर देता है, फिर भी पहले एन्क्रिप्टेड डेटा को डिक्रिप्ट करने में सक्षम है। msdn.microsoft.com/en-us/library/ms995355.aspx उद्धरण: "यह समाप्ति एक हमलावर को एक मास्टरकी समझौता करने और उपयोगकर्ता के सभी सुरक्षित डेटा तक पहुंचने से रोकती है।" यदि इसकी समझौता हो तो अपनी खुद की कुंजी का उपयोग करके, आपके सभी डेटा का खुलासा किया जाता है।
जोड़ा लेखक ToddK, स्रोत
यह थोड़ा सा है, लेकिन मेरा मानना ​​है कि आप अभी भी वेब को देख सकते हैं, भले ही web.config में निहित हो और aspnet_regiis का उपयोग करके एन्क्रिप्ट किया गया हो। आपका दृष्टिकोण वह है जो अधिकांश लोग ढूंढ रहे हैं क्योंकि एएसपी.नेट या बीसीएल में बॉक्स के बाहर कोई समान तंत्र नहीं है।
जोड़ा लेखक CodeMonkeyKing, स्रोत

मैंने बस यह देखा। एक तरीका है कि आप यह काम कर सकते हैं, और यह सुनिश्चित करना है कि खेत में मशीनें डोमेन में हों, और डेटा को एन्क्रिप्ट और डिक्रिप्ट करने के लिए डोमेन खाते का उपयोग करें (यानी; डोमेन खाते के अंतर्गत एप्लिकेशन चलाएं)

आप स्थानीय खातों के साथ जिस तरह से डीपीएपीआई का उपयोग नहीं कर सकते हैं क्योंकि मुख्य सामग्री सर्वर के बीच आदान-प्रदान नहीं की जाती है।

उम्मीद है की वो मदद करदे!

2
जोड़ा

The Microsoft poster is wrong. http://support.microsoft.com/default.aspx?scid=kb;en-us;309408#6

"रोमिंग प्रोफाइल का उपयोग करते समय डीपीएपीआई सही तरीके से काम करने के लिए, डोमेन उपयोगकर्ता को केवल डोमेन में एक कंप्यूटर पर लॉग ऑन होना चाहिए। यदि उपयोगकर्ता डोमेन में मौजूद किसी भिन्न कंप्यूटर पर लॉग ऑन करना चाहता है, तो उपयोगकर्ता को लॉग ऑफ करना होगा उपयोगकर्ता पहले कंप्यूटर पर दूसरे कंप्यूटर पर लॉग इन करने से पहले पहला कंप्यूटर। यदि उपयोगकर्ता एक साथ कई कंप्यूटरों पर लॉग ऑन है, तो संभव है कि डीपीएपीआई मौजूदा एन्क्रिप्टेड डेटा को सही तरीके से डिक्रिप्ट नहीं कर पाएगा। "

ऐसा लगता है कि डीपीएपीआई एक फार्म सेटिंग में काम नहीं करेगा। मुझे लगता है कि यह माइक्रोसॉफ्ट के हिस्से पर एक बड़ी निगरानी है और अधिकांश उद्यम अनुप्रयोगों के लिए डीपीएपीआई लगभग बेकार बनाता है।

1
जोड़ा