Erlang 21 - 2. TLS/DTLS and TLS Predecessor, SSL

2 टीएलएस / डीटीएलएस और टीएलएस पूर्ववर्ती, एसएसएल




erlang

2 टीएलएस / डीटीएलएस और टीएलएस पूर्ववर्ती, एसएसएल

Erlang SSL एप्लिकेशन वर्तमान में समर्थित संस्करणों के लिए SSL / TLS / DTLS प्रोटोकॉल को लागू करता है, ssl(3) मैनुअल पेज देखें।

डिफ़ॉल्ट रूप से SSL / TLS टीसीपी / आईपी प्रोटोकॉल पर चलाया जाता है, भले ही आप कर्नेल में gen_tcp मॉड्यूल के रूप में समान एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस (API) के साथ किसी अन्य विश्वसनीय परिवहन प्रोटोकॉल में प्लग कर सकते हैं। DTLS UDP / IP पर डिफ़ॉल्ट रूप से चलाया जाता है, जिसका अर्थ है कि एप्लिकेशन डेटा में कोई डिलीवरी ग्वारेंट नहीं है। अन्य ट्रांसपोर्ट, जैसे कि एससीटीपी, भविष्य के रिलीज में समर्थित हो सकते हैं।

यदि कोई क्लाइंट और कोई सर्वर एक नवीनीकरण तंत्र का उपयोग करना चाहता है, जैसे कि RFC 2817 द्वारा परिभाषित, एक नियमित टीसीपी / आईपी कनेक्शन को टीएलएस कनेक्शन के लिए अपग्रेड करने के लिए, तो यह एरलैंग एसएसएल एप्लिकेशन एपीआई द्वारा समर्थित है। उदाहरण के लिए, उसी पोर्ट पर HTTP और HTTPS को सपोर्ट करना और वर्चुअल होस्टिंग को लागू करना उपयोगी हो सकता है। ध्यान दें कि यह केवल TLS सुविधा है।

2.1 सुरक्षा अवलोकन

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

2.2 डेटा गोपनीयता और अखंडता

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

सममित एन्क्रिप्शन की कुंजी प्रत्येक कनेक्शन के लिए विशिष्ट रूप से उत्पन्न होती है और यह TLS / DTLS हैंडशेक में गुप्त बातचीत पर आधारित होती है।

TLS / DTLS हैंडशेक प्रोटोकॉल और डेटा ट्रांसफर TLS / DTLS रिकॉर्ड प्रोटोकॉल के शीर्ष पर चलाया जाता है, जो संदेश डेटा अखंडता की सुरक्षा के लिए एक की-हैश मैसेज ऑथेंटिसिटी कोड (MAC), या एक हैश-आधारित MAC (HMAC) का उपयोग करता है। । TLS RFC से: "एक संदेश प्रमाणीकरण कोड एक संदेश और कुछ गुप्त डेटा से गणना की गई एक तरफ़ा हैश है। गुप्त डेटा को जाने बिना जाली बनाना मुश्किल है। इसका उद्देश्य यह पता लगाना है कि क्या संदेश बदल दिया गया है।"

२.३ डिजिटल प्रमाण पत्र

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

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

२.४ पीर प्रमाणीकरण

सहकर्मी का प्रमाणीकरण सार्वजनिक कुंजी पथ सत्यापन द्वारा किया जाता है जैसा कि RFC 3280 में परिभाषित किया गया है। इसका मतलब मूल रूप से निम्नलिखित है:

  • प्रमाण पत्र श्रृंखला में प्रत्येक प्रमाण पत्र पिछले एक द्वारा जारी किया जाता है।
  • प्रमाणपत्र विशेषताएँ मान्य हैं।
  • रूट प्रमाणपत्र एक विश्वसनीय प्रमाणपत्र है जो सहकर्मी द्वारा रखे गए विश्वसनीय प्रमाणपत्र डेटाबेस में मौजूद है।

सर्वर हमेशा टीएलएस हैंडशेक के हिस्से के रूप में एक प्रमाण पत्र श्रृंखला भेजता है, लेकिन क्लाइंट केवल एक ही भेजता है यदि सर्वर द्वारा अनुरोध किया जाता है। यदि क्लाइंट के पास उपयुक्त प्रमाणपत्र नहीं है, तो वह सर्वर को "खाली" प्रमाण पत्र भेज सकता है।

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

2.5 टीएलएस सत्र

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

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

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