Ssl प्रमाणपत्र कैसे सत्यापित होते हैं?


219

Ssl प्रमाणपत्र को सुरक्षित रूप से सत्यापित करने के लिए आवश्यक चरणों की श्रृंखला क्या है? मेरी (बहुत सीमित) समझ यह है कि जब आप किसी https साइट पर जाते हैं, तो सर्वर क्लाइंट (ब्राउज़र) को एक प्रमाणपत्र भेजता है और ब्राउज़र को उस प्रमाणपत्र से प्रमाणपत्र की जारीकर्ता की जानकारी मिलती है, फिर उपयोग करता है कि जारीकर्ता से संपर्क करें, और किसी तरह तुलना करें वैधता के लिए प्रमाण पत्र।

  • यह वास्तव में कैसे किया जाता है?
  • इस प्रक्रिया के बारे में क्या यह मानव-में-मध्य हमलों के लिए प्रतिरक्षा बनाता है?
  • कुछ यादृच्छिक व्यक्ति को अपने स्वयं के सत्यापन सेवा को मैन-इन-बीच हमलों में उपयोग करने से रोकता है, इसलिए सब कुछ "सुरक्षित" दिखता है?


इस वीडियो को प्रवाह समझने में बहुत उपयोगी पाया गया youtube.com/watch?v=T4Df5_cojAs
कृष्ण

जवाबों:


308

यहाँ एक बहुत ही सरल विवरण दिया गया है:

  1. आपका वेब ब्राउज़र वेब सर्वर का प्रमाणपत्र डाउनलोड करता है, जिसमें वेब सर्वर की सार्वजनिक कुंजी होती है। इस प्रमाणपत्र पर एक विश्वसनीय प्रमाणपत्र प्राधिकरण की निजी कुंजी के साथ हस्ताक्षर किए गए हैं।

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

  3. प्रमाणपत्र में वेब सर्वर का डोमेन नाम और / या आईपी पता होता है। आपका वेब ब्राउज़र प्रमाणपत्र प्राधिकारी के साथ पुष्टि करता है कि प्रमाण पत्र में सूचीबद्ध पता वह है जिसके पास एक खुला कनेक्शन है।

  4. आपका वेब ब्राउज़र एक साझा सममित कुंजी बनाता है जिसका उपयोग इस कनेक्शन पर HTTP ट्रैफ़िक को एन्क्रिप्ट करने के लिए किया जाएगा; यह सब कुछ के लिए सार्वजनिक / निजी कुंजी एन्क्रिप्शन का उपयोग करने की तुलना में बहुत अधिक कुशल है। आपका ब्राउज़र वेब सर्वर की सार्वजनिक कुंजी के साथ सममित कुंजी को एन्क्रिप्ट करता है, फिर इसे वापस भेजता है, इस प्रकार यह सुनिश्चित करता है कि केवल वेब सर्वर इसे डिक्रिप्ट कर सकता है, क्योंकि केवल वेब सर्वर के पास इसकी निजी कुंजी है।

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


4
चरण 1.5 के आसपास सर्वर भी अपने प्रमाणपत्र से जुड़ी निजी कुंजी के साथ कुछ "संकेत" करता है। यह नाम / आईपी चेक के साथ यह सुनिश्चित करने के लिए जोड़ती है कि प्रमाणपत्र का केवल मालिक साइट इसे प्रस्तुत करता है।
डैरन

68
फ़ायरफ़ॉक्स का उपयोग करके amazon.com से जुड़ने की इस प्रक्रिया का एक पूरा काम किया गया उदाहरण देखने के लिए , moserware.com/2009/06/first-few-milliseconds-of-https.html
जेफ मोसर

9
मुझे नहीं पता था कि मेरा ब्राउज़र सभी प्रमुख प्रमाणपत्र अधिकारियों की सार्वजनिक कुंजी के साथ स्थापित होता है। अब मुझे पता है कि मेरे SSL प्रमाणपत्र MITM के जोखिम के बिना कैसे सत्यापित हो रहे हैं :)। धन्यवाद!
OneChillDude

