क्या कुकी साइनिंग है?

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

HMAC-SHA1 साइनिंग कैसे काम करती है?

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

  1. साइनिंग: मूल कुकी मूल्य को एक गुप्त कुंजी के साथ HMAC-SHA1 एल्गोरिदम का उपयोग करके जोड़ा जाता है, जिससे एक हस्ताक्षर उत्पन्न होता है। अंतिम हस्ताक्षरित कुकी प्रारूप मूल्य.हस्ताक्षर है, जहां हस्ताक्षर base64url-एन्कोडेड है।

  2. सत्यापन: एक हस्ताक्षरित कुकी प्राप्त करते समय, सर्वर मूल मूल्य और हस्ताक्षर को निकालता है, उसी गुप्त कुंजी का उपयोग करके अपेक्षित हस्ताक्षर को पुनः गणना करता है, और समय-सुरक्षित तुलना का उपयोग करके उन्हें तुलना करता है ताकि समय-आधारित हमलों से बचा जा सके।

साइन किए गए कुकी का उपयोग क्यों करें?

असाइन किए गए कुकी को उपयोगकर्ताओं या दुष्ट स्क्रिप्ट्स द्वारा आसानी से संशोधित किया जा सकता है। एक उपयोगकर्ता अपने सत्र आईडी, उपयोगकर्ता भूमिका या कुकी में संग्रहीत अन्य संवेदनशील डेटा को बदल सकता है। साइन किए गए कुकी इस बात को रोकते हैं कि यदि मूल्य बदल जाता है, तो हस्ताक्षर अमान्य हो जाता है।

उपकरण विवरण

यह उपकरण HMAC-SHA1 हस्ताक्षरों का उपयोग करके कुकी मूल्यों को साइन और असाइन करने की अनुमति देता है, जो लोकप्रिय cookie-signature npm पैकेज के प्रारूप के अनुरूप है। अपने कुकी मूल्य और गुप्त कुंजी को दर्ज करके एक हस्ताक्षरित कुकी उत्पन्न करें, या एक हस्ताक्षरित कुकी को चिपकाएं ताकि इसके मूल मूल्य को निकाला और सत्यापित किया जा सके।

उदाहरण

कुकी साइन करना:

इनपुट (असाइन) गुप्त कुंजी आउटपुट (साइन किया गया)
user123 my-secret-key user123.SNk0sCiCAuZ5cwj0lNdJfUgwqU4
session_abc app-secret session_abc.sBzU4FZRe3BfgNWZQB4viGTH37A

कुकी असाइन करना:

इनपुट (साइन किया गया) गुप्त कुंजी आउटपुट (असाइन किया गया)
test.sOx9vuKRxxXdUOK0uLcAQ4CIORo password test

अमान्य हस्ताक्षर का पता लगाना:

यदि आप गलत गुप्त कुंजी या छेड़छाड़ किए गए मूल्य के साथ एक कुकी असाइन करने का प्रयास करते हैं, तो उपकरण "अमान्य हस्ताक्षर" त्रुटि प्रदर्शित करेगा।

सुविधाएं

  • किसी भी गुप्त कुंजी का उपयोग करके HMAC-SHA1 के साथ कुकी साइन करें
  • मूल मूल्य निकालने के लिए हस्ताक्षरित कुकी को असाइन और सत्यापित करें
  • समय-सुरक्षित तुलना सत्यापन के दौरान समय-आधारित हमलों से बचाती है
  • Node.js cookie-signature पैकेज के साथ संगत प्रारूप
  • ब्राउज़र-आधारित प्रसंस्करण वेब क्रिप्टो API का उपयोग करता है - सर्वरों पर कोई डेटा नहीं भेजा जाता

उपयोग मामले

  • Express.js सत्रों का परीक्षण करना: यह सत्यापित करें कि आपके Express सत्र कुकी सही ढंग से साइन किए गए हैं और आपकी गुप्त कुंजी के साथ डीकोड किए जा सकते हैं
  • प्रमाणीकरण समस्याओं का डीबगिंग: साइन किए गए कुकी से मूल मूल्य निकालें ताकि लॉगिन या सत्र समस्याओं को दूर किया जा सके
  • सुरक्षा ऑडिटिंग: यह सुनिश्चित करें कि आपके वेब एप्लिकेशन में कुकी हस्ताक्षर सही ढंग से काम कर रहे हैं
  • क्रिप्टोग्राफी सीखना: HMAC-आधारित कुकी साइनिंग का व्यावहारिक रूप से कैसे काम करता है, इसे समझें
  • माइग्रेशन परीक्षण: गुप्त कुंजी बदलने या फ्रेमवर्क के बीच माइग्रेट करते समय कुकी संगतता सुनिश्चित करें