2009-10-27 6 views
12

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

उत्तर

9

असल Diffie-Hellman एसएसएल का एक हिस्सा है। लेकिन एक हिस्सा दूसरों को प्रतिस्थापित नहीं करता है। सीए

यह में एक Diffie-Hellman कुंजी विनिमय जो सर्वर का सुरक्षा प्रमाणपत्र Diffie-Hellman सार्वजनिक मापदंडों प्रमाण पत्र प्राधिकरण द्वारा हस्ताक्षरित होता है (:

here एसएसएल Diffie-Helman से के लिए प्रयोग किया जाता है)। यही है, सार्वजनिक कुंजी प्रमाणपत्र में डिफी-हेलमैन सार्वजनिक-कुंजी पैरामीटर शामिल हैं। क्लाइंट प्रमाणीकरण आवश्यक है, या एक प्रमुख विनिमय संदेश में क्लाइंट प्रमाणीकरण प्रमाण पत्र में, इसके डिफि-हेलमैन सार्वजनिक कुंजी पैरामीटर प्रदान करता है। इस विधि के परिणामस्वरूप दो पीयर, के बीच निश्चित गुप्त कुंजी के परिणामस्वरूप निश्चित सार्वजनिक कुंजी का उपयोग करके डिफी-हेलमैन गणना के आधार पर तय की गई है।

+0

तो मुझे लगता है कि पीकेआई का उपयोग करने से बचने का कोई तरीका नहीं है। यदि मैं किसी तृतीय पक्ष के उपयोग के बिना एक एन्क्रिप्टेड लिंक को विश्वसनीय रूप से स्थापित करने के लिए 2 पार्टियों (एल्गोरिदम ओवरहेड के बावजूद) के लिए कोई रास्ता था, तो मैं जिज्ञासा से बाहर सोच रहा था। – kmnan

+0

सिद्धांत संख्या में। क्योंकि तीसरे पक्ष के किसी भी प्रयोग के बिना आप यह सुनिश्चित नहीं कर सकते कि आप अपने वांछित लक्ष्य के साथ एन्क्रिप्टेड लिंक स्थापित कर रहे हैं। – alexkr

+0

निश्चित रूप से, वहाँ है। उदाहरण के लिए यदि दोनों पक्ष एक महत्वपूर्ण हस्ताक्षर पार्टी के दौरान अपनी सार्वजनिक कुंजी का आदान-प्रदान करते हैं, तो उन्हें सुरक्षित कनेक्शन स्थापित करने के लिए किसी तीसरे पक्ष की आवश्यकता नहीं है। – Accipitridae

20

दोनों वास्तव में तुलनीय नहीं हैं। डीएच एक कुंजी-विनिमय एल्गोरिदम है, कुछ भी नहीं और कुछ भी कम नहीं है। एसएसएल यह स्थापित करने का प्रयास करता है कि जिस सर्वर से आप कनेक्ट कर रहे हैं वह वास्तव में है जो यह कहता है। ऐसा करने के लिए, यह एक प्रमाणपत्र का उपयोग करता है जिसे किसी ऐसे व्यक्ति के पास देखा जा सकता है जिसे आप (सक्षम करने में सक्षम हैं) विश्वास करते हैं।

DH, अपने आप में, केवल दूसरों प्रेषित डेटा पढ़ने से रहता है। एसएसएल का इरादा उस से काफी अधिक स्थापित करना है (लेकिन दूसरों को स्ट्रीम पढ़ने से रोकने के लिए डीएच का उपयोग कर सकते हैं)।

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

एसएसएल में प्रमाणीकरण कम से कम ऐसा होने से रोकने के लिए करना है। यदि आपके ब्राउज़र ने www.amazon.com से कनेक्ट करने का प्रयास किया है (उदाहरण के लिए) www.amazon.com, तो आपको यह चेतावनी देना चाहिए कि मेरा एसएसएल प्रमाणपत्र यह निर्दिष्ट नहीं करता है कि यह www.amazon.com को जारी किया गया था - और सीए को जारी नहीं करना चाहिए कोई भी प्रमाणपत्र लेकिन अमेज़ॅन।

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

4

आप एसएसएल के साथ अनाम डिफी-हेलमैन कुंजी समझौते का उपयोग कर सकते हैं। यह चैनल पर गोपनीयता प्रदान करता है, लेकिन कोई प्रमाणीकरण नहीं है।

बेशक, प्रमाणीकरण के बिना, आपको वास्तव में गोपनीयता नहीं मिल सकती है, क्योंकि आपका निजी चैनल "मैन-इन-द-बीच" से जुड़ा जा सकता है। यही कारण है कि अनाम डीएच सिफर सुइट्स निराश हैं।

एक प्रमाण पत्र के अभाव एसएसएल जहां यह वास्तव में आवश्यक है का उपयोग करने से रोक रहा है, तो startcom.org.

+0

+1 - साफ लिंक, मैं अपने व्यक्तिगत होम सर्वर के लिए अपना खुद का कर्ट बना रहा हूं ... मुझे नहीं पता था कि मुफ्त सीर्ट थे जो ब्राउज़र में अंतर्निहित सीए का उपयोग करते हैं ताकि आगंतुकों को जोड़ने की ज़रूरत नहीं है एक अपवाद –

+0

मुझे नहीं लगता कि आईई दुर्भाग्य से उनका समर्थन करता है। मैंने हाल ही में इसकी समीक्षा नहीं की है इसलिए मुझे यकीन नहीं है कि यह अभी भी मामला है। – erickson

+0

वास्तव में startcom.org पर एक त्वरित जांच से पता चलता है कि वे इंटरनेट एक्सप्लोरर का समर्थन करते हैं। – cmaduro

2

Diffie-Hellman कुंजी विनिमय से एक नि: शुल्क एक केवल keyexchange के लिए है मिलता है। यह आपको प्रमाणीकरण नहीं देता है (आप किससे बात कर रहे हैं), आपको इसके लिए प्रमाण पत्र और पीकेआई की आवश्यकता है।

तो हाँ आप एन्क्रिप्शन कर सकते हैं, लेकिन आप आप

1

को DH मुख्य एक्सचेंज में बात कर रहे हैं, जो नहीं, खुद की, एन्क्रिप्शन कर सकते हैं साथ नहीं जानता। इसका उपयोग सत्र कुंजी स्थापित करने के लिए किया जाता है, लेकिन एन्क्रिप्शन नहीं करना। इसलिए, इस स्तर पर, प्रश्न गलत बताया गया है या समझ में आता है या समझ की कमी या समझ की कमी (मुझे संदेह है कि इस समय परिशुद्धता समस्या है)।

सवाल यह है:

  • आप बिल्कुल किसी के साथ डेटा को एन्क्रिप्ट करना चाहते हैं?
  • क्या आप यह सुनिश्चित करना चाहते हैं कि आप किसके साथ बात कर रहे हैं?

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