एमबेड टीएलएस

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

इतिहास
पोलरएसएसएल एसएसएल लाइब्रेरी XySSL SSL लाइब्रेरी की आधिकारिक निरंतरता शाखा है। XySSL फ्रेंच व्हाइट हैट (कंप्यूटर सुरक्षा) क्रिस्टोफ़ डिवाइन द्वारा बनाया गया था एवं प्रथम बार 1 नवंबर, 2006 को GNU_General_Public_License v2 एवं BSD_licenses लाइसेंस के अनुसार निर्धारित किया गया था। 2008 में, क्रिस्टोफ़ डिवाइन अब XySSL का समर्थन करने में सक्षम नहीं थे एवं पॉल बक्कर को पोलारएसएसएल नामक आधिकारिक फोर्क बनाने की अनुमति दी। नवंबर 2014 में, शाखा (कंपनी)  द्वारा पोलारएसएसएल का अधिग्रहण किया गया था। 2011 में, डच सरकार ने ओपनवीपीएन एवं पोलरएसएसएल के मध्य एकीकरण को स्वीकृति दी, जिसे ओपनवीपीएन-एनएल (OpenVPN-NL) नाम दिया गया है। ओपनवीपीएन के इस संस्करण को प्रतिबंधित स्तर तक सरकारी संचार की सुरक्षा में उपयोग के लिए अनुमोदित किया गया है। संस्करण 1.3.10 के निर्धारित होने के साथ ही, पोलरएसएसएल को एमबेड टीएलएस के रूप में ब्रांडेड किया गया है, जिससे एमबेड पारिस्थितिकी तंत्र के अंदर उत्तम रूप से योग्य हो सके। संस्करण 2.1.0 से प्रारम्भ होकर, लाइब्रेरी को जीपीएल v2 एवं अपाचे लाइसेंस v2.0 दोनों के अनुसार उपलब्ध कराया गया था। संस्करण 2.17 के पश्चात से, एमबेड टीएलएस केवल अपाचे लाइसेंस संस्करण 2.0 के अनुसार लाइसेंस प्राप्त है।  2020 में, एमबेड टीएलएस विश्वसनीय फर्मवेयर प्रोजेक्ट में सम्मिलित हो गया।

पुस्तकालय
कोर एसएसएल पुस्तकालय (कंप्यूटर विज्ञान)   सी (प्रोग्रामिंग भाषा)  में लिखी गई है एवं एसएसएल मॉड्यूल, मूल क्रिप्टोग्राफी कार्यों को प्रारम्भ करती है एवं विभिन्न उपयोगिता कार्यों को प्रदान करती है। ओपनएसएसएल एवं टीएलएस के अन्य कार्यान्वयनों के विपरीत, एमबेड टीएलएस wolfSSL के जैसे है जिसमें इसे अल्प एम्बेडेड उपकरणों पर उपयोग करने के लिए डिज़ाइन किया गया है, जिसमें न्यूनतम पूर्ण टीएलएस स्टैक के लिए 60KB से कम प्रोग्राम स्पेस एवं 64 KB RAM की आवश्यकता होती है। यह अत्यधिक मॉड्यूलर भी है, प्रत्येक घटक, जैसे क्रिप्टोग्राफ़िक फ़ंक्शन, को स्वरुप से स्वतंत्र रूप में उपयोग किया जा सकता है। माइक्रोसॉफ़्ट विंडोज़ एवं लिनक्स के लिए संस्करण भी उपलब्ध हैं। क्योंकि एमबेड टीएलएस को C (प्रोग्रामिंग लैंग्वेज) में लिखा गया है, बाहरी निर्भरताओं के बिना, यह अधिकांश ऑपरेटिंग प्रणाली एवं स्थापत्य पर कार्य करता है।

संस्करण 1.3.0 के पश्चात से, इसमें उपस्थित एम्बेडेड ऑपरेटिंग प्रणाली के साथ उत्तम एकीकरण का समर्थन करने के लिए मेमोरी आवंटन एवं कोर में थ्रेडिंग के लिए अमूर्त परतें होती हैं।

डिजाइन प्राथमिकताएं
एमबेड टीएलएस लाइब्रेरी कोड की पठनीयता, प्रलेखन, स्वचालित प्रतिगमन परीक्षण, शिथिल युग्मित डिज़ाइन एवं पोर्टेबल कोड पर ध्यान केंद्रित करती है।

