ओपनसेल में -nodes बहस का उद्देश्य क्या है?


103

-nodesOpensl में तर्क का उद्देश्य क्या है ?


2
स्टैक ओवरफ्लो प्रोग्रामिंग और विकास के सवालों के लिए एक साइट है। यह प्रश्न ऑफ़-टॉपिक प्रतीत होता है क्योंकि यह प्रोग्रामिंग या विकास के बारे में नहीं है। देखें किन विषयों मैं यहाँ के बारे में पूछ सकते हैं सहायता केंद्र में। शायद सुपर यूजर या यूनिक्स और लिनक्स स्टैक एक्सचेंज पूछने के लिए एक बेहतर जगह होगी।
jww

20
@jww मैं असहमत हूं, ओपनएसएल एक निम्न-स्तरीय टूलकिट है और डेवलपर्स को हर समय इससे निपटना पड़ता है। यह रेखा काफी धुंधली है, और यह एक बड़ा नुकसान होगा कि यहां ओपनस्ले प्रश्नों की अनुमति न दें क्योंकि यह सी लिब के बजाय सीएलआई होने के लिए होता है।
gtd

@gtd - जब मैं इन को ध्वजांकित करता हूं तो अक्सर शिकायत होती है। यह भी देखें कि मैं देव ऑप्स के बारे में प्रश्न कहां से पोस्ट करूं? । (लेकिन मुझे लगता है कि मैंने इस पर एक गलती की है - सवाल 2011 से है, और मेरा मानना ​​है कि इसका विषय फिर से था। मुझे नीति परिवर्तन के लिए दंड देना पसंद नहीं है)।
19

2
@gtd - पुनः: " खुलता एक निम्न-स्तरीय टूलकिट है और डेवलपर्स को हर समय इससे निपटना पड़ता है।" - यही सुपर यूजर या यूनिक्स और लिनक्स स्टैक एक्सचेंज हैं। "... यह एक बड़ा नुकसान होगा कि ओपनस्ले प्रश्न की अनुमति न दें ..." - ओफ़्सील सी प्रोग्रामिंग प्रश्नों का हमेशा यहाँ स्वागत किया जाता है। गैर-प्रोग्रामिंग प्रश्नों का नुकसान नहीं होगा क्योंकि स्टैक ओवरफ्लो एक प्रोग्रामिंग और विकास साइट है। जब आप कमांड का उपयोग करना नहीं जानते हैं, तो जाने के लिए अन्य साइटें हैं।
jww

लिंक के लिए धन्यवाद, मैं अपनी प्रतिक्रिया पोस्ट करूंगा क्योंकि मुझे लगता है कि यह एक बहुत ही महत्वपूर्ण मुद्दा है।
gtd

जवाबों:


123

विकल्प -nodesअंग्रेजी शब्द "नोड्स" नहीं है, बल्कि "नो डेस" है। जब एक तर्क के रूप में दिया जाता है, तो इसका मतलब है कि ओपनएसएसएल पीकेसीएस # 12 फ़ाइल में निजी कुंजी को एन्क्रिप्ट नहीं करेगा ।

निजी कुंजी को एन्क्रिप्ट करने के लिए, आप छोड़ सकते हैं -nodesऔर आपकी कुंजी 3DES-CBC के साथ एन्क्रिप्ट की जाएगी। कुंजी को एन्क्रिप्ट करने के लिए, ओपनएसएसएल आपको पासवर्ड के लिए संकेत देता है और यह उस पासवर्ड का उपयोग कुंजी-व्युत्पत्ति फ़ंक्शन EVP_BytesToKey का उपयोग करके एन्क्रिप्शन कुंजी उत्पन्न करने के लिए करता है ।

ओपनएसएसएल के अपने संस्करण और संकलित विकल्पों के आधार पर, आप इन विकल्पों को निम्नलिखित के स्थान पर प्रदान करने में सक्षम हो सकते हैं -nodes:

-des          encrypt private keys with DES
-des3         encrypt private keys with triple DES (default)
-idea         encrypt private keys with idea
-seed         encrypt private keys with seed
-aes128, -aes192, -aes256
              encrypt PEM output with cbc aes
-camellia128, -camellia192, -camellia256
              encrypt PEM output with cbc camellia

अंततः लाइब्रेरी स्तर पर ओपनएसएसएल आपके द्वारा चुने गए एन्क्रिप्शन एल्गोरिथ्म (या इसके अभाव) के साथ फ़ंक्शन PEM_write_bio_PStreetKey को कॉल करता है ।


1
एन्क्रिप्ट करके, क्या आप पासवर्ड से मतलब रखते हैं?
फ्लिम

4
@ फ़ाइल: एक पासवर्ड के साथ संरक्षित, हाँ। पासवर्ड एक की-व्युत्पत्ति एल्गोरिथ्म का उपयोग करके एक एन्क्रिप्शन कुंजी उत्पन्न करता है, और एन्क्रिप्शन कुंजी के साथ किया जाता है, न कि पासवर्ड से। एन्क्रिप्टेड कुंजी का उपयोग करने का एकमात्र तरीका यह है कि पहले इसे डिक्रिप्ट किया जाए, इसके लिए आपको उसी कुंजी को उत्पन्न करने के लिए कूटशब्द को जानना होगा।
इंडिविस

