HMAC,संदेश प्रमाणीकरण के लिए Keyed-Hashing के लिए खड़ा है। यह एक क्रिप्टोग्राफ़िक हैश फ़ंक्शन (जैसे MD5, SHA1, और SHA256) को जानकारी (प्रमाणित होने के लिए) और एक साझा गुप्त कुंजी चलाकर प्राप्त किया गया एक संदेश प्रमाणीकरण कोड है। HMAC को RFC 2104 में परिभाषित किया गया है।
HMAC डिजिटल हस्ताक्षर के समान हैं। वे दोनों अखंडता और प्रामाणिकता प्रदान करते हैं। दोनों को क्रिप्टोग्राफी कुंजियों की आवश्यकता होती है और वे दोनों हैश फ़ंक्शन लागू करते हैं। मुख्य अंतर यह है कि डिजिटल हस्ताक्षर के लिए असममित कुंजियों की आवश्यकता होती है, जबकि HMAC को सममित कुंजी (कोई सार्वजनिक कुंजी नहीं) की आवश्यकता होती है।
HMAC का उपयोग कुछ पुनरावृत्त क्रिप्टोग्राफ़िक हैश फ़ंक्शन के साथ क्रम में किया जा सकता है। MD5 और SHA-1 हैश फ़ंक्शन के उदाहरण हैं। संदेश प्रमाणीकरण मूल्यों की गणना और सत्यापन के लिए HMAC को एक निजी कुंजी की भी आवश्यकता होती है।
एक हैशेड संदेश प्रमाणीकरण कोड एक साथ संदेश के प्रमाणीकरण और उससे संबंधित डेटा अखंडता की जांच कर सकता है। उपयोग की गई गुप्त कुंजी का आकार हैश किए गए संदेश प्रमाणीकरण कोड के क्रिप्टोग्राफ़िक स्थायित्व को निर्धारित करता है।
एक हैशेड संदेश प्रमाणीकरण कोड गुप्त कुंजी के साथ SHA-1 और MD-5 सहित पुनरावृत्त क्रिप्टोग्राफ़िक हैशफ़ंक्शंस पर आकर्षित कर सकता है। हैशेड संदेश प्रमाणीकरण कोड सर्वर और क्लाइंट दोनों के लिए एक सार्वजनिक और निजी कुंजी का समर्थन करता है। हालांकि सार्वजनिक कुंजी ज्ञात है, निजी कुंजी केवल निश्चित क्लाइंट और सर्वर के लिए जानी जाती है।
पूरी प्रक्रिया क्लाइंट द्वारा अनुरोधित जानकारी के आधार पर एक अद्वितीय हैश संदेश प्रमाणीकरण कोड बनाने और निजी कुंजी के साथ अनुरोधित डेटा को हैश करने के साथ शुरू होती है।
यह सर्वर को अनुरोध के एक तत्व के रूप में भेजा जाता है, जो बदले में दो हैश किए गए संदेश प्रमाणीकरण कोड को सहसंबंधित करता है, और यदि समान खोजे जाते हैं, तो ग्राहक को भरोसेमंद होने और अनुरोध को लागू करने में सक्षम बनाता है। पूरी प्रक्रिया को सीक्रेट हैंडशेक भी कहा जाता है।
HMAC के मुख्य लक्ष्य इस प्रकार हैं -
-
यह बिना किसी बदलाव के उपलब्ध हैश फ़ंक्शन का उपयोग कर सकता है। विशिष्ट रूप से, हैशफ़ंक्शंस जो सॉफ़्टवेयर में अच्छी तरह से लागू होते हैं, और जिसके लिए कोड स्वतंत्र रूप से और व्यापक रूप से उपलब्ध है।
-
यह एक महत्वपूर्ण गिरावट प्राप्त किए बिना हैश फ़ंक्शन के मूल प्रदर्शन को बनाए रख सकता है।
-
यह सरल तरीके से कुंजियों का उपयोग और प्रबंधन कर सकता है।
-
इसमें बुनियादी हैश फ़ंक्शन पर उचित मान्यताओं के आधार पर प्रमाणीकरण संरचना के स्थायित्व का एक अच्छी तरह से समझा जाने वाला क्रिप्टोग्राफ़िक विश्लेषण हो सकता है।
-
यह मूल हैश फ़ंक्शन की आसान प्रतिस्थापन क्षमता के लिए सक्षम कर सकता है यदि तेज़ या अधिक सुरक्षित हैश फ़ंक्शन पाए जाते हैं या आवश्यक होते हैं।
-
हैश किए गए संदेश प्रमाणीकरण कोड का मुख्य उद्देश्य यह है कि यह टकरावों से कम प्रभावित होता है और इसे गुप्त क्रिप्टोग्राफ़िक कुंजी प्राप्त करने के लिए क्रूर बल के रूप में माना जाता है।
-
हैशेड संदेश प्रमाणीकरण कोड यह जांचने के लिए एक सुविधाजनक दृष्टिकोण का समर्थन करता है कि क्या जानकारी के साथ छेड़छाड़ की गई है और उपयोगकर्ता की प्रामाणिकता।