लिब्रेएसएसएल

लिब्रेएसएसएल ओपन सोर्स सॉफ्टवेयर है। ट्रांसपोर्ट लेयर सिक्योरिटी (टीएलएस) प्रोटोकॉल का ओपन-सोर्स इम्प्लीमेंटेशन का नाम सिक्योर सॉकेट लेयर (SSL) के नाम पर रखा गया है, जो टीएलएस का डेप्रेसटेड प्रेडेसर है, जिसके लिए रिलीज़ 2.3.0 में समर्थन विस्थापित कर दिया गया था। हार्टब्लीड सिक्योरिटी वल्नेरेबिलिटी (कंप्यूटिंग) की प्रतिक्रिया के रूप में अप्रैल 2014 में ओपनएसएसएल 1.0.1g से ओपनबीएसडी प्रोजेक्ट फोरकेड (सॉफ्टवेयर) लिब्रेएसएसएल,  कोडबेस के मोडर्निज़िंग, कंप्यूटर सिक्योरिटी में सुधार एवं डेवलपमेंट की सर्वोत्तम प्रैक्टिसेज को प्रारम्भ करने के टारगेट्स के साथ है।

इतिहास
ओपनएसएसएल में हार्टब्लीड सिक्योरिटी वल्नेरेबिलिटी (कंप्यूटिंग) की परिशोध के पश्चात, ओपनबीएसडी टीम कोड ने कोडबेस कोड ऑडिट किया एवं निर्णय लिया कि हानिकारक कोड को विस्थापित करने के लिए ओपनएसएसएल को कांटा (सॉफ्टवेयर डेवलपमेंट) करना आवश्यक था। LibreSSL.org डोमेन 11 अप्रैल 2014 को पंजीकृत किया गया था; परियोजना ने 22 अप्रैल 2014 को नाम की घोषणा की। डेवलपमेंट के प्रथम सप्ताह में, सी कोड की 90,000 से अधिक लाइनें विस्थापित कर दी गईं। अप्रयुक्त कोड विस्थापित कर दिया गया था, एवं अप्रचलित संचालन  प्रणाली (क्लासिक मैक ओएस, नेटवेयर, ओएस/2, 16-बिट विंडोज) एवं कुछ ओल्ड संचालन प्रणाली ( ओपन वीएमएस ) के लिए समर्थन विस्थापित कर दिया गया था। लिब्रेएसएसएल को प्रारम्भ में ओपनबीएसडी 5.6 में ओपनएसएसएल के लिए इच्छित प्रतिस्थापन के रूप में विकसित किया गया था, एवं लाइब्रेरी के स्ट्रिप-डाउन संस्करण के स्थिर होने के पश्चात अन्य प्लेटफार्मों पर पोर्ट किया गया था।, परियोजना बाहरी फंडिंग की स्थिर प्रतिबद्धता की याचना कर रही थी। 17 मई 2014 को, बॉब बेक ने 2014 के बीएसडीसीन सम्मेलन के समय लिब्रेएसएसएल: द फर्स्ट 30 डेज़, एंड व्हाट द फ्यूचर होल्ड्स प्रस्तुत किया, जिसमें उन्होंने प्रथम महीने में हुई प्रगति का वर्णन किया। 5 जून 2014 को, कई ओपनएसएसएल बग सार्वजनिक हो गए। जबकि कई परियोजनाओं को प्रथम ही अधिसूचित कर दिया गया था, लिब्रेएसएसएल नहीं था; थियो डी राड ने ओपनएसएसएल डेवलपमेंट पर ओपनबीएसडी एवं लिब्रेएसएसएल से निश्चयपूर्वक इस जानकारी को वापस लेने का आरोप लगाया। 20 जून 2014 को, गूगल ने बोरिंगएसएसएल नामक ओपनएसएसएल का कांटा बनाया, एवं लिब्रेएसएसएल के साथ सुधारों का आदान-प्रदान करने का वचन दिया।  गूगल के पास पूर्व से ही आईएससी लाइसेंस के अनुसार स्वयं कुछ योगदानों को पुनः प्राप्त करने वाला सॉफ़्टवेयर है, जैसा कि लिब्रेएसएसएल डेवलपमेंट के द्वारा अनुरोध किया गया था। 21 जून 2014 को, थियो डी राडट ने बोरिंगएसएसएल का स्वागत किया एवं लिब्रेएसएसएल-पोर्टेबल के लिए योजनाओं की रूपरेखा प्रस्तुत की गयी। 8 जुलाई से मैक ओएस एवं सोलारिस (संचालन  प्रणाली) के लिए कोड पोर्टिंग प्रारम्भ हुई, जबकि लिनक्स में प्रारंभिक पोर्टिंग 20 जून को प्रारम्भ हुई थी। 2021 तक,

