एमबेड टीएलएस

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

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

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

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

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

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


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

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


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

प्रयोग करें
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)
 * मैट्रिक्सएसएसएल
 * ओपनएसएसएल