SSL वास्तव में कैसे काम करता है?


143

SSL कैसे काम करता है?

क्लाइंट (या ब्राउज़र?) और सर्वर (या वेब सर्वर?) पर प्रमाणपत्र कहाँ स्थापित किया गया है?

जब आप ब्राउज़र में URL दर्ज करते हैं और सर्वर से पृष्ठ प्राप्त करते हैं तो विश्वास / एन्क्रिप्शन / प्रमाणीकरण प्रक्रिया कैसे शुरू होती है?

HTTPS प्रोटोकॉल प्रमाणपत्र को कैसे पहचानता है? जब प्रमाणपत्र उन प्रमाणपत्रों के साथ HTTP काम नहीं कर सकता है जो सभी ट्रस्ट / एन्क्रिप्शन / प्रमाणीकरण कार्य करते हैं?


24
मुझे लगता है कि यह एक उचित प्रश्न है - यह समझना कि एसएसएल कैसे काम करता है चरण 1, इसे सही ढंग से लागू करना चरण 2 अनंतता के माध्यम से है।
सिंथेसाइजरपटेल

4
इन्हें भी देखें: सुरक्षा
ल्यूक


5
@StingyJack यहाँ नीति नाज़ी मत बनो। लोग मदद की तलाश में आते हैं। उन सभी सहायता से इनकार न करें क्योंकि आप पाते हैं कि सवाल नियमों के साथ पूरी तरह से मेल नहीं खाता है।
१३:१३

1
@KorayTugay - कोई भी सहायता से इनकार कर रहा है। यह सुरक्षा या Sysadmin पर संबंधित है जहां यह बेहतर लक्षित है, लेकिन ओपी आमतौर पर सामान्य आईटी प्रश्न पोस्ट करने के बजाय कुछ बिट प्रोग्रामिंग संदर्भ जोड़कर इस फ़ोरम में लाभान्वित होगा। जब वे किसी विशिष्ट प्रोग्रामिंग समस्या से बंधे नहीं होते हैं, तो कितने लोगों को प्रश्न बंद हो जाते हैं? शायद बहुत सारे, इसलिए मेरी जुगलबंदी ओपी को उस जुड़ाव को बनाने के लिए हुई।
स्टिंगजैक

जवाबों:


144

नोट: मैंने अपना मूल उत्तर बहुत जल्दबाजी में लिखा था, लेकिन तब से, यह काफी लोकप्रिय प्रश्न / उत्तर में बदल गया है, इसलिए मैंने इसे थोड़ा विस्तारित किया है और इसे अधिक सटीक बनाया है।

टीएलएस क्षमताएं

"एसएसएल" वह नाम है जो अक्सर इस प्रोटोकॉल को संदर्भित करने के लिए उपयोग किया जाता है, लेकिन एसएसएल विशेष रूप से मध्य 90 के दशक में नेटस्केप द्वारा डिज़ाइन किए गए स्वामित्व प्रोटोकॉल को संदर्भित करता है। "टीएलएस" एक आईईटीएफ मानक है जो एसएसएल पर आधारित है, इसलिए मैं अपने उत्तर में टीएलएस का उपयोग करूंगा। इन दिनों, यह संभावना है कि वेब पर आपके सभी सुरक्षित कनेक्शन वास्तव में TLS का उपयोग कर रहे हैं, एसएसएल का नहीं।

TLS में कई क्षमताएं हैं:

  1. अपने एप्लिकेशन लेयर डेटा को एन्क्रिप्ट करें। (आपके मामले में, एप्लिकेशन लेयर प्रोटोकॉल HTTP है।)
  2. क्लाइंट को सर्वर प्रमाणित करें।
  3. क्लाइंट को सर्वर पर प्रमाणित करें।

# 1 और # 2 बहुत आम हैं। # 3 कम आम है। आप # 2 पर ध्यान केंद्रित कर रहे हैं, इसलिए मैं उस हिस्से को समझाऊंगा।

प्रमाणीकरण

एक सर्टिफिकेट का उपयोग करके एक क्लाइंट खुद को एक ग्राहक के लिए प्रमाणित करता है। एक प्रमाण पत्र डेटा का एक बूँद है [1] जिसमें एक वेबसाइट के बारे में जानकारी होती है:

  • डोमेन नाम
  • सार्वजनिक कुंजी
  • जो कंपनी इसका मालिक है
  • जब यह जारी किया गया था
  • जब यह समाप्त हो जाता है
  • इसे किसने जारी किया
  • आदि।