ओपनबीएसडी प्राथमिक एसएसएल लाइब्रेरी के रूप में लिब्रेएसएसएल का उपयोग करता है। अल्पाइन लिनक्स ने जनवरी 2019 में 3.9.0 रिलीज़ होने तक तीन साल के लिए अपनी प्राथमिक टीएलएस लाइब्रेरी के रूप में लिब्रेएसएसएल का समर्थन किया। जेंटू लिनक्स ने फरवरी 2021 तक लिब्रेएसएसएल का समर्थन किया। पायथन (प्रोग्रामिंग भाषा) 3.10 लिब्रेएसएसएल सहायता को पायथन 3.4.3 (2015) के पश्चात से समर्थित होने के पश्चात त्याग देता है।

एडॉप्शन

लिब्रेएसएसएल इनके लिए टीएलएस का डिफ़ॉल्ट प्रोवाइडर है।
 * ड्रैगनफली बीएसडी
 * ओपनबीएसडी * हाइपरबोला जीएनयू/लिनक्स-लिबर
 * मैक ओएस
 * [विंडोज़ पर https://github.com/powershell/Win32-OpenSSH OpenSSH]

लिब्रेएसएसएल इन अब-संवृत प्रणालीों के लिए  टीएलएस का एरर प्रोवाइडर है।

लिब्रेएसएसएल इनके लिए टीएलएस का चयन योग्य प्रोवाइडर है।
 * ओपनईएलईसी
 * ट्रूओएस संकुल


 * फ्रीबीएसडी संकुल
 * जेंटू लिनक्स संकुल (समर्थन फरवरी 2021 तक गिरा दिया गया  )
 * ओपीएनसेंस संकुल (22.7 के पश्चात गिरा दिया जाएगा )

मेमोरी से संबंधित
चेंजस में कस्टम मेमोरी कॉल को स्टैण्डर्ड लाइब्रेरी में चेंजस सम्मिलित होता है (उदाहरण के लिए,,  ,  ,  , आदि।)।  यह प्रक्रिया पश्चात में अधिक उन्नत मेमोरी डीबगर उपकरण के साथ या प्रोग्राम क्रैश का अवलोकन करके बफ़र ओवरफ्लो एरर को ज्ञात करने में सहायता कर सकती है।

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

प्रोएक्टिव मेथड
गुड प्रोग्रामिंग प्रैक्टिस को बनाए रखने के लिए, सिक्योरिटी के लिए डिज़ाइन किए गए कई कंपाइलर विकल्प एवं संभावित विषयो का शोध में सहायता करने के लिए एरर रूप से सक्षम किए गए हैं जिससे उन्हें प्रथम योग्य किया जा सके। कोड पठनीयता अद्यतन भी हैं जो भविष्य के योगदानकर्ताओं को कार्यक्रम की शुद्धता (कर्नेल सामान्य रूप, व्हाइट-स्पेस, लाइन-रैपिंग, आदि) की पुष्टि करने में सहायता करते हैं। अनावश्यक मेथड रैपर एवं मैक्रोज़ को संशोधित या विस्थापित करने से कोड पठनीयता एवं ऑडिटिंग (एरर एवं इनपुट अमूर्त पुस्तकालय संदर्भ) में भी सहायता मिलती है।

अन्य समान प्लेटफार्मों के लिए पोर्टेबिलिटी (कंप्यूटर विज्ञान) को बनाए रखने के साथ-साथ लिब्रेएसएसएल वर्ष 2038 की समस्या होगी यह सुनिश्चित करने के लिए चेंजस किए गए थे। इसके साथ ही,  एवं   संकलक को उन्हें अनुकूलित करने से रोकने एवं प्रतिघात को प्रथम से आवंटित मेमोरी को पढ़ने से रोकने के लिए कॉल जोड़े गए थे।

क्रिप्टोग्राफिक
इनसिक्योर सीडिंग प्रैक्टिसेज के प्रतिस्थापन के माध्यम से यादृच्छिक संख्या जनरेटर-आधारित विधियों के उचित यादृच्छिक बीज को सुनिश्चित करने में सहायता करने के लिए चेंजस किए गए थे (कर्नेल (संचालन प्रणाली) द्वारा प्रदान की गई सुविधाओं का लाभ उठाते हुए)।  किए गए उल्लेखनीय परिवर्धन के संदर्भ में, ओपनबीएसडी ने नए एवं अधिक प्रतिष्ठित एल्गोरिदम (चाचा (सिफर) स्ट्रीम सिफर एवं पाली1305 संदेश प्रमाणीकरण कोड) के साथ-साथ दीर्घवृत्त वक्र क्रिप्टोग्राफी (RFC 5639 से ब्रेनपूल कर्व्स, 512 बिट्स तक) के सिक्योर समूह के साथ समर्थन जोड़ा है।)

