
OpenSSL 1.0.1g स्रोत कोड स्नैपशॉट, जिसमें SSL/TLS और सामान्य-उद्देश्य क्रिप्टोग्राफी लाइब्रेरी शामिल है, भेद्यता विश्लेषण के लिए CVE-2015-3197 के संदर्भ के साथ।
OpenSSL 1.0.1g 7 Apr 2014
कॉपीराइट (c) 1998-2011 द ओपनएसएसएल प्रोजेक्ट कॉपीराइट (c) 1995-1998 एरिक ए. यंग, टिम जे. हडसन सर्वाधिकार सुरक्षित।
ओपनएसएसएल प्रोजेक्ट एक सहयोगात्मक प्रयास है जो सिक्योर सॉकेट्स लेयर (SSL v2/v3) और ट्रांसपोर्ट लेयर सिक्योरिटी (TLS v1) प्रोटोकॉल को कार्यान्वित करने वाला एक मजबूत, व्यावसायिक-ग्रेड, पूर्ण विशेषताओं वाला और ओपन सोर्स टूलकिट विकसित करने के साथ-साथ एक पूर्ण-शक्ति सामान्य प्रयोजन क्रिप्टोग्राफी लाइब्रेरी भी विकसित करता है। इस परियोजना का प्रबंधन दुनिया भर के स्वयंसेवकों के एक समुदाय द्वारा किया जाता है जो इंटरनेट का उपयोग करके ओपनएसएसएल टूलकिट और इससे संबंधित दस्तावेज़ीकरण का संचार, योजना और विकास करते हैं।
ओपनएसएसएल एरिक ए. यंग और टिम जे. हडसन द्वारा विकसित उत्कृष्ट SSLeay लाइब्रेरी पर आधारित है। ओपनएसएसएल टूलकिट को दोहरे-लाइसेंस (ओपनएसएसएल लाइसेंस और SSLeay लाइसेंस) के तहत लाइसेंस प्राप्त है, जिसका मूलतः अर्थ है कि आप इसे वाणिज्यिक और गैर-वाणिज्यिक दोनों उद्देश्यों के लिए प्राप्त करने और उपयोग करने के लिए स्वतंत्र हैं, बशर्ते आप दोनों लाइसेंसों की शर्तों को पूरा करते हैं।
ओपनएसएसएल टूलकिट में शामिल है:
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 प्रमाणपत्र
बाइनरी ASN1 में/से X509 एन्कोडिंग/डिकोडिंग और एक 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
इस पैकेज को यूनिक्स व्युत्पन्न के तहत स्थापित करने के लिए, INSTALL फ़ाइल पढ़ें। Win32 प्लेटफॉर्म के लिए, INSTALL.W32 फ़ाइल पढ़ें। OpenVMS सिस्टम के लिए, INSTALL.VMS पढ़ें।
doc/ निर्देशिका में दस्तावेज़ीकरण पढ़ें। यह काफी कच्चा है, लेकिन यह कार्यों को सूचीबद्ध करता है; आपको शायद उनका उपयोग करने का तरीका जानने के लिए कोड को देखना होगा। उदाहरण प्रोग्राम देखें।
कुछ प्लेटफार्मों के लिए, कुछ ज्ञात समस्याएं हैं जो उपयोगकर्ता या एप्लिकेशन लेखक को प्रभावित कर सकती हैं। हम उन्हें doc/PROBLEMS में एकत्र करने का प्रयास करते हैं, साथ ही वर्तमान विचारों के साथ कि उन्हें OpenSSL के भविष्य में कैसे हल किया जाना चाहिए।
व्यावसायिक तकनीकी सहायता प्राप्त करने के विवरण के लिए OpenSSL वेबसाइट www.openssl.org देखें।
यदि आपको OpenSSL के साथ कोई समस्या है तो कृपया पहले निम्नलिखित कदम उठाएं:
- वर्तमान स्नैपशॉट ftp://ftp.openssl.org/snapshot/ से डाउनलोड करें
यह देखने के लिए कि क्या समस्या पहले ही संबोधित की जा चुकी है
- लाइब्रेरी के ASM संस्करणों को हटाएं
- कंपाइलर ऑप्टिमाइज़ेशन फ़्लैग हटाएं
यदि आप कोई बग रिपोर्ट करना चाहते हैं तो कृपया किसी भी बग रिपोर्ट में निम्नलिखित जानकारी शामिल करें:
- यूनिक्स सिस्टम पर:
'make report' द्वारा उत्पन्न स्व-परीक्षण रिपोर्ट
- अन्य सिस्टम पर:
OpenSSL संस्करण: 'openssl version -a' का आउटपुट
OS नाम, संस्करण, हार्डवेयर प्लेटफॉर्म
कंपाइलर विवरण (नाम, संस्करण)
- एप्लिकेशन विवरण (नाम, संस्करण)
- समस्या विवरण (समस्या को पुन: उत्पन्न करने वाले चरण, यदि ज्ञात हों)
- स्टैक ट्रेसबैक (यदि एप्लिकेशन कोर डंप करता है)
बग को OpenSSL प्रोजेक्ट को रिक्वेस्ट ट्रैकर (http://www.openssl.org/support/rt.html) के माध्यम से मेल द्वारा रिपोर्ट करें:
ध्यान दें कि रिक्वेस्ट ट्रैकर का उपयोग सामान्य सहायता या समर्थन प्रश्नों के लिए नहीं किया जाना चाहिए। कोई चीज़ आपकी अपेक्षा के अनुसार काम नहीं करती है, इसका अर्थ यह नहीं है कि यह OpenSSL में आवश्यक रूप से एक बग है।
ध्यान दें कि [email protected] पर मेल सार्वजनिक रूप से पठनीय रिक्वेस्ट ट्रैकर डेटाबेस में दर्ज किया जाता है और एक सार्वजनिक मेलिंग सूची पर अग्रेषित किया जाता है। गोपनीय मेल [email protected] पर भेजा जा सकता है (PGP कुंजी कुंजी सर्वर से उपलब्ध)।
विकास openssl-dev मेलिंग सूची पर समन्वित किया जाता है (सदस्यता लेने की जानकारी के लिए http://www.openssl.org देखें)। यदि आप एक पैच सबमिट करना चाहते हैं, तो इसे [email protected] पर विषय में स्ट्रिंग "[PATCH]" के साथ भेजें। कृपया अपने पैच के बारे में एक पाठ्य व्याख्या शामिल करना सुनिश्चित करें।
यदि आप अनिश्चित हैं कि कोई सुविधा सामान्य 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" आउटपुट है। आप इसे इस प्रकार उत्पन्न कर सकते हैं: