आक्रमणकारी प्रभाव
अनुचित JWT प्रमाणीकरणले आक्रमणकारीहरूलाई दावीहरू जाली गरेर वा म्याद सकिएको टोकनहरू [S1] पुन: प्रयोग गरेर प्रमाणीकरण संयन्त्रहरूलाई बाइपास गर्न अनुमति दिन्छ। यदि सर्भरले मान्य हस्ताक्षर बिना टोकनहरू स्वीकार गर्दछ भने, आक्रमणकर्ताले विशेषाधिकारहरू बढाउन वा कुनै पनि प्रयोगकर्ता [S1] प्रतिरूपण गर्न पेलोड परिमार्जन गर्न सक्छ। यसबाहेक, म्याद समाप्ति (exp) दाबी लागू गर्न असफल हुँदा आक्रमणकर्ताले एक सम्झौता टोकन अनिश्चितकालको लागि [S1] प्रयोग गर्न अनुमति दिन्छ।
मूल कारण
JSON वेब टोकन (JWT) एक JSON-आधारित संरचना हो जुन दावीहरू प्रतिनिधित्व गर्न प्रयोग गरिन्छ जुन डिजिटल रूपमा हस्ताक्षर गरिएको वा अखण्डता सुरक्षित [S1] हो। सुरक्षा विफलताहरू सामान्यतया दुई प्राथमिक कार्यान्वयन अंतरालहरूबाट उत्पन्न हुन्छन्:
- असुरक्षित JWTs को स्वीकृति: यदि कुनै सेवाले हस्ताक्षर प्रमाणीकरणलाई कडाईका साथ लागू गर्दैन भने, यसले "असुरक्षित JWTs" लाई प्रक्रिया गर्न सक्छ जहाँ हस्ताक्षर अनुपस्थित छ र एल्गोरिदम "कुनै पनि छैन" [S1] मा सेट गरिएको छ। यस परिदृश्यमा, सर्भरले तिनीहरूको अखण्डता [S1] प्रमाणित नगरी पेलोडमा दाबीहरूलाई विश्वास गर्दछ।
- दावी प्रमाणीकरण छुटेको:
exp(समय समाप्ति समय) दावीले JWT लाई [S1] प्रशोधन गर्नको लागि स्वीकार गरिनु हुँदैन वा पछिको समय पहिचान गर्दछ।aud(दर्शक) दावीले टोकन [S1] को उद्देश्य प्राप्तकर्ताहरूलाई पहिचान गर्दछ। यदि यी जाँच गरिएन भने, सर्भरले टोकनहरू स्वीकार गर्न सक्छ जुन म्याद सकिएको छ वा फरक एप्लिकेसन [S1] को लागि लक्षित थियो।
कंक्रीट फिक्सहरू
- क्रिप्टोग्राफिक हस्ताक्षरहरू लागू गर्नुहोस्: कुनै पनि JWT अस्वीकार गर्न अनुप्रयोग कन्फिगर गर्नुहोस् जसले पूर्व-अनुमोदित, बलियो हस्ताक्षर एल्गोरिदम (जस्तै RS256) प्रयोग गर्दैन।
- समय समाप्ति मान्य गर्नुहोस्:
expदावी [S1] मा निर्दिष्ट समय भन्दा पहिलेको वर्तमान मिति र समय सुनिश्चित गर्न अनिवार्य जाँच लागू गर्नुहोस्। - दर्शक प्रमाणित गर्नुहोस्:
audदावीमा स्थानीय सेवा पहिचान गर्ने मान समावेश छ भनी सुनिश्चित गर्नुहोस्; if the service is not identified in theaudclaim, the token must be rejected [S1]. - रिप्ले रोक्नुहोस्:
jti(JWT ID) दावी प्रयोग गर्नुहोस् प्रत्येक टोकनमा एक अद्वितीय पहिचानकर्ता तोक्न, सर्भरलाई पुन: प्रयोग गरिएका टोकनहरू ट्र्याक गर्न र अस्वीकार गर्न अनुमति दिँदै [S1]।
पत्ता लगाउने रणनीति
JWT ह्यान्डलिंगमा कमजोरीहरू टोकन संरचना र सर्भर प्रतिक्रिया व्यवहारको विश्लेषण गरेर पहिचान गर्न सकिन्छ:
- हेडर निरीक्षण:
alg(एल्गोरिदम) हेडरलाई "कुनै पनि" मा सेट गरिएको छैन र अपेक्षित क्रिप्टोग्राफिक मानकहरू [S1] प्रयोग गर्दछ भनेर सुनिश्चित गर्न जाँच गर्दै। - दावी प्रमाणीकरण: JSON पेलोड [S1] भित्र
exp(समय समाप्ति) रaud(दर्शक) दावीहरूको उपस्थिति र वैधता पुष्टि गर्दै। - प्रमाणीकरण परीक्षण:
expदावी अनुसार म्याद सकिएको वाaudदावीaudदावी द्वारा परिभाषित गरिए अनुसारको म्याद सकिएका टोकनहरूलाई सर्भरले सही रूपमा अस्वीकार गर्छ भने परीक्षण।
