2009-08-07 22 views
18

मैं लगभग Key Containers in .NET को असममित क्रिप्टोग्राफी और डिजिटल हस्ताक्षर के लिए एक निजी कुंजी स्टोर करने के लिए एक सुरक्षित स्थान के रूप में पढ़ रहा था।कुंजी कंटेनर, निजी कुंजी स्टोर करने के लिए पर्याप्त सुरक्षित?

मेरा सवाल यह है कि कुंजी कंटेनर कितना सुरक्षित है?

// Create the CspParameters object and set the key container 
// name used to store the RSA key pair. 
CspParameters cp = new CspParameters(); 
cp.KeyContainerName = ContainerName; 

// Create a new instance of RSACryptoServiceProvider that accesses 
// the key container MyKeyContainerName. 
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cp); 

// Display the key information to the console. 
Console.WriteLine("Key retrieved from container : \n {0}", rsa.ToXmlString(true)); 

हैं कुंजी कंटेनर निजी कुंजी स्टोर करने के लिए एक सुरक्षित जगह: क्योंकि मुझे पता चला गया है अगर मैं कुंजी कंटेनर नाम जानते हैं, तो मैं निम्नलिखित का उपयोग कर निजी कुंजी को पुनः प्राप्त करने में सक्षम हो जाएगा?

उत्तर

15

यह वास्तव में आपकी आवश्यकताओं पर निर्भर करता है।

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

यह सब क्रिप्टो कार्यान्वयन कि एक स्मार्ट कार्ड में महत्वपूर्ण, हार्डवेयर सुरक्षा मॉड्यूल, TPM चिप आदि की दुकान नहीं है के लिए सच हो जाएगा

एक कम सक्षम हमलावर, CryptoAPI के खिलाफ की रक्षा करने के लिए और इसलिए RSACryptoServiceProvider आप देता है गैर निर्यात करने योग्य कुंजी की स्थापना की संभावना। इसका मतलब है कि CryptoAPI/.NET आपके लिए निजी कुंजी निर्यात करने से इंकार कर देगा (लेकिन एक जानकार हमलावर अभी भी इस पर काम करने में सक्षम होगा)। ऐसा करने के लिए, CspProviderFlags.UseNonExportableKey के साथ कुंजी उत्पन्न करें।

आप CspProviderFlags.UseUserProtectedKey का भी उपयोग कर सकते हैं जो उपयोगकर्ता को पुष्टिकरण के लिए पूछेगा और निजी कुंजी का उपयोग होने पर वैकल्पिक अतिरिक्त पासवर्ड भी पूछेगा।

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