SSH सार्वजनिक कुंजी सर्वर पर क्यों बैठती है और क्लाइंट के पास नहीं है?


12

मैं सर्वर पर सार्वजनिक कुंजी रखने के पीछे के सिद्धांत को काफी नहीं समझता। सार्वजनिक / निजी कुंजी के लॉकबॉक्स सादृश्य में, ऐलिस के बॉक्स को अनलॉक करने के लिए , एलिस के पास निजी कुंजी होती है, जबकि सार्वजनिक कुंजी बॉब को वितरित की जाती है। ऐसा लगता है कि सर्वर लॉकबॉक्स की भूमिका निभाता है, इसलिए यह सार्वजनिक कुंजी क्यों रखता है?

जवाबों:


20

ध्यान रखें कि सर्वर के पास एक निजी और सार्वजनिक कुंजी है जो कि आपके द्वारा उपयोगकर्ता के रूप में उत्पन्न कीपर से पूरी तरह से अलग है। सर्वर के लिए निजी कुंजी आमतौर पर सर्वर कॉन्फ़िगरेशन के साथ संग्रहीत होती है और जब आप कनेक्ट करने का प्रयास करते हैं तो सार्वजनिक कुंजी सर्वर द्वारा प्रेषित होती है। आप क्लाइंट अपनी ज्ञात_होस्ट फ़ाइल के विरुद्ध सर्वर की सार्वजनिक कुंजी की तुलना करते हैं। अगर सही तरीके से उपयोग किया जाता है, तो यह MITM हमलों को रोकता है।

आपके पास अपने निजी खाते की निजी कुंजी है। सर्वर को आपकी सार्वजनिक कुंजी की आवश्यकता होती है ताकि यह सत्यापित कर सके कि जिस खाते का आप उपयोग करने का प्रयास कर रहे हैं उसके लिए आपकी निजी कुंजी अधिकृत है।

तो अपने उदाहरण का उपयोग कर। बॉब और ऐलिस दोनों के पास निजी कुंजी और सार्वजनिक कुंजी हैं। सार्वजनिक कुंजी जो हाथ से पहले या कनेक्शन के हिस्से के रूप में साझा की गई हैं, निजी कुंजी द्वारा एन्क्रिप्ट किए गए डेटा को सत्यापित करने के लिए उपयोग की जाती हैं। यदि ग्राहक के पास सार्वजनिक कुंजी नहीं है, या आपके पास एक अलग सार्वजनिक कुंजी है, तो आपको एक डरावनी चेतावनी मिलेगी। यदि सर्वर में क्लाइंट सार्वजनिक नहीं हैं, तो आपको अंदर नहीं जाने दिया जाएगा।


1
अहा! यह बहुत अधिक समझ में आता है। मुझे पता था कि MITM हमलों से बचाव के लिए एक तरीका है, लेकिन मुझे नहीं पता था कि एक और कीपर :) मदद के लिए धन्यवाद!
कॉनर ग्लॉसर

5

जब आप लॉग इन करते हैं तो आप उपयोगकर्ता हैं जो आपको जानकारी प्रदान करने के लिए होते हैं। इसलिए प्राधिकरण के लिए, आपको निजी कुंजी की आवश्यकता होती है क्योंकि सर्वर किसी से भी पूछेगा जो आपके होने का दिखावा करता है (आपके साथ लॉग इन करने का प्रयास करता है) नाम) यह साबित करने के लिए।

जिस तरह से यह काम करता है वह यह है कि सर्वर आपको थोड़ा पाठ भेजता है, आपको इसे एन्क्रिप्ट करने और अपनी सार्वजनिक कुंजी के साथ डिक्रिप्ट करने के लिए कहता है। केवल आपकी निजी कुंजी वाला व्यक्ति ही ऐसा कर सकता है।


1

यह सुविधा के लिए सार्वजनिक कुंजी रखता है। अन्यथा आपको PKI बनाना होगा - SSL CA के समान।

सार्वजनिक कुंजी फ़िंगरप्रिंट की जांच करने का विचार तब होगा जब ssh क्लाइंट आपसे दूरस्थ सर्वर कुंजी को स्वीकार करने के लिए कहे।


1

मैं कहूंगा कि एक बेहतर सादृश्य यह है कि सर्वर की सार्वजनिक कुंजी एक कुंडी के साथ खुला लॉकबॉक्स है जिसे आप बंद कर सकते हैं (लेकिन खुला नहीं), केवल सर्वर ही इसे खोल सकता है। असली सवाल यह है कि क्या आपको सार्वजनिक कुंजी पर भरोसा है (क्या यह वास्तव में ऐलिस बॉक्स है?), जहाँ भी आप इसे प्राप्त करते हैं, यह परिभाषा द्वारा सार्वजनिक है, और यही PKI के बारे में है।


1

एक सार्वजनिक कुंजी एक बहुत बड़ी संख्या है, जो गणितीय रूप से आपकी निजी कुंजी से ली गई है।

यह इस तरह से व्युत्पन्न होता है कि दो संख्याएँ जुड़ी हुई हैं,

लेकिन इसलिए कि निजी कुंजी को किसी के द्वारा नहीं खोजा जा सकता है जो केवल सार्वजनिक कुंजी जानता है। सार्वजनिक कुंजी वह है जो आप अन्य पार्टियों को भेजते हैं, जिनके लिए आप खुद को प्रमाणित करना चाहते हैं, या जिन्हें आप एन्क्रिप्टेड संदेश भेजना चाहते हैं। सार्वजनिक कुंजी संवेदनशील नहीं है, और इसे संरक्षित करने की आवश्यकता नहीं है। इसे सार्वजनिक रूप से प्रचारित किया जा सकता है। babudilli98@gmail.com


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