मैं एक तरह से इतना है कि यह प्राप्त नहीं किया जा सकता है किसी दिए गए एईएस कुंजी संग्रहीत करने के लिए देख रहा है, लेकिन यह अभी भी (सी # का उपयोग करके) एन्क्रिप्शन और डिक्रिप्शन के लिए इस्तेमाल किया जा सकता है। मुझे लगता है कि असममित कुंजी भंडारण के लिए बराबर here पाया जा सकता है, लेकिन मैं कुछ है कि सममित एन्क्रिप्शन के लिए इस्तेमाल किया जा सकता के लिए देख रहा हूँ। क्या यह एक प्रबंधित रूप में मौजूद है (प्री नेट 4)?मैं विंडोज़ में .NET (सी #) के साथ एक एईएस कुंजी सुरक्षित रूप से कैसे स्टोर कर सकता हूं?
उत्तर
आप किसके खिलाफ बचाव कर रहे हैं इस पर निर्भर करते हुए, आप ProtectedData
class का उपयोग कर सकते हैं।
हमें उस मार्ग पर जाना पड़ सकता है, लेकिन मेरी समझ यह है कि अगर हमने संरक्षित डेटा का उपयोग करके हमारी कुंजी संग्रहित की है, तो हम इसे बाद में प्राप्त कर सकते हैं। हम इसे वापस पाने में सक्षम नहीं होना चाहते हैं, बस इसका उपयोग करने में सक्षम हो। – Nogwater
उसी उपयोगकर्ता के रूप में लॉग इन करते समय आप इसे वापस प्राप्त कर सकते हैं। – SLaks
हाँ, मुझे लगता है कि शायद हमारे लिए काम करेगा। यह वास्तव में आदर्श नहीं है क्योंकि हम मशीनों के समूह पर हमारे सॉफ़्टवेयर को इंस्टॉल कर रहे हैं, जिसका अर्थ यह होगा कि हमारी एईएस कुंजी का एन्क्रिप्टेड ब्लॉब जिसे हमें स्टोर करने की आवश्यकता होगी, प्रति मशीन अलग-अलग होगी। फिलहाल हम इस तरह की ओर झुका रहे हैं: http://www.codestrider.com/BlogRead.aspx?b=d147ff4f-65e0-47f5-a39b-40ae07a42005 सार्वजनिक/निजी कुंजी एन्क्रिप्शन और विंडो की प्रमाणपत्र स्टोर का उपयोग करने के लिए वास्तविक कुंजी – Nogwater
@SLaks सही है, अगर इसकी तुम्हारी याद में यह पहुँचा जा सकता है। आप इसे और अधिक कठिन बना सकते हैं, लेकिन यह हमेशा संभव होने जा रहा है।
है यही कारण है कि लोग गंभीर हैं क्रिप्टो ऑफलोड।
एक विकल्प smart card है। यह आपको डेटा को कार्ड पर ले जाने देता है और परिणाम वापस प्राप्त करता है, लेकिन मुख्य सामग्री तक पहुंच की अनुमति नहीं देता है। यह आपके पीसी मेमोरी स्पेस में नहीं है इसलिए इसे लीक नहीं किया जा सकता है।
रॉस एंडरसन के पास इस तरह की चीज़ के बारे में एक अच्छा पेपर, Programming Satan's Computer है। सार से:
समस्या एक शत्रुतापूर्ण प्रतिद्वंद्वी की उपस्थिति है, जो इच्छानुसार संदेशों को बदल सकता है। असल में, हमारे कार्य एक कंप्यूटर प्रोग्राम करना है जो उत्तर देता है जो सबसे असुविधाजनक संभव पल में गलत और दुर्भावनापूर्ण रूप से गलत है।
भले ही आप भौतिक स्मृति और केवल हार्ड डिस्क और स्रोत के बारे में चिंतित न हों, आपको अभी भी वर्चुअल मेमोरी से सावधान रहना होगा। यदि आप सावधान नहीं हैं (या ध्यान से लिखित सेवा का उपयोग कर रहे हैं) तो आप अपनी स्वैप फ़ाइल में सादे टेक्स्ट कुंजी प्राप्त कर सकते हैं। यहां एक और लिंक है जो इस मुद्दे पर चर्चा करता है। ऐसा नहीं है कि आप ऐसा करना चाहते हैं लेकिन यह मुद्दा स्पष्ट करता है: Encrypting Virtual Memory। मेरा मानना है कि स्मृति के रूप में स्मृति को चिह्नित करने के लिए इस उद्देश्य के लिए सिस्टम कॉल हैं लेकिन मुझे कोई लिंक नहीं मिल रहा है।
असमान डेटा के लिए भी, यदि कुंजी कंप्यूटर में संग्रहीत है और बाद में उपयोग की जाती है, तो इसे उपयोग से पहले पुनर्प्राप्त और डिक्रिप्ट किया जाता है। और इस बिंदु पर एक कुशल हैकर इसे पुनर्प्राप्त कर सकता है (कंप्यूटर मेमोरी को कैप्चर करके और इसका अध्ययन करके)। यह मामूली नहीं है, लेकिन अभी भी संभव है।
सामान्य रूप से आपकी समस्या का समाधान करने के लिए यूएसबी क्रिप्टोटोकेंस और क्रिप्टोकार्ड पेश किए जाते हैं। इन हार्डवेयर उपकरणों में सममित और विषम कुंजी दोनों को संग्रहीत करने के लिए अपनी याददाश्त होती है, और उनके पास उस कुंजी का उपयोग करके क्रिप्टोग्राफिक संचालन करने के लिए प्रोसेसर होता है। कुंजी डिवाइस को कभी नहीं छोड़ती है और डिवाइस को मजबूती से निकालने के लिए लगभग असंभव है (माइक्रोस्कोप के साथ मेमोरी स्कैनिंग जैसे कुछ हार्डवेयर हमले मौजूद हैं, लेकिन वे कंप्यूटर पर सॉफ़्टवेयर हमले से अधिक जटिल हैं)।
इसलिए यदि आपके कुंजी वास्तव में मूल्यवान है, यूएसबी cryptotoken का उपयोग करें। डिवाइस की कीमत बहुत ही मामूली है - लगभग $ 70- $ 100 प्रति इकाई और ऐसे कई विक्रेता हैं जो ऐसे उपकरणों की पेशकश करते हैं।
क्रिप्टो को ऑफ़लोड करने की प्रवृत्ति को जारी रखने के लिए, यदि आप अपने सभी क्लस्टर के हार्डवेयर को जानते हैं तो आपके पास TPM में कुंजी हो सकती है यदि मदरबोर्ड में एक है, तो यह यूएसबी या स्मार्ट- कार्ड समाधान
मेरे पास इन सर्वरों के लिए यूएसबी या स्मार्ट-कार्ड तक पहुंच नहीं है। हमारे कुछ बॉक्स अभी भी विंडोज 2003 चल रहे हैं, इसलिए यह वास्तव में मेरे लिए एक विकल्प नहीं है। क्या टीपीएम के लिए मानक .NET 3.5 पुस्तकालय हैं? शायद यह किसी और के लिए उपयोगी होगा। – Nogwater
विंडोज डीपीएपीआई (Win32 documentation), और इसका .NET wrapper (ProtectedData Class) कोई भी डेटा स्टोर नहीं करता है। इसके बजाय, विंडोज डीपीएपीआई एक क्रिप्टोग्राफिक साइफर वैल्यू देता है जिसे आप कहीं भी पसंद कर सकते हैं, जिसमें एकाधिक सर्वर भी शामिल हैं।
मेरे काम की जगह पर हम एक एईएस कुंजी के लिए एक साइफर उत्पन्न करने के लिए डीपीएपीआई का उपयोग करते हैं जिसे हम रजिस्ट्री में स्टोर करते हैं।
विंडोज डीपीएपीआई का एकमात्र उद्देश्य डेटा को एन्क्रिप्ट करना है जैसे कि केवल एक दिया गया उपयोगकर्ता खाता या मशीन पासवर्ड को स्टोर करने की आवश्यकता के बिना इसे डिक्रिप्ट कर सकती है।
.NET ProtectedData क्लास 2.0 से .NET Framework में रहा है।
मैं एक तीसरे पक्ष के उत्पाद पर विंडोज डीपीएपीआई के साथ रहूंगा क्योंकि यह परिपक्व, स्थिर, नि: शुल्क, उपयोग करने में आसान है और .NET में पूरी तरह से समर्थित है।
बस यह सुनिश्चित करने के लिए कि मैं समझता हूं ... एकाधिक मशीनों पर संरक्षित डेटा का उपयोग करने के लिए, उन दोनों मशीनों में साझा उपयोगकर्ता खाता होना आवश्यक है, जिन्हें डोमेन नियंत्रक द्वारा प्रदान किया जाना आवश्यक है, है ना? – Nogwater
आप दो अलग-अलग मशीनों पर स्वतंत्र रूप से कुंजी को एन्क्रिप्ट करने के लिए डीपीएपीआई का उपयोग कर सकते हैं, यदि आप चाहते थे तो 2 अलग-अलग उपयोगकर्ता खातों के तहत चल रहे हैं, यह सिर्फ 2 सिफर मूल्यों को अदला-बदली नहीं किया जाएगा। उसी खाते के तहत डिक्रिप्ट किया जाना होगा (या मशीन आधारित डीपीएपीआई का उपयोग करते हुए मशीन) जो एन्क्रिप्शन करता था। यदि आप 1 साइफर रखना चाहते हैं जिसे एकाधिक मशीनों पर डिक्रिप्ट किया जा सकता है, तो हाँ, मैं कहूंगा कि आपको एक साझा खाता और डोमेन नियंत्रक की आवश्यकता होगी। स्पष्टीकरण के लिए – saille
धन्यवाद। – Nogwater
- 1. मैं सी # में एक स्थिर स्ट्रिंग (कुंजी) को सुरक्षित रूप से कैसे एम्बेड कर सकता हूं?
- 2. एईएस कुंजी कहां स्टोर करें?
- 3. मैं उद्देश्य सी के साथ डेटा को सुरक्षित रूप से कैसे स्टोर करूं? (मैक/कोको देव)
- 4. मैं सी # में विंडोज कुंजी कैसे अक्षम कर सकता हूं?
- 5. मैं सी # में क्रिप्टोग्राफ़िक रूप से सुरक्षित छद्म यादृच्छिक संख्या कैसे उत्पन्न कर सकता हूं?
- 6. मैं कनेक्शन स्ट्रिंग विवरण को सुरक्षित रूप से कैसे स्टोर और एक्सेस कर सकता हूं?
- 7. सी # में मैं सुरक्षित रूप से लॉक से बाहर निकलने के प्रयास के साथ कैसे बंद कर सकता हूं?
- 8. क्या मैं .NET में सीटीआर मोड में एईएस का उपयोग कर सकता हूं?
- 9. मैं सी # में एईएस एल्गोरिदम का उपयोग कर स्ट्रिंग को कैसे डिक्रिप्ट कर सकता हूं?
- 10. मैं प्रोग्रामेटिक रूप से विंडोज़ फॉर्म कैसे बना सकता हूं?
- 11. मैं PHP में पैसे से संबंधित गणना कैसे सुरक्षित रूप से कर सकता हूं?
- 12. मैं जावा में एन्क्रिप्शन कुंजी को सुरक्षित रूप से कैसे स्टोर करूं?
- 13. मैं सुरक्षित रूप से फ़ाइल कैसे मिटा सकता हूं?
- 14. एईएस एन्क्रिप्शन और सी #
- 15. मैं विंडोज सेवा में चल रहे सी # .NET थ्रेड को सुरक्षित रूप से कैसे रोकूं?
- 16. मैं वेबपृष्ठ से विंडोज़ एप्लिकेशन कैसे लॉन्च कर सकता हूं?
- 17. कैसे सुरक्षित रूप से सी ++
- 18. क्या मैं स्थानीय रूप से आरएसए कुंजी के साथ प्रमाणीकरण का परीक्षण कर सकता हूं?
- 19. जावा में एईएस कुंजी आकार
- 20. मैं संरचना में फ़ंक्शन पॉइंटर कैसे स्टोर कर सकता हूं?
- 21. मैं नियमित (गैर-स्टोर) Win32 .NET एप्लिकेशन से Windows.UI नेमस्पेस का उपयोग कैसे कर सकता हूं?
- 22. मैं लूप के लिए शीर्ष पर कुंजी के साथ-साथ मूल्य कैसे प्राप्त कर सकता हूं?
- 23. कुंजी कंटेनर, निजी कुंजी स्टोर करने के लिए पर्याप्त सुरक्षित?
- 24. मैं संस्करण नियंत्रण और कोर डेटा मॉडल से कैसे सुरक्षित रूप से संपर्क कर सकता हूं?
- 25. मैं कस्टम वेबैपी HttpMessageHandler में उपयोगकर्ता प्रिंसिपल को सुरक्षित रूप से कैसे सेट कर सकता हूं?
- 26. आरएसए के साथ एनक्रिप्टिंग एईएस कुंजी सार्वजनिक कुंजी
- 27. मैं सी ++ में संख्याओं की एक जोड़ी कैसे स्टोर कर सकता हूं?
- 28. सी # .NET - मैं विरासत के साथ काम करने के लिए टाइपऑफ() कैसे प्राप्त कर सकता हूं?
- 29. मैं SQL सर्वर में क्रिप्टोग्राफ़िक रूप से सुरक्षित संख्या कैसे उत्पन्न कर सकता हूं?
- 30. मैं विंडोज़ में उप-प्रक्रिया कैसे शुरू कर सकता हूं?
यदि आप इसके साथ एन्क्रिप्ट कर सकते हैं, तो आप इसे पुनर्प्राप्त कर सकते हैं। – SLaks
@Slaks: जब तक ओएस एन्क्रिप्शन नहीं कर रहा है, और कहीं भी "सुरक्षित" कुंजी स्टोर करता है। जैसे, कहें, "संरक्षित संग्रहण" सेवा हो सकती है। – cHao
@cHow। मैं यही सोच रहा हूं। माइक्रोसॉफ्ट इस प्रकार की कार्यक्षमता प्रमाण पत्र के साथ प्रदान करता है (वे आपकी निजी कुंजी को सुरक्षित रूप से स्टोर और उपयोग कर सकते हैं), लेकिन हो सकता है कि मैं जो भी ढूंढ रहा हूं उसके लिए न हो। – Nogwater