2016-03-25 19 views
5

के साथ निजी कुंजी या सुरक्षित जानकारी/डेटा को कैसे स्टोर करें मैं इलेक्ट्रॉन का उपयोग कर क्रॉस प्लेटफ़ॉर्म के लिए स्टैंडअलोन ऐप विकसित कर रहा हूं।इलेक्ट्रॉन

मैं ऐप में निष्पादन के लिए निजी कुंजी, निजी डेटा जैसे निजी डेटा स्टोर करना चाहता हूं। निष्पादन जैसे एन्क्रिप्ट/डिक्रिप्ट डेटा।

या

मैं उपयोगकर्ता पासवर्ड जैसे कुछ सुरक्षित जानकारी, एप्लिकेशन पर मालिकाना डेटा

सुरक्षित सूचना और उपयोगकर्ता अनुप्रयोग करने में असमर्थ इस तरह के स्टोर करने के लिए किसी भी संभव तरह से कर रहे हैं की दुकान चाहते हैं किसी भी तरह से मिलता है?

उत्तर

5

एटम संपादक (ऐप इलेक्ट्रॉन के लिए बनाया गया था) के लिए बनाया गया एक एनपीएम मॉड्यूल है जिसे किटर कहा जाता है। यह सुरक्षित भंडारण के लिए देशी ओएस एपीआई का उपयोग करता है। जैसे। ओएस एक्स

https://github.com/atom/node-keytar

पर कीचेन
2

मुझे आपके द्वारा उपयोग की जाने वाली विशिष्ट तकनीक नहीं पता है, इसलिए मेरा उत्तर सामान्य रूप से कुंजी संग्रहण समस्या पर इंगित करेगा।

सबसे पहले, दो बड़े टिप्पणी:

  1. यहां तक ​​कि के साथ कुछ भारी विशेष हार्डवेयर (बैंकों और अन्य महत्वपूर्ण प्रणालियों का उपयोग इस के लिए हार्डवेयर सुरक्षा मॉड्यूल -HSMs-), वहाँ हमेशा अपने प्रमुख चोरी होने का खतरा है। आप जो करना चुनते हैं उस पर निर्भर करता है कि आपकी कुंजी कितनी महत्वपूर्ण है और आप इसे बचाने के लिए कितना इच्छुक हैं। मैं हार्डवेयर से जुड़े समाधानों का उल्लेख करने से बचने की कोशिश करूंगा, क्योंकि वे आमतौर पर ज्यादातर लोगों के लिए अधिकतर होते हैं।
  2. , हालांकि, अच्छी प्रथाओं है कि आप का पालन कर सकते हैं: https://www.owasp.org/index.php/Cryptographic_Storage_Cheat_Sheet

अब, कुछ सलाह। आप जो कुछ भी करते हैं, अपनी कुंजी को सादे टेक्स्ट में संग्रहित न करें (और बहुत कम हार्डकोडेड)। यदि आप सार्वजनिक कुंजी क्रिप्टोग्राफी का उपयोग कर रहे हैं, तो PKCS12 फ़ाइलें (आमतौर पर एक्सटेंशन .p12 या .pfx के साथ) डेटा को स्टोर करने का मानक तरीका हैं। वे आमतौर पर पासवर्ड संरक्षित होते हैं।

यहां आपको एक समस्या का सामना करना पड़ता है: यदि आपके पास कोई कुंजी है, तो आपको इसका उपयोग करने की आवश्यकता है। यदि आप कुंजी का उपयोग करते हैं, तो यह कम से कम रैम में "plaintext" में होगा। इसलिए, आपको उस पहुंच को सक्षम करने के लिए एक तरीका चाहिए जो कुंजी को यथासंभव अलग रखता है। यदि उपयोगकर्ता द्वारा क्रियाएं ट्रिगर की जाती हैं, तो चीजें अपेक्षाकृत अच्छी होती हैं, क्योंकि आप कुंजी का उपयोग करने से पहले पासवर्ड मांग सकते हैं।

यदि क्रियाएं स्वचालित हैं, तो आपको पासवर्ड स्टोर करने का कोई तरीका ढूंढना होगा।

  1. आदेश पंक्ति में पासवर्ड के लिए पूछें: कुछ पीजीपी कार्यान्वयन की तरह यहां तक ​​कि सुरक्षा सॉफ्टवेयर है कि अच्छा नहीं कर रहे हैं इस बात के लिए दृष्टिकोण है आदेश मेरा-पासवर्ड -पासवर्ड। यह, एक बल्ले में डालता है, काम करता है। लेकिन पासवर्ड संग्रहीत किया जाता है और ऑपरेटिंग सिस्टम के आधार पर, history कमांड के साथ भी उपलब्ध है।
  2. इसे एक फ़ाइल में स्टोर करें: कम से कम आप प्रतियां प्रतियां नहीं छोड़ते हैं, लेकिन पासवर्ड अभी भी सादे टेक्स्ट में है।
  3. एन्क्रिप्शन कुंजी के रूप में सिस्टम डेटा का उपयोग करके इसे एन्क्रिप्ट करें: पासवर्ड अपेक्षाकृत संरक्षित है, लेकिन आप पोर्टेबिलिटी खो देते हैं और कंप्यूटर तक पहुंच के साथ हमलावर नियंत्रण से नहीं रोका जाएगा।
  4. सेवा के एक बार पासवर्ड के लिए पूछें: थोड़ा अधिक उचित, लेकिन हमेशा संभव नहीं है (यदि सेवा महत्वपूर्ण है लेकिन केवल एक व्यक्ति के पास पासवर्ड है, उपलब्धता से समझौता किया जा सकता है)।
  5. फैंसी चीजें थ्रेसहोल्ड डिक्रिप्शन के साथ की जा सकती हैं, लेकिन शायद उस मामले के लिए भी बहुत अधिक है।

मैं प्रत्येक विकल्प पर विवरण प्रदान नहीं करता क्योंकि आप संभवतः अपने फ्रेमवर्क की अनुमति और जिस तरीके से आपके सिस्टम का उपयोग किया जाता है, उस पर निर्भर करता है, लेकिन मुझे उम्मीद है कि यह विभिन्न विकल्पों के संदर्भ में मदद करता है। किसी भी मामले में, अपने स्वयं के पर किसी भी क्रिप्टोग्राफिक कार्यक्षमता को लागू न करें। बुरा क्रिप्टो बिल्कुल क्रिप्टो से भी बदतर है।

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