JWT की कमज़ोरियाँ: alg=none और कुंजी भ्रम
JWT की सबसे सामान्य सुरक्षा गलतियों का उपयोग और समाधान करना सीखें।
JWT की कमज़ोरियाँ: alg=none और कुंजी भ्रम, CoddyKit पर Cryptology Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Cryptology Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Cryptology Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
JWT का हमला-क्षेत्र
JWT क्रिप्टोग्राफ़िक रूप से हस्ताक्षरित होते हैं, लेकिन कई पुस्तकालयों में गंभीर भेद्यताएँ थीं। सबसे अधिक शोषित भेद्यताएँ हैं: alg=none हमला, RS256→HS256 भ्रम हमला और कमज़ोर गुप्त मानों पर बलपूर्वक खोज। इन सभी की जड़ हमलावर द्वारा नियंत्रित शीर्षलेख क्षेत्रों पर भरोसा करना है।
alg=none हमला
JWT विशिष्टता असुरक्षित टोकन के लिए alg:"none" की अनुमति देती है। दोषपूर्ण पुस्तकालयों ने इसे स्वीकार कर लिया और हस्ताक्षर का सत्यापन पूरी तरह छोड़ दिया। हमलावर पेलोड में बदलाव करता है (जैसे, "role":"admin"), alg:"none" निर्धारित करता है, हस्ताक्षर हटा देता है और सर्वर उसे स्वीकार कर लेता है।
alg=none शोषण का उदाहरण
मूल: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyIn0.SIG हमला: eyJhbGciOiJub25lIn0.eyJzdWIiOiJhZG1pbiJ9. (खाली हस्ताक्षर, अंत में बिंदु)। एक असुरक्षित सर्वर सफलतापूर्वक सत्यापन करके प्रशासकीय पहुँच दे देता है।
alg=none समाधान
उत्पादन परिवेश में alg:"none" को कभी स्वीकार न करें। अनुमत एल्गोरिदम की स्पष्ट सूची बनाएँ: jwt.decode(token, key, algorithms=["HS256"])। अधिकांश आधुनिक पुस्तकालय (PyJWT 2+, jsonwebtoken 9+) डिफ़ॉल्ट रूप से alg=none को अस्वीकार करते हैं।
RS256 → HS256 कुंजी भ्रम
यदि कोई सर्वर RS256 का उपयोग करता है और क्लाइंट alg को HS256 में बदल देता है, तो सर्वर अपनी RSA सार्वजनिक कुंजी को HMAC गुप्त मान के रूप में इस्तेमाल करके सत्यापन कर सकता है। चूँकि सार्वजनिक कुंजी... सार्वजनिक होती है, हमलावर उसी से मनमाने पेलोड पर हस्ताक्षर करता है और सर्वर उनका सत्यापन कर लेता है।
कुंजी भ्रम का शोषण
चरण: 1) JWKS समापन-बिंदु से सार्वजनिक कुंजी प्राप्त करें। 2) दुर्भावनापूर्ण पेलोड बनाएँ। 3) HMAC गुप्त मान के रूप में कच्ची सार्वजनिक कुंजी के PEM बाइट का उपयोग करके HMAC-SHA256 से हस्ताक्षर करें। 4) शीर्षलेख में alg:"HS256" निर्धारित करें। 5) सर्वर का HS256 मार्ग सफलतापूर्वक सत्यापन कर लेता है।
कुंजी भ्रम का समाधान
सत्यापन के आह्वान में अपेक्षित एल्गोरिदम हमेशा स्पष्ट रूप से निर्दिष्ट करें। एल्गोरिदम को टोकन के शीर्षलेख से कभी निर्धारित न करें। RS256 और HS256 के लिए अलग-अलग कोड मार्ग रखें, जिन्हें आह्वानकर्ता बदल न सके।
कमज़ोर गुप्त मान पर बलपूर्वक खोज
कमज़ोर गुप्त मानों वाले HS256 (256 बिट की एंट्रॉपी से कम) पर ऑफ़लाइन बलपूर्वक खोज की जा सकती है। hashcat जैसे उपकरण JWT को तोड़ने में सहायक हैं: hashcat -a 0 -m 16500 token.txt wordlist.txt। कम से कम 32 बाइट के क्रिप्टोग्राफ़िक रूप से यादृच्छिक गुप्त मानों का उपयोग करें।
kid के माध्यम से शीर्षलेख में इंजेक्शन
kid (कुंजी ID) शीर्षलेख यह चुनता है कि कौन-सी कुंजी इस्तेमाल करनी है। यदि सर्वर बिना स्वच्छीकरण के kid को SQL प्रश्न-पैरामीटर या फ़ाइल प्रणाली के पथ के रूप में इस्तेमाल करता है: kid="../../dev/null" → खाली कुंजी के साथ HMAC → जाली टोकन स्वीकार कर लिया जाता है। kid का हमेशा स्वच्छीकरण करें।
jwk शीर्षलेख में इंजेक्शन
jwk शीर्षलेख सत्यापन के लिए एक सार्वजनिक कुंजी को अपने अंदर रखता है। असुरक्षित सर्वर सीधे उसी अंतर्निहित कुंजी का उपयोग कर सकता है, जिससे हमलावर अपनी कुंजी-युग्म दे सकता है, निजी कुंजी से टोकन पर हस्ताक्षर कर सकता है और सार्वजनिक कुंजी भी उसमें रख सकता है। सत्यापन केवल पंजीकृत कुंजियों के विरुद्ध करें।
समाप्त टोकन को दरकिनार करना
कुछ कार्यान्वयनों में exp दावे की जाँच करना छूट गया या सर्वर समय का असंगत उपयोग किया गया। exp, nbf और iat का हमेशा स्पष्ट रूप से सत्यापन करें। ऐसे पुस्तकालय का उपयोग करें जो डिफ़ॉल्ट रूप से इनकी जाँच करता हो और उत्पादन परिवेश में दावों का सत्यापन कभी बंद न करें।
त्वरित जाँच
RS256→HS256 कुंजी भ्रम हमले में हमलावर HMAC गुप्त मान के रूप में किस चीज़ का उपयोग करता है?
पुनरावलोकन
JWT की भेद्यताएँ alg शीर्षलेख पर भरोसा करने, alg=none स्वीकार करने और कमज़ोर गुप्त मानों से उत्पन्न होती हैं। समाधान: सत्यापक में एल्गोरिदम पहले से निश्चित करें, मज़बूत गुप्त मानों का उपयोग करें और kid का स्वच्छीकरण करें। अगला विषय: सुरक्षित JWT कार्यान्वयन की विधियाँ।
एआई शिक्षक के साथ Cryptology Academy सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 67
- पाठ
- 261
अक्सर पूछे जाने वाले प्रश्न
क्या “JWT की कमज़ोरियाँ: alg=none और कुंजी भ्रम” पाठ निःशुल्क है?
हाँ—“JWT की कमज़ोरियाँ: alg=none और कुंजी भ्रम” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Cryptology Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Cryptology Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“JWT की कमज़ोरियाँ: alg=none और कुंजी भ्रम” में मैं क्या सीखूँगा?
JWT की सबसे सामान्य सुरक्षा गलतियों का उपयोग और समाधान करना सीखें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Cryptology Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Cryptology Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Cryptology Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“JWT की कमज़ोरियाँ: alg=none और कुंजी भ्रम” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Cryptology Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Cryptology Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- JWT की संरचना: Header, Payload, Signature
- HS256 बनाम RS256: सममित बनाम असममित JWT
- JWT की कमज़ोरियाँ: alg=none और कुंजी भ्रम
- सुरक्षित JWT कार्यान्वयन की सर्वोत्तम प्रथाएँ