5
सर्वर को CAuthority से प्रमाणपत्र का अनुरोध करने की आवश्यकता होती है, इसलिए यह उसे अनुरोध भेजता है। सीए कैसे सुनिश्चित कर सकता है कि सर्वर वैध है?
20

4
@voipp: बहुत अच्छा सवाल! ऐतिहासिक रूप से कुछ दृष्टिकोण रहे हैं, जैसे "ईमेल से भेजें webmaster@<domain-being-verified>या" इस फ़ाइल को अपने डोमेन पर रखें ताकि आप इसे साबित कर सकें। "हालांकि, वास्तव में लोगों को उन डोमेन के लिए प्रमाण पत्र जारी करने के लिए सीए को प्राप्त करने में समस्या हो रही है जो वे नहीं करते हैं। खुद - प्रसिद्ध किसी ने उन्हें gmail.com के लिए एक प्रमाण पत्र जारी करने के लिए एक छायादार सीए प्राप्त करने में कामयाब रहे!
एली कोर्ट राइट

58

यह ध्यान देने योग्य है कि एक प्रमाण पत्र खरीदने के अलावा (जैसा कि ऊपर उल्लेख किया गया है), आप मुफ्त में अपना खुद का भी निर्माण कर सकते हैं; इसे "स्व-हस्ताक्षरित प्रमाणपत्र" कहा जाता है। स्व-हस्ताक्षरित प्रमाणपत्र और उसके द्वारा खरीदे गए एक के बीच का अंतर सरल है: खरीदे गए एक प्रमाणपत्र प्राधिकरण द्वारा हस्ताक्षरित किया गया है जिसके बारे में आपके ब्राउज़र को पहले से ही पता है। दूसरे शब्दों में, आपका ब्राउज़र खरीदे गए प्रमाण पत्र की प्रामाणिकता को आसानी से मान्य कर सकता है।

दुर्भाग्य से इसने एक आम गलतफहमी पैदा कर दी है कि वाणिज्यिक CA जैसे GoDaddy और Verisign द्वारा बेचे जाने वाले लोगों की तुलना में स्व-हस्ताक्षरित प्रमाण पत्र स्वाभाविक रूप से कम सुरक्षित हैं, और यदि आपको उनका उपयोग करना है तो ब्राउज़र चेतावनी / अपवादों के साथ रहना होगा; यह गलत है

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


1
वास्तव में, अपने स्वयं के प्रमाण पत्र को सुरक्षित रूप से वितरित करना बिल्ली को त्वचा देने का एक तरीका है, लेकिन एक बहुत आसान तथाकथित "खुले" सीए में से किसी एक में जाना है। CACert.org मेरी पसंदीदा है। जब तक आप अपने प्रमाणित जारी को सुरक्षित रखने के लिए उठाए जाने वाले कदमों पर भरोसा करते हैं, तब तक उनका मूल प्रमाणपत्र आयात करना सुरक्षित है।
nsayer

6
मुझे यह टिप्पणी पसंद है - दुर्भाग्य से यह सीए के साथ एक बहुत महत्वपूर्ण कमजोरी को उजागर करता है। मान लीजिए कि आप बॉब स्मिथ से एक CA प्रमाणपत्र आयात करते हैं - अच्छी तरह से बॉब स्मिथ किसी भी डोमेन (google.com और chase.com सहित) के लिए एक प्रमाण पत्र पर हस्ताक्षर कर सकता है। यह वास्तव में इसलिए है कि GoDaddy / Verisign OS में शामिल होने के लिए बड़े पैसे का भुगतान करते हैं - उन्हें सुरक्षा संगठन द्वारा यह सुनिश्चित करने के लिए वीटो किया जाता है कि उनके पास यह सुनिश्चित करने के लिए चेक हैं कि वे किसी दुर्भावनापूर्ण व्यक्ति के लिए प्रमाण पत्र पर हस्ताक्षर नहीं करते हैं। मुझे लगता है कि आपको यह कहने में सक्षम होना चाहिए कि "यह सीए केवल mysite.com के लिए समारोह में हस्ताक्षर कर सकता है"।
नेटली एडम्स

