अज्ञात / समझौता सर्वर में प्रवेश करने के लिए SSH कुंजियों का उपयोग करना खतरनाक नहीं है?


9

मान लें कि मैं किसी को अपनी सार्वजनिक SSH कुंजी, id_rsa.pub प्रदान करता हूं और वह इसे उस सर्वर पर स्थापित करता है जो समझौता किया हुआ है, और मुझे लॉगिन करने के लिए कहा गया है।

क्या लॉगिन प्रक्रिया में समझौता सर्वर के लिए मेरी निजी कुंजी भेजना शामिल है?

यदि हाँ, तो हमलावर की अब मेरी निजी SSH कुंजी तक पहुँच है, और यह डरावना है।

यदि नहीं, तो मैं इस लाइन को ssh -vvv आउटपुट में क्यों देखता हूँ:

debug1: Server accepts key: pkalg ssh-rsa blen 277

इसका मतलब है कि निजी कुंजी सर्वर को भेजी गई थी, और इसे स्वीकार कर लिया।

क्या मैं समस्या को गलत समझ रहा हूं?

जवाबों:


7

नहीं , आपकी निजी कुंजी कहीं भी "भेजी" या प्रेषित नहीं है।

सार्वजनिक-कुंजी क्रिप्टोग्राफी पारंपरिक उपयोगकर्ता नाम / पासवर्ड प्रमाणीकरण की तरह नहीं है।

  • आपकी सार्वजनिक कुंजी बस यही है - सार्वजनिक। इसे साझा करना पूरी तरह से सुरक्षित है। किसी को अपनी सार्वजनिक कुंजी भेजना आपकी पहचान को दूर कर सकता है (लोग जान सकते हैं कि यह आप से है क्योंकि यह एक अद्वितीय संख्या है), लेकिन यह कभी भी किसी और को आपको प्रमाणित करने या आपके रूप में प्रमाणित करने की अनुमति नहीं दे सकता है। आप सुपरयूज़र पर या नियमित HTTP पर अपने वेबपेज पर अपनी सार्वजनिक कुंजी पोस्ट कर सकते हैं; यदि किसी के पास आपकी निजी कुंजी नहीं है तो यह पूरी तरह से सुरक्षित है, और पूरी तरह से बेकार है।

  • आपकी निजी कुंजी बस यही है - निजी। यह केवल उन सिस्टमों पर रहता है, जिनके आप स्वयं पर और विश्वास करते हैं (उम्मीद है), और किसी को अधिकतम सुरक्षा के लिए अनलॉक पासवर्ड के साथ हमेशा एन्क्रिप्ट किया जाना चाहिए, अगर कोई उस सिस्टम पर भौतिक पहुँच प्राप्त करता है, जिस पर वह संग्रहीत है। सार्वजनिक कुंजी क्रिप्टोग्राफी के नियमों के अनुसार व्यवहार करने वाले किसी भी ठीक से लागू सुरक्षा कार्यक्रम द्वारा निजी कुंजी को कभी भी प्रेषित नहीं किया जाता है। यही है, जब तक आपके पास अपने स्थानीय सिस्टम पर एक कार्यक्रम नहीं है जो समझौता किया गया है और आपकी निजी कुंजी (और निजी कुंजी को पासवर्ड द्वारा एन्क्रिप्ट नहीं किया गया है) को पढ़ने में सक्षम है, आपकी निजी कुंजी हमेशा सुरक्षित होती है।

दूरस्थ सर्वर पर भेजे जाने से पहले संदेश आपके कंप्यूटर पर निजी कुंजी के साथ हस्ताक्षर किए जाते हैं । इसलिए, रिमोट सर्वर में निजी कुंजी भेजने के बजाय, आप एक संदेश भेज रहे हैं जिसे निजी कुंजी के साथ एन्क्रिप्ट किया गया था । लेकिन ये दो चीजें समान नहीं हैं : आप हस्ताक्षरित संदेश से निजी कुंजी प्राप्त नहीं कर सकते हैं ; वह सार्वजनिक कुंजी क्रिप्टोग्राफी के बिंदु का हिस्सा है।

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


मैं सार्वजनिक कुंजी क्रायपो प्रक्रिया को समझता हूं, लेकिन इसके द्वारा उत्सर्जित डिबग संदेश से भ्रमित हो गया था ssh। @ Pjc50 से उत्तर मुझे वह आश्वासन प्रदान करने लगता है जिसकी मुझे तलाश थी।
गुरजीत सिंह

11

आप प्रक्रिया को गलत समझ रहे हैं।

कुंजी नहीं भेजी जाती है, बल्कि एक "चुनौती" का निर्माण सार्वजनिक कुंजी के साथ कुछ एन्क्रिप्ट करके किया जाता है जिसे केवल मिलान कुंजी के साथ डिक्रिप्ट किया जा सकता है।

यदि आपको अपना पासवर्ड मांगा जाता है, या आप एक समझौता किए गए सर्वर पर एक्स फॉरवर्डिंग करते हैं, तो एक संभावित सुरक्षा जोखिम है।


धन्यवाद। ssh इस संदेश का भी उत्सर्जन करता है debug1: Offering RSA public key: <$HOME>/.ssh/id_rsaजो यह सोचता है कि निजी कुंजी साझा की जा रही है, भले ही id_rsa.pub पहले ही साझा की जा चुकी हो।
गुरजीत सिंह

सार्वजनिक कुंजी है, अच्छी तरह से सार्वजनिक। आप इसे किसी को भी दे सकते हैं। यह उन्हें संदेशों को एन्क्रिप्ट करने की क्षमता देता है। निजी कुंजी वह है जो आपको संदेशों को डिक्रिप्ट करने देती है। जब तक आप अपनी निजी कुंजी अपने पास रखते हैं, तब तक आप ठीक हैं।
पीट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.