मैं अपनी निजी कुंजी फ़ाइल को एन्क्रिप्ट क्यों करता हूं? उन लोगों ने किसी को भी प्रकाशित किया, इसलिए नाम। या मैं गलत हूँ?
phil294

1
@ बेलौहर्न: आप अपनी निजी कुंजी फ़ाइल को उसी कारण से एन्क्रिप्ट करेंगे जिस कारण से आप किसी भी फ़ाइल को एन्क्रिप्ट करेंगे: आप ऐसा कोई व्यक्ति नहीं चाहते जो इसे प्राप्त करने या उपयोग करने में सक्षम हो। आपको निजी कुंजी को एन्क्रिप्ट करना चाहिए या नहीं यह कुंजी और आपके खतरे के मॉडल के महत्व पर निर्भर करता है।
indiv

12

संपादित करें: nginx v1.7.3 ने एक ssl_password_file निर्देश जोड़ा है जो संदर्भ के एन्क्रिप्टेड- प्राइवेट पर प्रत्येक पासफ़्रेज़ की कोशिश कर रहे निर्दिष्ट फ़ाइल से पासफ़्रेज़ पढ़ता है।

व्यक्ति सही है कि -nodesतर्क का मतलब है कि OpenSSL एन्क्रिप्ट नहीं किए गए बनाएगा private.key ; अन्यथा, एन्क्रिप्टेड-Private.key बनाने के लिए एक पासफ़्रेज़ प्रॉम्प्ट होगा । देखने के अनुरोध , PKCS12 , CA.pl

हालाँकि, मुझे लगता है कि उद्देश्य (प्रोग्रामर के लिए) है:

  • HTTP सर्वर (उदा। अपाचे , नगनेक्स ) कूटशब्द -निजी को पढ़ नहीं सकते हैं। पासफ़्रेज़ के बिना →
    • विकल्प ए - हर बार HTTP सर्वर शुरू होने पर, एन्क्रिप्टेड-प्राइवेट के लिए पासफ़्रेज़ प्रदान करना होगा
    • विकल्प बी - निर्दिष्ट ssl_password_file file.keys;में http { }या server { }संदर्भ। [ रेफ ]
    • विकल्प सी - एन्क्रिप्शन के बिना Private.key-nodes बनाने के लिए उपयोग करें

उपयोगी: प्राइवेट को बंद करें

  • { ssl-cert ग्रुप में HTTP सर्वर जोड़ें }
  • sudo chown root:ssl-cert private.key- ch Ange खुद की एर private.key को जड़ उपयोगकर्ता, एसएसएल-प्रमाणपत्र समूह
  • sudo chmod 640 private.key- मालिक आर / डब्ल्यू, समूह आर के लिए Private.key की पहुंच अनुमतियाँ बदलें
  • अब, HTTP सर्वर शुरू करने और एन्क्रिप्ट नहीं किए गए पढ़ने के लिए सक्षम होना चाहिए private.key

विकल्प ए

मजबूत सुरक्षा, फिर भी जब सर्वर पुनरारंभ होता है, तो एन्क्रिप्टेड-प्राइवेट के लिए पासफ़्रेज़ में मैन्युअल रूप से टाइप करना होगा

विकल्प बी

मध्यम सुरक्षा, और ए / सी के बीच शायद अच्छा संतुलन

विकल्प सी

कमजोर सुरक्षा, फिर भी एन्क्रिप्ट नहीं किए गए के लिए संकेत नहीं private.key पदबंध


उत्कृष्ट स्पष्टीकरण
रिजिडोरो

1
Nginx कर सकते हैं : संस्करण 1.7.3 के बाद से एन्क्रिप्टेड निजी कुंजी को पढ़ने, देखने nginx.org/en/docs/http/...
5lava

2
चर्चा में nginx और इसके संस्करणों को लाने का उद्देश्य क्या है? इसके अलावा, (बी) और (सी) समकक्ष सुरक्षा (अर्थात्, फाइलसिस्टम एसीएल) प्रदान करते हैं। आप जिस समस्या का वर्णन कर रहे हैं, वह है अनअटेंडेड की स्टोरेज प्रॉब्लम , और इसका समाधान के बिना समस्या। गुटमैन की इंजीनियरिंग सुरक्षा पुस्तक देखें ।
jww

@jww सवाल पूछता है " उद्देश्य क्या है ..."। मैंने प्रश्न के संदर्भ (प्रोग्रामर्स के लिए QnA) पर विचार किया, जिसे मैंने "हालांकि, मुझे लगता है कि उद्देश्य (प्रोग्रामर के लिए) क्योंकि": के माध्यम से इंगित करने का प्रयास किया। विशेष रूप से सुरक्षा के बारे में .. हो सकता है के लिए एक चर्चा हो security.stackexchange.com
जेक बर्जर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.