युग्मित की गयी गई विशेषताएं
लिब्रेएसएसएल के प्रारंभिक रिलीज़ में कई विशेषताएं जोड़ी गईं: साल्सा20 चाचा वेरिएंट एवं पॉली1305 एल्गोरिदम, ब्रेनपूल एवं /एजेंस/प्रकाशन/प्रकाशन-डुन-पैरामेट्रेज-डी-कोर्बे-एलिप्टिक-विसेंट-डेस-एप्लीकेशन-डी-पासपोर्ट-इलेक्ट्रॉनिक-एट-डे-लाडमिनिस्ट्रेशन-इलेक्ट्रॉनिक-फ़्रैंकैस/एएनएसएसआई दीर्घवृत्त वक्र, एवं गैलोज़ काउंटर मोड एईएस-जीसीएम एवं चाचा20-पॉली1305 प्रमाणित एन्क्रिप्शन मोड।

पश्चात के संस्करणों ने निम्नलिखित जोड़ा: * 2.1.0: स्वचालित क्षणिक कुंजी ईसी कुंजी।
 * 2.1.2: मैक ओएस एवं फ्रीबीएसडी पर बिल्ट-इन आरसी4 आरसी4-आधारित रैंडम नंबर जेनरेटर इम्प्लीमेंटेशन।
 * 2.1.2: गोस्ट सिफर सूट समर्थन पर कार्य किया।
 * 2.1.3: आवेदन लेयर प्रोटोकॉल वार्तालाप सहायता।
 * 2.1.3: SHA-256 एवं कमीलया (सिफर)  सिफर सुइट्स के लिए समर्थन।
 * 2.1.4: ट्रांसपोर्ट लेयर सिक्योरिटी पूडल आक्षेपटीएलएस_FALLBACK_SCSV सर्वर-साइड सपोर्ट।
 * 2.1.4: c_rehash कथानक के प्रतिस्थापन के रूप में certhash।
 * 2.1.4: स्मृति से प्रमाण पत्र लोड करने के लिए X509_STORE_load_mem API (एन्हांस चेरोट सपोर्ट)।
 * 2.1.4: प्रायोगिक माइक्रोसॉफ़्ट विंडोज़  बायनेरिज़।
 * 2.1.5: मुख्य रूप से विंडोज समर्थन में सुधार के लिए साधारण अद्यतन, प्रथम 32- एवं 64-बिट कंप्यूटिंग 64-बिट बायनेरिज़ कार्य कर रहे थे।
 * 2.1.6: libtls स्थिर घोषित एवं एरर रूप से सक्षम।
 * 2.2.0: AIX एवं Cygwin सपोर्ट।
 * 2.2.1: EC_curve_nid2nist एवं EC_curve_nist2nid का जोड़ OpenSSL से, प्रारंभिक Windows XP/2003 समर्थन।
 * 2.2.2: LIBRESSL_VERSION_NUMBER को परिभाषित करता है, SSLv23_मेथड कॉल, CMake बिल्ड सहायता के प्रतिस्थापन के रूप में टीएलएस मेथड्स जोड़े गए।

ओल्ड इनसिक्योर विशेषताएं
लिब्रेएसएसएल के प्रारंभिक रिलीज़ में एरर रूप से कई सुविधाओं को अक्षम कर दिया। इन सुविधाओं के लिए कुछ कोड विस्थापित करने, कर्बरोस (प्रोटोकॉल) सहित, संयुक्त राज्य अमेरिका में क्रिप्टोग्राफी का निर्यात, टीएलएस संपीड़न, ओपनएसएसएल, टीएलएस एवं डीटीएलएस प्लेनटेक्स्ट रिकवरी अटैक, एसएसएल v2 एवं एसएसएल v3 है।

