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

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

इतिहास
ओपनएसएसएल में हार्टब्लीड सुरक्षा भेद्यता (कंप्यूटिंग) की परिशोध के पश्चात, ओपनबीएसडी टीम कोड ने कोडबेस कोड ऑडिट किया एवं निर्णय लिया कि हानिकारक कोड को विस्थापित करने के लिए ओपनएसएसएल को कांटा (सॉफ्टवेयर विकास)  करना आवश्यक था। लिब्रेएसएसएल.org डोमेन 11 अप्रैल 2014 को पंजीकृत किया गया था; परियोजना ने 22 अप्रैल 2014 को नाम की घोषणा की। विकास के प्रथम सप्ताह में, सी कोड की 90,000 से अधिक लाइनें विस्थापित कर दी गईं। अप्रयुक्त कोड विस्थापित कर दिया गया था, एवं अप्रचलित संचालन  प्रणाली (क्लासिक मैक ओएस, नेटवेयर, ओएस/2, 16-बिट विंडोज) एवं कुछ प्राचीन संचालन प्रणाली ( ओपन VMS ) के लिए समर्थन विस्थापित कर दिया गया था। लिब्रेएसएसएल को प्रारम्भ में OpenBSD 5.6 में OpenSSL के लिए इच्छित प्रतिस्थापन के रूप में विकसित किया गया था, एवं लाइब्रेरी के स्ट्रिप-डाउन संस्करण के स्थिर होने के पश्चात अन्य प्लेटफार्मों पर पोर्ट किया गया था।, परियोजना बाहरी फंडिंग की स्थिर प्रतिबद्धता की याचना कर रही थी। 17 मई 2014 को, बॉब बेक ने 2014 के बीएसडीसीन सम्मेलन के समय लिबरएसएसएल: द फर्स्ट 30 डेज़, एंड व्हाट द फ्यूचर होल्ड्स प्रस्तुत किया, जिसमें उन्होंने प्रथम महीने में हुई प्रगति का वर्णन किया। 5 जून 2014 को, कई ओपनएसएसएल बग सार्वजनिक हो गए। जबकि कई परियोजनाओं को प्रथम ही अधिसूचित कर दिया गया था, लिब्रेएसएसएल नहीं था; Theo de Raadt ने OpenSSL विकास पर OpenBSD एवं लिब्रेएसएसएल से निश्चयपूर्वक इस जानकारी को वापस लेने का आरोप लगाया। 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 के पश्चात गिरा दिया जाएगा )

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

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

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

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

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

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

पश्चात के संस्करणों ने निम्नलिखित जोड़ा: * 2.1.0: स्वचालित क्षणिक कुंजी ईसी कुंजी।
 * 2.1.2: macOS एवं FreeBSD पर बिल्ट-इन RC4#RC4-आधारित रैंडम नंबर जेनरेटर कार्यान्वयन।
 * 2.1.2: GOST सिफर सूट समर्थन पर काम किया।
 * 2.1.3: एप्लिकेशन-लेयर प्रोटोकॉल बातचीत  सपोर्ट।
 * 2.1.3: SHA-256 एवं कमीलया (सिफर)  सिफर सुइट्स के लिए समर्थन।
 * 2.1.4: ट्रांसपोर्ट लेयर सिक्योरिटी#POODLE अटैक| टीएलएस_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-आधारित कार्यान्वयन के साथ बदल दिया गया था)।
 * सी प्रीप्रोसेसर जिसे अनावश्यक या असुरक्षित माना गया है या ओपनएसएसएल में प्रथम से ही लंबे समय से विस्थापित कर दिया गया है (उदाहरण के लिए des_old.h)।
 * सभा की भाषा, C (प्रोग्रामिंग लैंग्वेज), एवं पर्ल (जैसे /dev/random#EGD एक विकल्प के रूप में) के लिए पुरानी अनावश्यक फाइलें।
 * MD2 (क्रिप्टोग्राफी), SEED कार्यक्षमता।
 * एसएसएल 3.0, एसएचए-0, डीटीएलएस1_बीएडी_वर

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

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

यह भी देखें

 * टीएलएस कार्यान्वयन की तुलना
 * क्रिप्टोग्राफी पुस्तकालयों की तुलना
 * ओपनएसएसएच
 * वुल्फएसएसएच

बाहरी संबंध

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