2013-01-08 15 views
8

मैं एक पासवर्ड प्रबंधक में संग्रहीत पासवर्ड डिक्रिप्ट करने के लिए उपयोग की जाने वाली निजी कुंजी को स्टोर करने के लिए प्रति उपयोगकर्ता Win32 क्रिप्टोग्राफिक कुंजी कंटेनर (.Net RSACryptoServiceProvider कक्षा के माध्यम से) का उपयोग कर रहा हूं।विंडोज क्रिप्टोग्राफिक कंटेनर कितने सुरक्षित हैं?

निजी कुंजी कितनी सुरक्षित है? स्पष्ट रूप से एक ही उपयोगकर्ता खाते से चल रहे किसी भी प्रोग्राम को इसका उपयोग कर सकते हैं। लेकिन क्या उपयोगकर्ता वास्तव में उपयोगकर्ता के पासवर्ड के आधार पर एन्क्रिप्टेड कुंजी है?

क्या मुझे लगता है कि निजी कुंजी केवल उपयोगकर्ता लॉग ऑन होने पर पहुंच योग्य है? या एक सेवा (या कोई अन्य खाता) अभी भी कुंजी निकालने के लिए कर सकते हैं? क्या कंप्यूटर व्यवस्थापक उपयोगकर्ता के पासवर्ड को नहीं जानता है इसे निकाला जा सकता है? क्या प्रशासनिक खाते का उपयोग कर उपयोगकर्ता के पासवर्ड को रीसेट करके कुंजी निकाली जा सकती है? अगर कंप्यूटर चोरी हो जाता है और हमलावर हार्डडिस्क तक पहुंच सकता है (लेकिन उपयोगकर्ता का पासवर्ड नहीं जानता), तो क्या वह निजी कुंजी निकाल सकता है? यदि उपयोगकर्ता ने सत्र को लॉक कर दिया है, तो क्या हमलावर प्रशासनिक खाता/कर्नेल ड्राइवर का उपयोग कर स्मृति से कुंजी निकाल सकता है?

पीएस मुझे 'मास्टर कुंजी' पैटर्न के बारे में पता है, लेकिन यह मेरे मामले में स्वीकार्य नहीं है, इसलिए मुझे पासवर्ड को सबसे सुरक्षित तरीके से स्टोर करने की आवश्यकता है।

+0

यह देखने में थोड़ा मुश्किल है कि आप कुंजी को एन्क्रिप्ट कर रहे हैं, जब यह सुनिश्चित होता है कि आप इसके बजाय पासवर्ड एन्क्रिप्ट करना चाहते हैं। किसी पासवर्ड को डिक्रिप्ट करने के लिए कहीं भी आरएसए। एक्सपोर्ट पैरामीटर (सत्य) को कॉल करना निजी कुंजी की सुरक्षा के लिए भौतिक सुरक्षा की आवश्यकता होती है। इसके बजाए पासवर्ड के हैश को संग्रहित और तुलना करके केवल लॉगऑन को कार्यान्वित करें। –

उत्तर

2

उपयोगकर्ता की निजी कुंजी केवल उपयोगकर्ता के लॉग ऑन होने पर ही पहुंच योग्य होनी चाहिए, और उपयोगकर्ता के पासवर्ड को रीसेट करके बस रीसेट पासवर्ड का उपयोग करके लॉग इन नहीं किया जा सकता है (वास्तव में, उपयोगकर्ता पासवर्ड को रीसेट करने से पहले, चेतावनियां हैं उपयोगकर्ता एन्क्रिप्टेड डेटा तक पहुंच खो देगा आदि) देखें: http://support.microsoft.com/kb/290260

हालांकि, उपयोगकर्ता लॉग इन करने के बाद, अन्य उपयोगकर्ताओं की प्रक्रियाओं के लिए पर्याप्त विशेषाधिकारों के साथ संभावना है (आमतौर पर केवल प्रशासनिक/सिस्टम खाते) संग्रहीत कुंजी का उपयोग करने के लिए, उदाहरण के लिए एक उपयोगकर्ता प्रक्रिया में कोड इंजेक्शन करके जो मैं चलाऊंगा, मैं उपयोगकर्ता का संदर्भ हूं और इसलिए उपयोगकर्ता को कुंजी के साथ कुछ भी करने में सक्षम होना चाहिए (इसे डिक्रिप्ट, साइन, या निर्यात करने के लिए इसका उपयोग करें आदि)।

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

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