अमेज़न सार्वजनिक कुंजी के बजाय निजी कुंजी क्यों जारी करता है?


20

मेरा मस्तिष्क सार्वजनिक और निजी कुंजी पर धुरी के चारों ओर लिपटा हुआ है। जब आप अमेज़ॅन की EC2 सेवा पर क्लाउड सर्वर (उदाहरण) बनाते हैं और फिर SSH के माध्यम से इसे कनेक्ट करना चाहते हैं, तो अमेज़न को कनेक्शन बनाने के लिए निजी कुंजी डाउनलोड करनी होगी। क्या सार्वजनिक / निजी कुंजी के पीछे का विचार यह नहीं है कि अमेज़ॅन को एक सार्वजनिक डाउनलोड करने के लिए आपकी आवश्यकता होनी चाहिए?

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


1
EC2 से कम परिचित लोगों के लिए, क्या अमेज़न को एक निजी कुंजी डाउनलोड करने की आवश्यकता थी?
Zoredache

2
जब आप Amazon EC2 पर क्लाउड सर्वर सेट करते हैं और फिर इसे SSH के माध्यम से कनेक्ट करना चाहते हैं, तो Amazon कंसोल आपको एक निजी कुंजी डाउनलोड करने की अनुमति देता है जिसका उपयोग आप कनेक्शन बनाने के लिए करते हैं। आपको कुंजी की रक्षा करना आवश्यक है, अवश्य।
सेठ

@Zoredache निष्पक्षता में, यह एक विकल्प है। किसी व्यक्ति को विंडोज बॉक्स पर जल्दी से इधर-उधर टटोलते हुए देखना शायद पहले कभी ओपनएसएसएच का इस्तेमाल नहीं किया गया है, इसलिए यह एक अच्छा क्विकस्टार्ट है।
ceejayoz

जवाबों:


36

प्रमाणीकरण प्रक्रिया के बारे में अधिक गहराई से सोचने पर, गुप्त रखने की क्या आवश्यकता है? अमेज़ॅन जनता को कुंजी के आधे हिस्से को जानता है, और कोई भी सार्वजनिक आधे को जान सकता है। कीपर का सार्वजनिक आधा हिस्सा, जब निजी आधे के साथ मिलान किया जाता है, तो यह दर्शाता है कि निजी आधे का उपयोग प्रमाणित करने के लिए किया गया था।

आप निजी कुंजी जो आपको प्रदान की जाती है जब अमेज़ॅन आपके लिए एक कीपर बनाता है, केवल तभी उपयोगी होता है जब आपके पास केवल एक ही हो। यदि यह कोई रहस्य नहीं है, तो कोई भी व्यक्ति जो इसे जानता है, वह किसी भी व्यक्ति को प्रमाणित कर सकता है, जो कि कीपर का आधा हिस्सा रखता है।

जो कोई भी है प्रमाणीकृत किया जा रहा होने चाहिए जिसे निजी आधा। यह ठीक है अगर दुनिया में हर कोई आपको सार्वजनिक रूप से कुंजी के आधे हिस्से को पकड़कर प्रमाणित कर सकता है, लेकिन केवल आपको निजी आधे के नियंत्रण में होना चाहिए।


18

अमेज़ॅन प्रमुख पीढ़ी की सेवाएं प्रदान करता है क्योंकि कुछ ऑपरेटिंग सिस्टम (खांसी, विंडोज, खांसी) एसएसएच कीपैड बनाने के लिए आसान नहीं बना सकते हैं।

SSH (और SFTP) के साथ, सार्वजनिक कुंजी उपयोगकर्ता की अधिकृत_की फ़ाइल में स्थापित की जाती है क्योंकि EC2 का उदाहरण शुरू होता है। निजी कुंजी केवल उपयोगकर्ता के पास होती है और सर्वर के विरुद्ध प्रमाणित करने के लिए प्रस्तुत की जाती है।

प्रलेखन से:

http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-CreateKeyPair.html