स्वयं हस्ताक्षरित प्रमाण पत्र अधिक सुरक्षित नहीं है, क्योंकि सीए के पास कुछ ऐसा करने के लिए भुगतान किया जा सकता है जो उनके पास नहीं होना चाहिए। यदि आप CA सीट्स को अंत-बिंदुओं में सुरक्षित रूप से वितरित कर सकते हैं, तो हमेशा स्व-हस्ताक्षरित सीट्स के साथ जाएं।
जावाफोबिक

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

@NathanAdams सिद्धांत रूप में बड़े सीए को बोगस सेर्ट्स जारी करने से अनुरोध करने का अनुरोध किया जाता है जैसा कि आप वर्णन करते हैं ... लेकिन इस कहानी को पढ़ें: stripe.ian.sh
nsayer

38

आपने कहा था कि

ब्राउज़र को उस प्रमाणपत्र से प्रमाणपत्र जारीकर्ता की जानकारी मिलती है, फिर वह जारीकर्ता से संपर्क करने के लिए उपयोग करता है, और किसी तरह वैधता के लिए प्रमाण पत्र की तुलना करता है।

क्लाइंट को जारीकर्ता के साथ जांच करने की आवश्यकता नहीं है क्योंकि दो चीजें:

  1. सभी ब्राउज़रों के पास सभी प्रमुख CA सार्वजनिक कुंजियों की एक पूर्व-स्थापित सूची है
  2. प्रमाण पत्र पर हस्ताक्षर किए हैं, और यह हस्ताक्षर ही पर्याप्त प्रमाण है कि प्रमाण पत्र मान्य है क्योंकि ग्राहक अपने स्वयं के द्वारा, और जारीकर्ता के सर्वर से संपर्क किए बिना यह सुनिश्चित कर सकता है कि प्रमाण पत्र प्रामाणिक है। यह असममित एन्क्रिप्शन की सुंदरता है।

ध्यान दें कि 2. 1 के बिना नहीं किया जा सकता है।

कुछ समय पहले बनाए गए इस बड़े चित्र में यह बेहतर बताया गया है

(नीचे "क्या एक हस्ताक्षर है?" पर जाएं)

बूँद


9
यह स्वीकृत उत्तर होना चाहिए था। @ एली कोर्टराइट का जवाब यह समझने के लिए है कि प्रमाणपत्र कैसे काम करता है।
फेलिक्स क्रैज़ोलारा

इसे एक बार पढ़ना पर्याप्त नहीं हो सकता है, लेकिन यदि आप पहले से ही बिट्स और एसएसएल के टुकड़ों से परिचित हैं, तो यह वास्तव में सब कुछ एक साथ लाता है। अच्छी नौकरी!
कैमरून गगनोन

शानदार छवि। अंत में कुछ ऐसा जो मेरे सवालों की व्याख्या करता है। हर जगह मैं गहराई में जाने के लिए कहा "ब्राउज़र ने सत्यापित किया कि प्रमाणपत्र सही है"। लेकिन यह कैसे करता है? यह एक उत्तर देता है।
ori6151

8

क्लाइंट के पास एसएसएल सर्टिफिकेट अथॉरिटी की पब्लिक कीज का प्री-सीडेड स्टोर है। सर्वर पर भरोसा करने के लिए तथाकथित "रूट" प्रमाणपत्रों में से एक तक मध्यवर्ती अधिकारियों के माध्यम से सर्वर के लिए प्रमाण पत्र से विश्वास की एक श्रृंखला होनी चाहिए।

आप विश्वसनीय अधिकारियों की सूची की जांच कर सकते हैं और / या बदल सकते हैं। अक्सर आप स्थानीय प्राधिकारी के लिए एक प्रमाण पत्र जोड़ने के लिए ऐसा करते हैं जिसे आप जानते हैं कि आप पर भरोसा है - जिस कंपनी के लिए आप काम करते हैं या जिस स्कूल में आप जाते हैं या जो नहीं करते हैं।

पूर्व-वरीयता सूची आपके द्वारा उपयोग किए जाने वाले क्लाइंट के आधार पर भिन्न हो सकती है। बड़े एसएसएल प्रमाणपत्र विक्रेता यह सुनिश्चित करते हैं कि उनके रूट सीटर सभी प्रमुख ब्राउज़रों ($ $ $) में हैं।

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


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