प्रमाण पत्र में शामिल सार्वजनिक कुंजी का उपयोग करके संदेशों को एन्क्रिप्ट करने के लिए आप गोपनीयता (# 1 ऊपर) प्राप्त कर सकते हैं जो केवल उसी निजी कुंजी द्वारा डिक्रिप्ट की जा सकती है, जिसे उस सर्वर पर सुरक्षित रूप से संग्रहीत किया जाना चाहिए। [2] इस कुंजी जोड़ी को KP1 कहते हैं, ताकि हम बाद में भ्रमित न हों। आप यह भी सत्यापित कर सकते हैं कि प्रमाणपत्र पर डोमेन नाम आपके द्वारा देखी जा रही साइट (# 2 ऊपर) से मेल खाता है।

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

इस बहुत हमले को रोकने के लिए, प्रमाण पत्र को किसी अन्य व्यक्ति की निजी कुंजी द्वारा क्रिप्टोग्राफिक रूप से हस्ताक्षरित किया जाता है ताकि हस्ताक्षर उसी व्यक्ति द्वारा सत्यापित किया जा सके जिसके पास संबंधित सार्वजनिक कुंजी है। चलो इस कुंजी जोड़ी को KP2 कहते हैं, यह स्पष्ट करने के लिए कि ये वही कुंजी नहीं हैं जो सर्वर उपयोग कर रहा है।

प्रमाणपत्र प्राधिकारी

तो किसने बनाया KP2? प्रमाण पत्र पर किसने हस्ताक्षर किए?

एक बिट को दर्शाते हुए, एक प्रमाण पत्र प्राधिकरण KP2 बनाता है, और वे अन्य संगठनों के लिए प्रमाण पत्र पर हस्ताक्षर करने के लिए अपनी निजी कुंजी का उपयोग करने की सेवा बेचते हैं। उदाहरण के लिए, मैं एक प्रमाण पत्र बनाता हूं और मैं उसकी निजी कुंजी के साथ हस्ताक्षर करने के लिए वेरिसाइन जैसी कंपनी को भुगतान करता हूं। [३] चूँकि Verisign के पास इस निजी कुंजी की पहुंच नहीं है, इसलिए हममें से कोई भी इस हस्ताक्षर को नहीं कर सकता है।

और मैं उस हस्ताक्षर को सत्यापित करने के लिए केपी 2 में व्यक्तिगत रूप से सार्वजनिक कुंजी कैसे प्राप्त करूंगा?

वैसे हमने पहले ही देखा है कि एक प्रमाण पत्र सार्वजनिक कुंजी पकड़ सकता है - और कंप्यूटर वैज्ञानिक पुनरावृत्ति से प्यार करते हैं - इसलिए केपी 2 सार्वजनिक कुंजी को एक प्रमाण पत्र में क्यों न डालें और इसे इस तरह से वितरित करें? यह पहली बार में थोड़ा पागल लगता है, लेकिन वास्तव में यह कैसे काम करता है। Verisign उदाहरण के साथ जारी रखते हुए, Verisign एक प्रमाण पत्र तैयार करता है जिसमें यह जानकारी होती है कि वे कौन हैं, उन्हें किस प्रकार की चीज़ों पर हस्ताक्षर करने की अनुमति है (अन्य प्रमाण पत्र), और उनकी सार्वजनिक कुंजी।

अब अगर मेरे पास उस सत्यापन प्रमाणपत्र की एक प्रति है, तो मैं उस वेबसाइट के लिए सर्वर प्रमाणपत्र पर हस्ताक्षर को मान्य करने के लिए उपयोग कर सकता हूं जिसे मैं यात्रा करना चाहता हूं। आसान, सही ?!

खैर, इतनी जल्दी नहीं। मुझे कहीं से वेरिसाइन सर्टिफिकेट लेना था । क्या होगा अगर कोई वेरिसाइन प्रमाण पत्र को खराब कर दे और अपनी खुद की सार्वजनिक कुंजी वहां रख दे? फिर वे सर्वर के प्रमाण पत्र पर हस्ताक्षर कर सकते हैं, और हम ठीक उसी जगह पर हैं जहाँ हमने शुरू किया था: एक आदमी का मध्य हमला।

प्रमाणपत्र जंजीरों

पुनरावर्ती रूप से सोचने के लिए जारी रखते हुए, हम निश्चित रूप से एक तीसरा प्रमाण पत्र और एक तीसरी कुंजी जोड़ी (KP3) को पेश कर सकते हैं और उपयोग कर सकते हैं कि Verisign certifcate पर हस्ताक्षर करने के लिए। हम इसे एक प्रमाणपत्र श्रृंखला कहते हैं: श्रृंखला के प्रत्येक प्रमाणपत्र का उपयोग अगले प्रमाणपत्र को सत्यापित करने के लिए किया जाता है। उम्मीद है कि आप पहले से ही देख सकते हैं कि इस पुनरावर्ती दृष्टिकोण कछुए / प्रमाण पत्र सभी तरह से नीचे हैं। कहां रुकता है?

चूंकि हम अनंत संख्या में प्रमाण पत्र नहीं बना सकते हैं, इसलिए प्रमाण पत्र श्रृंखला को स्पष्ट रूप से कहीं न कहीं रोकना होगा , और यह उस श्रृंखला में एक प्रमाण पत्र को शामिल करके किया जाता है जो स्व-हस्ताक्षरित है

मैं एक पल के लिए विराम देता हूं जब आप अपने सिर के विस्फोट से मस्तिष्क के मामले के टुकड़े उठाते हैं। स्व-हस्ताक्षरित ?!

हां, प्रमाण पत्र श्रृंखला (उर्फ "रूट") के अंत में, एक प्रमाण पत्र होगा जो स्वयं साइन करने के लिए स्वयं की कीपर का उपयोग करता है। यह अनंत पुनरावृत्ति समस्या को समाप्त करता है, लेकिन यह प्रमाणीकरण समस्या को ठीक नहीं करता है। कोई भी व्यक्ति एक स्व-हस्ताक्षरित प्रमाण पत्र बना सकता है जो उस पर कुछ भी कहता है, जैसे मैं एक नकली प्रिंसटन डिप्लोमा बना सकता हूं जो कहता है कि मैं राजनीति, सैद्धांतिक भौतिकी और प्रमुख बट-किकिंग में प्रमुख हूं और फिर तल पर अपना नाम हस्ताक्षर कर सकता हूं।

इस समस्या का [कुछ अस्पष्ट] समाधान केवल स्व-हस्ताक्षरित प्रमाण पत्र के कुछ सेट को चुनना है जिसे आप स्पष्ट रूप से भरोसा करते हैं। उदाहरण के लिए, मैं कह सकता हूं, "मुझे इस वेरिसाइन स्व-हस्ताक्षरित प्रमाणपत्र पर भरोसा है ।"

उस स्पष्ट विश्वास के साथ, अब मैं पूरी प्रमाणपत्र श्रृंखला को मान्य कर सकता हूं। कोई फर्क नहीं पड़ता कि श्रृंखला में कितने प्रमाण पत्र हैं, मैं प्रत्येक हस्ताक्षर को रूट के नीचे सभी तरह से मान्य कर सकता हूं। जब मैं रूट पर पहुंचता हूं, तो मैं यह जांच सकता हूं कि क्या वह रूट सर्टिफिकेट एक है जिस पर मुझे स्पष्ट रूप से भरोसा है। यदि ऐसा है, तो मैं पूरी श्रृंखला पर भरोसा कर सकता हूं।

विश्वसनीय ट्रस्ट

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

जब आप एक कंप्यूटर खरीदते हैं या एक ब्राउज़र डाउनलोड करते हैं, तो यह कुछ सौ रूट प्रमाणपत्रों के साथ आता है जो स्पष्ट रूप से भरोसा करता है। [४] जो कंपनियां उन प्रमाणपत्रों का स्वामित्व और संचालन करती हैं, वे अपने प्रमाणपत्रों पर हस्ताक्षर करके अन्य संगठनों पर भरोसा कर सकते हैं।

यह एक संपूर्ण प्रणाली से दूर है। कुछ समय में CA गलत तरीके से प्रमाणपत्र जारी कर सकता है। उन मामलों में, प्रमाणपत्र को निरस्त करने की आवश्यकता हो सकती है। निरस्तीकरण मुश्किल है क्योंकि जारी प्रमाण पत्र हमेशा क्रिप्टोग्राफिक रूप से सही होगा; एक आउट-ऑफ-बैंड प्रोटोकॉल यह पता लगाने के लिए आवश्यक है कि पहले मान्य प्रमाण पत्र निरस्त किए गए हैं। व्यवहार में, इनमें से कुछ प्रोटोकॉल बहुत सुरक्षित नहीं हैं, और कई ब्राउज़र वैसे भी उनकी जांच नहीं करते हैं।

कभी-कभी पूरे CA से समझौता कर लिया जाता है। उदाहरण के लिए, यदि आप वेरिसाइन में टूट जाते हैं और उनकी रूट साइनिंग कुंजी चोरी कर लेते हैं, तो आप दुनिया के किसी भी प्रमाण पत्र को खराब कर सकते हैं। ध्यान दें कि यह सिर्फ Verisign ग्राहकों को प्रभावित नहीं करता है: यहां तक ​​कि अगर मेरे प्रमाणपत्र Thawte (Verisign के एक प्रतियोगी) द्वारा हस्ताक्षरित है, तो इससे कोई फर्क नहीं पड़ता। मेरा प्रमाणपत्र अभी भी Verisign से समझौता हस्ताक्षरित कुंजी का उपयोग करके जाली हो सकता है।

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

यहां तक ​​कि जब सीए से सीधे समझौता नहीं किया जाता है, तो इस प्रणाली में अन्य खतरे भी होते हैं। उदाहरण के लिए, एक सरकार जाली प्रमाण पत्र पर हस्ताक्षर करने के लिए एक सीए को मजबूर करने के लिए कानूनी जबरदस्ती का उपयोग करती है। आपका नियोक्ता आपके कर्मचारी कंप्यूटर पर अपना स्वयं का सीए प्रमाणपत्र स्थापित कर सकता है। इन विभिन्न मामलों में, ट्रैफ़िक जिसे आप "सुरक्षित" होने की उम्मीद करते हैं, वास्तव में उस प्रमाणपत्र को नियंत्रित करने वाले संगठन के लिए पूरी तरह से दृश्यमान / परिवर्तनीय है।

कुछ प्रतिस्थापनों का सुझाव दिया गया है, जिसमें कन्वर्जेंस , TACK और DANE शामिल हैं

एंडनोट्स

[1] टीएलएस प्रमाणपत्र डेटा को X.509 मानक के अनुसार स्वरूपित किया जाता है । 509 पर आधारित है ASN.1 ( "सार वाक्य विन्यास संकेतन # 1"), जिसका अर्थ है कि यह है नहीं एक बाइनरी डेटा स्वरूप। इसलिए, X.509 को एक द्विआधारी प्रारूप में एन्कोड किया जाना चाहिए । डीईआर और पीईएम दो सबसे आम एनकोडिंग हैं, जिनके बारे में मुझे पता है।

[२] व्यवहार में, प्रोटोकॉल वास्तव में एक सममित सिफर पर बदल जाता है, लेकिन यह एक ऐसा विवरण है जो आपके प्रश्न के लिए प्रासंगिक नहीं है।

[३] माना जाता है कि, सीए वास्तव में आपके प्रमाण पत्र पर हस्ताक्षर करने से पहले आपको मान्य करता है। अगर वे ऐसा नहीं करते, तो मैं सिर्फ google.com के लिए एक प्रमाण पत्र बना सकता था और एक CA से इस पर हस्ताक्षर करने के लिए कह सकता था। उस सर्टिफिकेट के साथ, मैं google.com पर किसी भी "सुरक्षित" कनेक्शन को मैन-इन-द-बीच कर सकता था। इसलिए, CA के संचालन में सत्यापन चरण एक बहुत महत्वपूर्ण कारक है। दुर्भाग्य से, यह बहुत स्पष्ट नहीं है कि दुनिया भर के सैकड़ों सीए में यह सत्यापन प्रक्रिया कितनी कठोर है।

[४] मोज़िला की विश्वसनीय सीए की सूची देखें ।


एक निजी कुंजी क्या है?
कोरे तुगे

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

धन्यवाद @ ममदौहलरामदन मैंने उसका उल्लेख करने के लिए संपादन किया है।
मार्क ई। हासे

2
@mamdouhalramadan "सार्वजनिक कुंजी है ... डेटा को डिक्रिप्ट करने के लिए वेबसाइट पर भेजा जाता है"। सार्वजनिक कुंजी का उपयोग डेटा को डिक्रिप्ट करने के लिए कैसे किया जा सकता है?
टेडी

@ कमिटेड आप सही हैं। यह नहीं कर सकता। सार्वजनिक कुंजी का उपयोग केवल प्रमाणीकरण के लिए किया जाता है। यहाँ दावा है कि कुंजी जोड़े का उपयोग एन्क्रिप्शन और डिक्रिप्शन के लिए भी किया जाता है, गलत है। उसके लिए सुरक्षित रूप से बातचीत की गई सत्र कुंजी का उपयोग किया जाता है।
लोर्न

53

HTTPS HTTP और SSL (सिक्योर सॉकेट लेयर) का संयोजन है जो क्लाइंट (ब्राउज़र) और वेब सर्वर (एप्लिकेशन को यहां होस्ट किया जाता है) के बीच एन्क्रिप्टेड संचार प्रदान करता है।

इसकी आवश्यकता क्यों है?

HTTPS उस डेटा को एन्क्रिप्ट करता है जो नेटवर्क पर ब्राउज़र से सर्वर पर प्रसारित होता है। इसलिए, कोई भी ट्रांसमिशन के दौरान डेटा को सूँघ नहीं सकता है।

ब्राउज़र और वेब सर्वर के बीच HTTPS कनेक्शन कैसे स्थापित किया जाता है?

  1. ब्राउज़र https://payment.com से जुड़ने की कोशिश करता है ।
  2. payment.com सर्वर ब्राउज़र को एक प्रमाणपत्र भेजता है। इस प्रमाणपत्र में payment.com सर्वर की सार्वजनिक कुंजी और कुछ साक्ष्य हैं जो यह सार्वजनिक कुंजी वास्तव में payment.com से संबंधित है।
  3. ब्राउज़र यह पुष्टि करने के लिए प्रमाणपत्र की पुष्टि करता है कि उसके पास भुगतान.कॉम की उचित सार्वजनिक कुंजी है।
  4. ब्राउज़र भुगतान के लिए अपने कनेक्शन के लिए उपयोग करने के लिए एक यादृच्छिक नया सममित कुंजी K चुनता है। यह भुगतान.कॉम सार्वजनिक कुंजी के तहत K को एन्क्रिप्ट करता है।
  5. payment.com अपनी निजी कुंजी का उपयोग करते हुए K को डिक्रिप्ट करता है। अब ब्राउज़र और भुगतान सर्वर दोनों K जानते हैं, लेकिन कोई और नहीं करता है।
  6. किसी भी ब्राउज़र को payment.com पर कुछ भेजना है, यह इसे K के तहत एन्क्रिप्ट करता है; payment.com सर्वर इसे प्राप्त होने पर डिक्रिप्ट करता है। कभी भी payment.com सर्वर आपके ब्राउज़र में कुछ भेजना चाहता है, तो यह K के तहत उसे एन्क्रिप्ट करता है।

इस प्रवाह को निम्नलिखित चित्र द्वारा दर्शाया जा सकता है: यहां छवि विवरण दर्ज करें


1
सत्र कुंजी को एन्क्रिप्ट करने और भेजने और सर्वर पर इसे डिक्रिप्ट करने के बारे में हिस्सा पूरा है और बकवास है। सत्र कुंजी को कभी भी प्रसारित नहीं किया जाता है: यह एक सुरक्षित कुंजी negoatiaon एल्गोरिथ्म के माध्यम से स्थापित किया गया है। कृपया इस तरह की बकवास पोस्ट करने से पहले अपने तथ्यों की जाँच करें। RFC 2246.
Lorne

क्यों ब्राउज़र सर्वर की सार्वजनिक कुंजी का उपयोग डेटा को एन्क्रिप्ट करने के लिए नहीं करता है जब इसे सर्वर पर पोस्ट किया जाता है, बजाय चरण 4 पर एक यादृच्छिक नया सममित कुंजी K बनाने के लिए?
केविनबुई

1
@KevinBui क्योंकि सर्वर से प्रतिक्रिया भेजने के लिए क्लाइंट को एक महत्वपूर्ण जोड़ी की आवश्यकता होगी, और क्योंकि असममित एन्क्रिप्शन बहुत धीमा है।
को लोर्न

3

मैंने एक छोटा सा ब्लॉग पोस्ट लिखा है जो इस प्रक्रिया की संक्षिप्त चर्चा करता है। कृपया एक नज़र लेने के लिए स्वतंत्र महसूस करें।

एसएसएल हैंडशेक

उसी से एक छोटा सा स्निपेट इस प्रकार है:

"क्लाइंट HTTPS से अधिक सर्वर के लिए अनुरोध करता है। सर्वर अपने एसएसएल प्रमाणपत्र + सार्वजनिक कुंजी की एक प्रति भेजता है। अपने स्थानीय विश्वसनीय सीए स्टोर के साथ सर्वर की पहचान की पुष्टि करने के बाद, क्लाइंट एक गुप्त सत्र कुंजी बनाता है, जो सर्वर की जनता का उपयोग करके इसे एन्क्रिप्ट करता है। कुंजी और इसे भेजता है। सर्वर अपनी निजी कुंजी का उपयोग करके गुप्त सत्र कुंजी को डिक्रिप्ट करता है और क्लाइंट को एक पावती भेजता है। सुरक्षित चैनल स्थापित किया गया है। "


"अपने स्थानीय विश्वसनीय सीए स्टोर के साथ सर्वर की पहचान की पुष्टि करने के बाद" - यह कड़ाई से सच नहीं है। मैं एक स्व-हस्ताक्षरित प्रमाण पत्र का उपयोग कर सकता हूं और HTTPS काम करेगा - मैं एक सर्वर से एक सुरक्षित HTTPS कनेक्शन प्राप्त कर सकता हूं । विश्वसनीय प्रमाणपत्र केवल तभी आता है जब मैं यह सुनिश्चित करना चाहता हूं कि मैं सही सर्वर से बात कर रहा हूं ।
टेडी

सत्र कुंजी को एन्क्रिप्ट करने और भेजने और सर्वर पर इसे डिक्रिप्ट करने के बारे में हिस्सा पूरा है और बकवास है। सत्र कुंजी को कभी भी प्रसारित नहीं किया जाता है: यह एक सुरक्षित कुंजी negoatiaon एल्गोरिथ्म के माध्यम से स्थापित किया गया है। कृपया इस तरह की बकवास पोस्ट करने से पहले अपने तथ्यों की जाँच करें। RFC 2246.
पर लोर्ने

@ टेडी यह सही नहीं है। प्रमाणपत्र ट्रस्ट जाँच SSL का एक आवश्यक हिस्सा है। इसे बायपास किया जा सकता है लेकिन यह आमतौर पर प्रभाव में है: स्व-हस्ताक्षरित प्रमाण पत्र एक तरह के या किसी अन्य के विशेष उपायों के बिना काम नहीं करते हैं।
लोर्न

2

मेहासे ने इसे पहले से ही विवरण में समझाया है। मैं इस श्रृंखला में अपने 2 सेंट जोड़ूंगा। मेरे पास SSL हैंडशेक और प्रमाणपत्रों के आसपास कई ब्लॉगपोस्ट हैं। हालांकि यह अधिकांश IIS वेब सर्वर के आसपास घूमता है, लेकिन यह पोस्ट अभी भी सामान्य रूप से SSL / TLS हैंडशेक के लिए प्रासंगिक है। यहाँ आपके संदर्भ के लिए कुछ हैं:

एक विषय के रूप में प्रमाण पत्र और एसएसएल का इलाज न करें । उन्हें 2 अलग-अलग विषयों के रूप में समझो और फिर यह देखने की कोशिश करो कि वे किसके संयोजन में काम करते हैं। इससे आपको प्रश्न का उत्तर देने में मदद मिलेगी।

प्रमाणपत्र स्टोर के माध्यम से संचार दलों के बीच विश्वास स्थापित करना

एसएसएल / टीएलएस संचार पूरी तरह से विश्वास के आधार पर काम करता है। इंटरनेट पर हर कंप्यूटर (क्लाइंट / सर्वर) के पास रूट सीए और इंटरमीडिएट सीए की एक सूची है जो इसे बनाए रखता है। ये समय-समय पर अपडेट होते रहते हैं। SSL हैंडशेक के दौरान यह ट्रस्ट स्थापित करने के लिए एक संदर्भ के रूप में उपयोग किया जाता है। एसएसएल हैंडशेक के दौरान, जब ग्राहक सर्वर को प्रमाणपत्र प्रदान करता है, तो जांच के लिए। सर्वर यह जानने की कोशिश करेगा कि क्या सीए ने जो प्रमाण पत्र जारी किया है, वह सीए की सूची में मौजूद है या नहीं। जब यह ऐसा नहीं कर सकता है, तो यह घोषणा करता है कि यह प्रमाणपत्र श्रृंखला सत्यापन करने में असमर्थ था। (यह जवाब का एक हिस्सा है। यह एआईए को भी देखता हैइसके लिए।) क्लाइंट सर्वर सर्टिफिकेट के लिए भी इसी तरह का सत्यापन करता है, जो उसे सर्वर हैलो में प्राप्त होता है। विंडोज पर, आप PowerShell के माध्यम से क्लाइंट और सर्वर के लिए प्रमाणपत्र स्टोर देख सकते हैं। PowerShell कंसोल से नीचे निष्पादित करें।

PS सर्टिफिकेट:> ls स्थान: करेंटियर स्टोरनाम: {ट्रस्टेडप्रोसेसर, क्लायंटऑथाइज़र, रूट, यूजरडीएस ...}

स्थान: LocalMachine StoreNames: {TrustedPublisher, ClientAuthIssuer, रिमोट डेस्कटॉप, रूट ...}

फ़ायरफ़ॉक्स और ओपेरा जैसे ब्राउज़र प्रमाणपत्र प्रबंधन के लिए अंतर्निहित ओएस पर भरोसा नहीं करते हैं। वे अपना अलग सर्टिफिकेट स्टोर बनाए रखते हैं।

SSL हैंडशेक Symmetric & Public Key Cryptography दोनों का उपयोग करता है। सर्वर प्रमाणीकरण डिफ़ॉल्ट रूप से होता है। क्लाइंट प्रमाणीकरण वैकल्पिक है और यह निर्भर करता है कि सर्वर समापन बिंदु क्लाइंट को प्रमाणित करने के लिए कॉन्फ़िगर किया गया है या नहीं। मेरे ब्लॉग पोस्ट को देखें क्योंकि मैंने इसे विस्तार से बताया है।

अंत में इस सवाल के लिए

HTTPS प्रोटोकॉल प्रमाणपत्र को कैसे पहचानता है? जब प्रमाणपत्र उन प्रमाणपत्रों के साथ HTTP काम नहीं कर सकता है जो सभी ट्रस्ट / एन्क्रिप्शन / प्रमाणीकरण कार्य करते हैं?

प्रमाणपत्र केवल एक फ़ाइल है जिसका प्रारूप X.509 मानक द्वारा परिभाषित किया गया है । यह एक इलेक्ट्रॉनिक दस्तावेज है जो एक संवाद करने वाली पार्टी की पहचान साबित करता है। HTTPS = HTTP + SSL एक प्रोटोकॉल है जो दिशानिर्देशों को परिभाषित करता है कि 2 दलों को एक दूसरे के साथ कैसे संवाद करना चाहिए।

अधिक जानकारी

  • प्रमाणपत्रों को समझने के लिए आपको समझना होगा कि प्रमाणपत्र क्या हैं और प्रमाणपत्र प्रबंधन के बारे में भी पढ़ें। ये महत्वपूर्ण है।
  • एक बार जब यह समझ में आ जाए, तो TLS / SSL हैंडशेक के साथ आगे बढ़ें। आप इसके लिए RFC का संदर्भ ले सकते हैं। लेकिन वे कंकाल हैं जो दिशानिर्देशों को परिभाषित करते हैं। मेरी सहित कई ब्लॉगपोस्ट हैं जो इस बारे में विस्तार से बताते हैं।

यदि उपरोक्त गतिविधि की जाती है, तो आपको प्रमाण पत्र और एसएसएल की उचित समझ होगी।

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