पश्चात के संस्करणों ने अधिक सुविधाओं को अक्षम कर दिया:
 * 2.1.1: लीगेसी एसएसएल 3.0 प्रोटोकॉल में पूडल वल्नेरेबिलिटी की परिशोध के पश्चात, लिब्रेएसएसएल अब एरर रूप से एसएसएल 3.0 के उपयोग को अक्षम कर देता है।
 * 2.1.3: GOST|GOST R 34.10-94 हस्ताक्षर प्रमाणीकरण, 2.2.1: डायनेमिक इंजन एवं MDC-2DES समर्थन को रिमोवल 2.2.2: एसएसएल 3.0 को ओपनएसएल बाइनरी से रिमोवल, इंटरनेट एक्सप्लोरर 6 वर्कअराउंड, आरएसएक्स इंजन को रिमोवल। 2.3.0: एसएसएल 3.0, एसएचए-1एसएचए-0 एवं डेटाग्राम ट्रांसपोर्ट लेयर सिक्योरिटी को पूर्ण रूप से रिमोवल है।

कोड रिमोवल
लिब्रेएसएसएल के प्रारंभिक रिलीज़ ने कई विशेषताओं को विस्थापित कर दिया है जिन्हें ओपनबीएसडी 5.6 के भाग के रूप में इनसिक्योर, अनावश्यक या बहिष्कृत माना गया था।
 * हार्टब्लीड के उत्तर में, हार्टब्लीड की कार्यक्षमता विस्थापित की जाने वाली प्रथम सुविधाओं में से थी।
 * अप्रचलित प्लेटफार्मों (क्लासिक मैक ओएस, नेटवेयर, ओएस/2, 16-बिट विंडोज़) के लिए समर्थन विस्थापित कर दिया गया था।
 * कुछ पूर्व प्लेटफॉर्म्स (OpenVMS) के लिए समर्थन विस्थापित कर दिया गया था।
 * प्लेटफॉर्म के लिए समर्थन जो उपस्थित नहीं है, जैसे कि बड़े एंडियन i386 एवं amd64 है।
 * पूर्व संकलनकर्ताओ के लिए समर्थन।
 * IBM 4758, ब्रॉडकॉम ubsec, Sureware, Nuron, GOST, GMP, CSwift, CHIL, CAPI, Atalla एवं AEP इंजनों को हार्डवेयर की अप्रासंगिकता या गैर-मुक्त सॉफ़्टवेयर पर निर्भरता के कारण विस्थापित कर दिया गया था।
 * ओपनएसएसएल छद्म यादृच्छिक संख्या जनरेटर को विस्थापित कर दिया गया था (एवं आर्क4रैंडम के चाचा20-आधारित इम्प्लीमेंटेशन के साथ परिवर्तित कर दिया गया था)।
 * सी प्रीप्रोसेसर जिसे अनावश्यक या इनसिक्योर माना गया है या ओपनएसएसएल में पूर्व से ही लंबे समय से विस्थापित कर दिया गया है।
 * सभा की भाषा, सी (प्रोग्रामिंग भाषा), एवं पर्ल के लिए पूर्व अनावश्यक फाइलें।
 * MD2 (क्रिप्टोग्राफी), एसइइडी कार्यक्षमता।
 * एसएसएल 3.0, एसएचए-0, डीटीएलएस1 बीएडी वर

दोहरी ईसी डीआरबीजी एल्गोरिद्म, जिसके पूर्व द्वार (कंप्यूटिंग) होने का संदेह है, आवश्यक FIPS 140-2 स्टैण्डर्ड के समर्थन के साथ कटौती की गई थी, यह अप्रयुक्त प्रोटोकॉल एवं इनसिक्योर एल्गोरिदम को भी विस्थापित कर दिया गया है, जिसमें FIPS 140-2 के लिए समर्थन सम्मिलित है, एमडी4/एमडी5 जुगलिंग जे-पाके, द्वारा पासवर्ड प्रमाणित कुंजी विनिमय एवं सिक्योर रिमोट पासवर्ड प्रोटोकॉल।

बग बैकलॉग

ओपनएसएसएल की निंदा में से बग ट्रैकर में रिपोर्ट किए गए ओपन सॉफ्टवेयर बग की संख्या थी जो वर्षों से अनफिक्स हो गई थी। पूर्व बग्स को अब लिब्रेएसएसएल में सही किया जा रहा है।

यह भी देखें

 * टीएलएस इम्प्लीमेंटेशन की तुलना
 * क्रिप्टोग्राफी लाइब्रेरीज की तुलना
 * ओपनएसएसएच
 * वुल्फएसएसएच

बाहरी संबंध

 * लिब्रेएसएसएल and libtls source code (OpenGrok)
 * लिब्रेएसएसएल and libtls source code (OpenGrok)