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

लिब्रेएसएसएल विवृत स्रोत सॉफ्टवेयर है।  परिवहन परत सुरक्षा  (टीएलएस) प्रोटोकॉल का ओपन-सोर्स कार्यान्वयन का नाम सुरक्षित सॉकेट लेयर (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)