विकास प्रपत्र
विकास के लिए निम्नलिखित प्रपत्र उपलब्ध हैं:


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

स्वचालित परीक्षण
एमबेड टीएलएस के स्वचालित परीक्षण में सम्मिलित हैं:


 * विभिन्न प्लेटफार्मों पर प्रतिगमन एवं संगतता के परीक्षण के लिए 5000 से अधिक स्वचालित परीक्षणों (पुस्तकालय के संस्करण 1.3.2 में परीक्षणों की संख्या के आधार पर) वाले स्रोत कोड के साथ परीक्षण ढांचा सम्मिलित होता है।
 * अनुकूलता कथानक (compat.sh ) जो ओपनएसएसएल एवं जीएनयूटीएलएस के साथ एसएसएल संचार की अनुकूलता का परीक्षण करता है।
 * ट्रैविस सीआई एवं जेनकींस (सॉफ्टवेयर) पर आधारित सतत एकीकरण प्रणाली होती है।

प्रयोग करें
Mbed TLS का उपयोग बड़े ओपन सोर्स प्रोजेक्ट्स में SSL घटक के रूप में किया जाता है:


 * ओपनवीपीएन एवं ओपनवीपीएन-एनएल
 * हियावथा (वेब ​​​​सर्वर)
 * पावरडीएनएस
 * बंदर HTTP सर्वर

प्लेटफॉर्म
Mbed TLS वर्तमान में Linux, Microsoft Windows, OS X, OpenWrt, Android (ऑपरेटिंग प्रणाली), iOS, RISC OS सहित अधिकांश ऑपरेटिंग प्रणाली के लिए उपलब्ध है एवं फ्रीआरटीओएस। समर्थित चिपसेट में कम से कम ARM, x86, PowerPC, MIPS सम्मिलितहैं।

एल्गोरिदम
Mbed TLS कई अलग-अलग क्रिप्टोग्राफ़िक एल्गोरिदम का समर्थन करता है:

क्रिप्टोग्राफ़िक हैश फ़ंक्शन:
 * MD2 (हैश फंक्शन), MD4, MD5, RIPEMD, SHA-1, SHA-2


 * Message_authentication_code मोड
 * एक-कुंजी_मैक, एचएमएसी

सिफ़र :
 * उन्नत एन्क्रिप्शन मानक, ARIA (सिफर), ब्लोफिश (सिफर), कमीलया (सिफर), चाचा (सिफर), उच्च एन्क्रिप्शन मानक, RC4, ट्रिपल डेस, XTEA


 * Block_cipher_mode_of_operation
 * Block_cipher_mode_of_operation#ECB, Block_cipher_mode_of_operation#CBC, Block_cipher_mode_of_operation#Cipher_feedback_(CFB), Block_cipher_mode_of_operation#CTR, Block_cipher_mode_of_operation#OFB, Disk_encryption_theory#XTS

प्रमाणित एन्क्रिप्शन मोड
 * CCM_mode, Galois/Counter_Mode, NIST की रैप,
 * ChaCha20-Poly1305


 * Key_derivation_function
 * एचकेडीएफ

चाबी खींचना
 * PBKDF2, PKCS #5 PBE2, PKCS_12|PKCS #12 कुंजी व्युत्पत्ति

सार्वजनिक-कुंजी क्रिप्टोग्राफी:
 * RSA (क्रिप्टोप्रणाली), डिफी-हेलमैन की एक्सचेंज,
 * सार्वजनिक कुंजी क्रिप्टोग्राफी | एलिप्टिक कर्व क्रिप्टोग्राफी (ईसीसी), एलिप्टिक-कर्व डिफी-हेलमैन | एलिप्टिक कर्व डिफी-हेलमैन (ईसीडीएच), अण्डाकार वक्र डिजिटल हस्ताक्षर एल्गोरिथ्म | एलिप्टिक कर्व डीएसए (ईसीडीएसए), एलिप्टिक कर्व Password_Authenticated_Key_Exchange_by_Juggling|J-PAKE

यह भी देखें

 * परिवहन परत सुरक्षा
 * टीएलएस कार्यान्वयन की तुलना
 * पॉस परियोजना
 * जीएनयूटीएलएस
 * नेटवर्क सुरक्षा सेवाएँ
 * wolfSSL (पहले CyaSSL)
 * मैट्रिक्सएसएसएल
 * ओपनएसएसएल