ऐसा प्रतीत होता है कि अमेज़ॅन अपने सर्वर पर कीपर उत्पन्न करता है और आपको HTTPS के माध्यम से निजी कुंजी भेजता है। यह शायद एकदम सही से कम है (आदर्श रूप से, आपके और किसी के पास निजी कुंजी का अधिकार नहीं होगा), लेकिन शायद बहुत अधिक नहीं है, यह देखते हुए कि यह सब आपके प्रमाणित सत्र के संदर्भ में होता है और केवल आप (और अमेज़ॅन अस्थायी रूप से) देखते हैं निजी कुंजी। आप निजी कुंजी को सख्ती से निजी रखते हुए EC2 उपयोग के लिए हमेशा अपनी खुद की सार्वजनिक कुंजी को जनरेट और अपलोड कर सकते हैं।

कुंजी प्रमाणीकरण के लिए SFTP उपयोगकर्ताओं को स्थापित करने के लिए, उन्हें अपनी मशीनों पर SSH कुंजी उत्पन्न करनी चाहिए। एक बार जब वे एक कुंजी जोड़ी बनाते हैं, तो उन्हें केवल आपको संबंधित अधिकृत_की फ़ाइल में स्थापित करने के लिए सार्वजनिक कुंजी भेजनी चाहिए। निजी कुंजी, जैसा कि नाम से पता चलता है, निजी है।


5
मैं नियमित रूप से विंडोज़ मशीनों पर मुख्य जोड़े उत्पन्न करता हूं। यह कठिन नहीं है, हालांकि यह स्थापित सॉफ़्टवेयर का उपयोग करके किया गया है, और केवल विंडोज द्वारा नहीं।
डोमिनिक क्रोनिन

2
डोमिनिक के साथ सहमत हुए। यह अधिक तथ्य है कि औसत विंडोज़ उपयोगकर्ता घबरा जाता है और सीएलआई की दृष्टि से खो जाता है, और यह कि विंडोज में अभी भी "एसएसएच कुंजी के साथ लॉगिन" विकल्प नहीं है।
होपलेसनब

ओह, हाँ, सहमत हुए। मैं साइगविन, आदि का उपयोग ओपनशेड के साथ करता हूं, इसलिए सब कुछ सफाई से काम करता है। मैं कल्पना करता हूं कि ऐसा करने वाले अधिकांश विंडोज उपयोगकर्ता PuTTY का उपयोग कर रहे होंगे और कुछ प्रमुख रूपांतरण करने होंगे। यह सिर्फ और अधिक कदम है।
cjc

1
मैंने वास्तव में कभी भी अमेज़ॅन का उपयोग नहीं किया है, बल्कि खिड़कियों को दोष देने के बजाय, मैं यह मानूंगा कि अमेज़ॅन आपको एक कुंजी भेजता है, यदि वे आपको लॉग इन करने के लिए एक कुंजी नहीं देते हैं, तो आप अपनी जनता को स्थापित करने के लिए कैसे लॉग इन करेंगे। पहली जगह में कुंजी?
डेरफक

1
@DerfK आप अपनी खुद की सार्वजनिक कुंजी जमा कर सकते हैं, और एक नए EC2 उदाहरण में स्थापित किया जा सकता है। किसी विशेष कुंजी का चयन करना उदाहरण निर्माण प्रक्रिया का हिस्सा है।
cjc

2

सार्वजनिक कुंजी प्रमाणीकरण रिवर्स दिशा में उस तरह से काम करता है जिस तरह से आप शायद सोच रहे हैं। सार्वजनिक कुंजी संदेशों को एन्क्रिप्ट करती है और निजी कुंजी उन्हें डिक्रिप्ट करती है। सर्वर खाता धारक की सार्वजनिक कुंजी संग्रहीत करता है और इसका उपयोग किसी संदेश को एन्क्रिप्ट करने के लिए करता है। केवल निजी कुंजी के धारक उस संदेश को डिक्रिप्ट कर सकते हैं।

यदि आप किसी को उनकी सार्वजनिक कुंजी के साथ गुप्त एन्क्रिप्टेड भेजते हैं, यदि वे आपको बता सकते हैं कि वह रहस्य क्या है, तो आप जानते हैं कि वे मिलान निजी कुंजी रखते हैं। उपयोगकर्ता तो प्रमाणित है।

AWS को आपकी निजी कुंजी को डाउनलोड करने और सहेजने की आवश्यकता है क्योंकि वे इसे सुरक्षा कारणों से संग्रहीत नहीं करेंगे। क्योंकि AWS पर निजी कुंजी कहीं संग्रहीत नहीं है, इसलिए आप आश्वस्त रह सकते हैं कि आपका EC2 उदाहरण सुरक्षित है।


1

एक मायने में, इससे कोई फर्क नहीं पड़ता। एक निजी / सार्वजनिक कुंजी जोड़ी में दो भाग होते हैं, और उनमें से कौन सा सार्वजनिक है जो आप पर निर्भर है। यदि किसी चीज़ को एक कुंजी के साथ एन्क्रिप्ट किया गया है, तो आपको उसे डिक्रिप्ट करने के लिए दूसरे की आवश्यकता होगी। यदि आपने एक कुंजी सार्वजनिक रूप से प्रकाशित की है और दूसरी नहीं, तो निजी कुंजी वह है जिसे आपने प्रकाशित नहीं किया है।

अपने वास्तविक प्रश्न पर जाना: संभवतः मुख्य अमेज़ॅन आपको देता है जो आपको अपने स्वयं के संसाधनों को नियंत्रित करने की अनुमति देता है, इसलिए इसे अन्य लोगों को नहीं दिया जाना चाहिए। इस संदर्भ में, आपको अपनी निजी कुंजी रखने के लिए अमेज़ॅन पर भरोसा करना होगा, कम से कम लंबे समय तक सेट होने के लिए।

यदि आप चाहते हैं कि आपका ग्राहक इस तरह से लॉग इन करे, तो आपको उन्हें एक कुंजी देने की आवश्यकता है जो वे आपके साथ साझा करने के लिए तैयार हैं, इसलिए उनकी सार्वजनिक कुंजी। आप अधिकृत_कीप में सर्वर पर इसे स्थापित करते हैं, जो प्रभावी रूप से कह रहा है कि "जो कोई भी इस कुंजी को इस संसाधन तक पहुँच सकता है, वह निजी कुंजी मेल खाता है।"


1
उह, यह सच नहीं है। कम से कम RSA / DH के साथ आप सार्वजनिक कुंजी के साथ एन्क्रिप्ट करते हैं और निजी के साथ डिक्रिप्ट करते हैं, यह दूसरे तरीके से काम नहीं करता है। साइन इन करना एन्क्रिप्शन / डिक्रिप्शन के समान नहीं है।
२०:१३ बजे

1
@ एरिक नहीं, सार्वजनिक कुंजी को निजी कुंजी से प्राप्त नहीं किया जा सकता है। निजी कुंजी फ़ाइलों में अक्सर दोनों कुंजियाँ शामिल होती हैं। अगर आप वास्तव में चर्चा में आना चाहते हैं, तो मैं आपको crypto.stackexchange.com सुझाव दूंगा । उन लोगों को आप वास्तव में गहन आंतरिक विवरण दे सकते हैं जिसमें आरएसए कुंजी के वास्तविक अंतर भी शामिल हैं और जो कुंजी को सार्वजनिक बनाम निजी माना जाता है वह केवल एक सिक्के का मनमाना फ्लिप नहीं है।
जेफ फेरलैंड

@Zoredache - मुझे नहीं पता था कि: धन्यवाद। क्या आपके पास अच्छे संदर्भ के लिए लिंक है?
डोमिनिक क्रोनिन

en.wikipedia.org/wiki/Asymmetric_key_algorithm - एक कुंजी ताले या प्लेटेक्स्ट को एन्क्रिप्ट करता है, और दूसरा सिफरटेक्स्ट को अनलॉक या डिक्रिप्ट करता है। न तो कुंजी दोनों कार्य कर सकती है। - en.wikipedia.org/wiki/RSA_(algorithm) - RSA में एक सार्वजनिक कुंजी और एक निजी कुंजी शामिल होती है। सार्वजनिक कुंजी हर किसी के लिए जाना जा सकता है और संदेश एन्क्रिप्ट करने के लिए प्रयोग किया जाता है । सार्वजनिक कुंजी के साथ एन्क्रिप्ट किए गए संदेश केवल निजी कुंजी का उपयोग करके डिक्रिप्ट किए जा सकते हैं।
Zoredache

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