
सुरक्षित संचार के लिए SSL/TLS प्रोटोकॉल, सामान्य एन्क्रिप्शन और X.509 प्रमाणपत्र हैंडलिंग को लागू करने वाली मज़बूत ओपन-सोर्स क्रिप्टोग्राफ़ी लाइब्रेरी।
OpenSSL 1.0.1g 7 Apr 2014
Copyright (c) 1998-2011 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson सर्वाधिकार सुरक्षित।
OpenSSL प्रोजेक्ट एक सहयोगात्मक प्रयास है जो सिक्योर सॉकेट्स लेयर (SSL v2/v3) और ट्रांसपोर्ट लेयर सिक्योरिटी (TLS v1) प्रोटोकॉल के साथ-साथ एक पूर्ण-क्षमता वाली सामान्य प्रयोजन क्रिप्टोग्राफी लाइब्रेरी को लागू करने वाला एक मजबूत, व्यावसायिक-ग्रेड, पूर्ण-विशेषताओं वाला और ओपन सोर्स टूलकिट विकसित करने के लिए है। इस प्रोजेक्ट का प्रबंधन दुनिया भर के स्वयंसेवकों के समुदाय द्वारा किया जाता है जो OpenSSL टूलकिट और उससे संबंधित दस्तावेज़ीकरण को संवाद, योजना और विकसित करने के लिए इंटरनेट का उपयोग करते हैं।
OpenSSL उत्कृष्ट SSLeay लाइब्रेरी पर आधारित है जिसे Eric A. Young और Tim J. Hudson ने विकसित किया था। OpenSSL टूलकिट दोहरे-लाइसेंस (OpenSSL लाइसेंस और SSLeay लाइसेंस) स्थिति के तहत लाइसेंस प्राप्त है, जिसका मूल रूप से अर्थ है कि आप दोनों लाइसेंसों की शर्तों को पूरा करने तक इसे व्यावसायिक और गैर-व्यावसायिक उद्देश्यों के लिए प्राप्त करने और उपयोग करने के लिए स्वतंत्र हैं।
OpenSSL टूलकिट में शामिल हैं:
libssl.a: SSLv2, SSLv3, TLSv1 का कार्यान्वयन और एक ही सर्वर और क्लाइंट में SSLv2, SSLv3 और TLSv1 दोनों का समर्थन करने के लिए आवश्यक कोड।
libcrypto.a: SSL/TLS के लिए आवश्यक सामान्य एन्क्रिप्शन और X.509 v1/v3 सामग्री, लेकिन वास्तव में तार्किक रूप से इसका हिस्सा नहीं। इसमें निम्नलिखित के लिए रूटीन शामिल हैं:
सिफर
libdes - EAY की libdes DES एन्क्रिप्शन पैकेज जो कुछ वर्षों तक नेट पर उपलब्ध थी, और फिर उनके द्वारा SSLeay के भाग के रूप में पुनः लाइसेंस प्राप्त की गई। इसमें DES के 15 'मोड/वेरिएशन' शामिल हैं (ecb, cbc, cfb और ofb के 1, 2 और 3 कुंजी संस्करण; pcbc और cfb तथा ofb का अधिक सामान्य रूप) जिसमें cbc मोड में desx, एक तेज़ crypt(3), और कीबोर्ड से पासवर्ड पढ़ने के रूटीन शामिल हैं।
RC4 एन्क्रिप्शन,
RC2 एन्क्रिप्शन - 4 विभिन्न मोड, ecb, cbc, cfb और ofb।
Blowfish एन्क्रिप्शन - 4 विभिन्न मोड, ecb, cbc, cfb और ofb।
IDEA एन्क्रिप्शन - 4 विभिन्न मोड, ecb, cbc, cfb और ofb।
डाइजेस्ट
MD5 और MD2 मैसेज डाइजेस्ट एल्गोरिदम, तेज़ कार्यान्वयन,
SHA (SHA-0) और SHA-1 मैसेज डाइजेस्ट एल्गोरिदम,
MDC2 मैसेज डाइजेस्ट। एक DES-आधारित हैश जो स्मार्ट कार्ड पर लोकप्रिय है।
सार्वजनिक कुंजी
RSA एन्क्रिप्शन/डिक्रिप्शन/जनरेशन।
बिट्स की संख्या की कोई सीमा नहीं है।
DSA एन्क्रिप्शन/डिक्रिप्शन/जनरेशन।
बिट्स की संख्या की कोई सीमा नहीं है।
Diffie-Hellman कुंजी-विनिमय/कुंजी जनरेशन।
बिट्स की संख्या की कोई सीमा नहीं है।
X.509v3 प्रमाणपत्र
X509 का बाइनरी ASN1 में/से एन्कोडिंग/डिकोडिंग और एक PEM-
आधारित ASCII-बाइनरी एन्कोडिंग जो निजी कुंजी के साथ
एन्क्रिप्शन का समर्थन करती है। RSA और DSA प्रमाणपत्र
अनुरोध उत्पन्न करने और RSA और DSA प्रमाणपत्र उत्पन्न करने का प्रोग्राम।
सिस्टम
सामान्य डिजिटल एनवेलप रूटीन और base64 एन्कोडिंग। नाम से सिफर और डाइजेस्ट तक उच्च स्तरीय पहुंच। नए सिफर रन टाइम पर लोड किए जा सकते हैं। BIO io सिस्टम जो एक सरल नॉन-ब्लॉकिंग IO एब्स्ट्रैक्शन है। समर्थित वर्तमान विधियाँ फाइल डिस्क्रिप्टर, सॉकेट, सॉकेट एक्सेप्ट, सॉकेट कनेक्ट, मेमोरी बफर, बफरिंग, SSL क्लाइंट/सर्वर, फाइल पॉइंटर, एन्क्रिप्शन, डाइजेस्ट, नॉन-ब्लॉकिंग टेस्टिंग और नल हैं।
डेटा संरचनाएं
एक गतिशील रूप से बढ़ने वाली हैशिंग प्रणाली
एक सरल स्टैक।
एक कॉन्फ़िगरेशन लोडर जो MS .ini फाइलों के समान प्रारूप का उपयोग करता है।
openssl: एक कमांड लाइन टूल जिसका उपयोग निम्न के लिए किया जा सकता है: RSA, DH और DSA कुंजी पैरामीटर का निर्माण X.509 प्रमाणपत्र, CSR और CRL का निर्माण मैसेज डाइजेस्ट की गणना सिफर के साथ एन्क्रिप्शन और डिक्रिप्शन SSL/TLS क्लाइंट और सर्वर परीक्षण S/MIME हस्ताक्षरित या एन्क्रिप्टेड मेल की हैंडलिंग
विभिन्न कंपनियाँ दुनिया भर के विभिन्न स्थानों में विभिन्न एल्गोरिदम के लिए विभिन्न पेटेंट रखती हैं। आप यह सुनिश्चित करने के लिए ज़िम्मेदार हैं कि आपके देश में कोई पेटेंट है या नहीं, यह जाँच कर आपके किसी भी एल्गोरिदम का उपयोग कानूनी है। इस फाइल में कुछ पेटेंट शामिल हैं जिनके बारे में हम जानते हैं या जिनके अस्तित्व की अफवाह है। यह एक निश्चित सूची नहीं है।
RSA Security, RC5 एल्गोरिदम पर सॉफ्टवेयर पेटेंट रखती है। यदि आप इस सिफर का उपयोग करने का इरादा रखते हैं, तो आपको लाइसेंसिंग शर्तों के लिए RSA Security से संपर्क करना होगा। उनका वेब पेज http://www.rsasecurity.com/ है।
RC4, RSA Security का एक ट्रेडमार्क है, इसलिए इस लेबल का उपयोग शायद केवल RSA Security की अनुमति से किया जाना चाहिए।
IDEA एल्गोरिदम का पेटेंट Ascom के पास ऑस्ट्रिया, फ्रांस, जर्मनी, इटली, जापान, नीदरलैंड, स्पेन, स्वीडन, स्विट्जरलैंड, यूके और यूएसए में है। यदि उस एल्गोरिदम का उपयोग किया जाना है तो उनसे संपर्क किया जाना चाहिए; उनका वेब पेज http://www.ascom.ch/ है।
NTT और Mitsubishi के पास Camellia एल्गोरिदम पर पेटेंट और लंबित पेटेंट हैं, लेकिन स्पष्ट लाइसेंसिंग समझौते की आवश्यकता के बिना निःशुल्क उपयोग की अनुमति देते हैं: http://info.isl.ntt.co.jp/crypt/eng/info/chiteki.html
Unix डेरिवेटिव के तहत इस पैकेज को स्थापित करने के लिए, INSTALL फाइल पढ़ें। Win32 प्लेटफॉर्म के लिए, INSTALL.W32 फाइल पढ़ें। OpenVMS सिस्टम के लिए, INSTALL.VMS पढ़ें।
doc/ निर्देशिका में दस्तावेज़ीकरण पढ़ें। यह काफी कच्चा है, लेकिन यह फ़ंक्शन सूचीबद्ध करता है; आपको संभवतः यह जानने के लिए कोड देखना होगा कि उनका उपयोग कैसे करना है। उदाहरण प्रोग्राम देखें।
कुछ प्लेटफार्मों के लिए, कुछ ज्ञात समस्याएं हैं जो उपयोगकर्ता या एप्लिकेशन लेखक को प्रभावित कर सकती हैं। हम उन्हें doc/PROBLEMS में एकत्र करने का प्रयास करते हैं, साथ ही OpenSSL के भविष्य में उन्हें कैसे हल किया जाना चाहिए, इस पर वर्तमान विचार भी।
व्यावसायिक तकनीकी सहायता प्राप्त करने के विवरण के लिए OpenSSL वेबसाइट www.openssl.org देखें।
यदि आपको OpenSSL के साथ कोई समस्या है तो कृपया पहले निम्नलिखित कदम उठाएं:
- ftp://ftp.openssl.org/snapshot/ से वर्तमान स्नैपशॉट डाउनलोड करें
ताकि देखा जा सके कि समस्या पहले से संबोधित की गई है या नहीं
- लाइब्रेरी के ASM संस्करण हटाएं
- कंपाइलर ऑप्टिमाइज़ेशन फ्लैग हटाएं
यदि आप कोई बग रिपोर्ट करना चाहते हैं तो कृपया किसी भी बग रिपोर्ट में निम्नलिखित जानकारी शामिल करें:
- Unix सिस्टम पर:
'make report' द्वारा उत्पन्न सेल्फ-टेस्ट रिपोर्ट
- अन्य सिस्टम पर:
OpenSSL संस्करण: 'openssl version -a' का आउटपुट
OS नाम, संस्करण, हार्डवेयर प्लेटफॉर्म
कंपाइलर विवरण (नाम, संस्करण)
- एप्लिकेशन विवरण (नाम, संस्करण)
- समस्या विवरण (समस्या को पुन: उत्पन्न करने वाले चरण, यदि ज्ञात हों)
- स्टैक ट्रेसबैक (यदि एप्लिकेशन कोर डंप करता है)
बग को Request Tracker (http://www.openssl.org/support/rt.html) के माध्यम से मेल द्वारा OpenSSL प्रोजेक्ट को रिपोर्ट करें:
ध्यान दें कि request tracker का उपयोग सामान्य सहायता या समर्थन प्रश्नों के लिए नहीं किया जाना चाहिए। केवल इसलिए कि कुछ आपकी अपेक्षा के अनुसार काम नहीं करता, इसका मतलब यह नहीं है कि OpenSSL में आवश्यक रूप से कोई बग है।
ध्यान दें कि [email protected] पर मेल सार्वजनिक रूप से पठनीय request tracker डेटाबेस में दर्ज किया जाता है और एक सार्वजनिक मेलिंग सूची पर अग्रेषित किया जाता है। गोपनीय मेल [email protected] पर भेजा जा सकता है (PGP कुंजी कुंजी सर्वर से उपलब्ध है)।
विकास openssl-dev मेलिंग सूची पर समन्वित किया जाता है (सदस्यता की जानकारी के लिए http://www.openssl.org देखें)। यदि आप एक पैच प्रस्तुत करना चाहते हैं, तो इसे विषय में "[PATCH]" स्ट्रिंग के साथ [email protected] पर भेजें। कृपया सुनिश्चित करें कि आपका पैच क्या करता है, इसका एक पाठ्य विवरण शामिल करें।
यदि आप अनिश्चित हैं कि कोई सुविधा सामान्य OpenSSL समुदाय के लिए उपयोगी होगी या नहीं, तो कृपया पहले openssl-dev मेलिंग सूची पर इस पर चर्चा करें। हो सकता है कि कोई पहले से ही उसी चीज़ पर काम कर रहा हो या इस बात का कोई अच्छा कारण हो कि वह सुविधा लागू क्यों नहीं की गई है।
पैच यथासंभव अद्यतन होने चाहिए, अधिमानतः वर्तमान Git या अंतिम स्नैपशॉट के सापेक्ष। उन्हें OpenSSL की कोडिंग शैली का पालन करना चाहिए और बिना चेतावनियों के कंपाइल होना चाहिए। परीक्षण उद्देश्यों के लिए कुछ कोर टीम डेवलपर टार्गेट का उपयोग किया जा सकता है (debug-steve64, debug-geoff आदि)। OpenSSL कई विविध प्लेटफार्मों पर कंपाइल होता है: सुनिश्चित करें कि आप केवल पोर्टेबल सुविधाओं का उपयोग करें।
नोट: कानूनी कारणों से, यूएस से योगदान केवल तभी स्वीकार किया जा सकता है जब TSU सूचना और पैच की एक प्रति [email protected] (पूर्व में BXA) को भेजी जाए और ENC एन्क्रिप्शन अनुरोध समन्वयक को एक प्रति भेजी जाए; कृपया विवरण के लिए कुछ समय निकालकर देखें http://www.bis.doc.gov/Encryption/PubAvailEncSourceCodeNofify.html [sic] और http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (EAR अनुभाग 740.13(e)) यदि "आपका एन्क्रिप्शन सोर्स कोड ईमेल अटैचमेंट के रूप में सेवा देने के लिए बहुत बड़ा है", तो वे इसे फैक्स द्वारा प्राप्त करने में प्रसन्न होते हैं; आशा है कि आपके पास एक सस्ती लॉन्ग-डिस्टेंस योजना है।
परिवर्तनों के लिए हमारा पसंदीदा प्रारूप "diff -u" आउटपुट है। आप इसे इस प्रकार उत्पन्न कर सकते हैं: