हल्लेखोर प्रभाव
अयोग्य JWT प्रमाणीकरण आक्रमणकर्त्यांना खोटे दावे करून किंवा कालबाह्य झालेले टोकन [S1] पुन्हा वापरून प्रमाणीकरण यंत्रणा बायपास करण्यास अनुमती देते. जर एखाद्या सर्व्हरने वैध स्वाक्षरीशिवाय टोकन स्वीकारले, तर आक्रमणकर्ता विशेषाधिकार वाढवण्यासाठी पेलोडमध्ये बदल करू शकतो किंवा [S1] वापरकर्त्याची तोतयागिरी करू शकतो. शिवाय, कालबाह्यता (exp) दाव्याची अंमलबजावणी करण्यात अयशस्वी झाल्यास आक्रमणकर्त्याला तडजोड केलेले टोकन अनिश्चित काळासाठी [S1] वापरण्याची परवानगी मिळते.
मूळ कारण
JSON वेब टोकन (JWT) एक JSON-आधारित रचना आहे जी डिजिटली स्वाक्षरी केलेले किंवा अखंडतेने संरक्षित [S1] दाव्यांच्या प्रतिनिधित्वासाठी वापरली जाते. सुरक्षा अपयश सामान्यत: दोन प्राथमिक अंमलबजावणी अंतरांमुळे उद्भवतात:
- असुरक्षित JWTs ची स्वीकृती: जर एखादी सेवा स्वाक्षरी पडताळणीची काटेकोरपणे अंमलबजावणी करत नसेल, तर ती "असुरक्षित JWTs" वर प्रक्रिया करू शकते जिथे स्वाक्षरी अनुपस्थित आहे आणि अल्गोरिदम "काहीही नाही" [S1] वर सेट आहे. या परिस्थितीत, सर्व्हर पेलोडमधील दाव्यांची अखंडता [S1] सत्यापित न करता विश्वास ठेवतो.
- गहाळ दावा वैधता:
exp(कालबाह्यता वेळ) दावा [S1] प्रक्रिया करण्यासाठी JWT स्वीकारला जाऊ नये किंवा त्यानंतरची वेळ ओळखतो.aud(प्रेक्षक) दावा [S1] टोकनचे इच्छित प्राप्तकर्ते ओळखतो. हे तपासले नसल्यास, सर्व्हर कालबाह्य झालेले टोकन स्वीकारू शकतो किंवा जे भिन्न ऍप्लिकेशन [S1] साठी होते.
ठोस निराकरणे
- क्रिप्टोग्राफिक स्वाक्षरी लागू करा: पूर्व-मंजूर, मजबूत स्वाक्षरी अल्गोरिदम (जसे की RS256) वापरत नसलेले कोणतेही JWT नाकारण्यासाठी अनुप्रयोग कॉन्फिगर करा.
- कालबाह्यता सत्यापित करा:
expदाव्या [S1] मध्ये निर्दिष्ट केलेल्या वेळेपूर्वी वर्तमान तारीख आणि वेळ असल्याची खात्री करण्यासाठी अनिवार्य तपासणी करा. - प्रेक्षकांची पडताळणी करा:
audदाव्यामध्ये स्थानिक सेवा ओळखणारे मूल्य असल्याची खात्री करा;audदाव्यामध्ये सेवा ओळखली नसल्यास, टोकन [S1] नाकारले जाणे आवश्यक आहे. - रीप्लेला प्रतिबंधित करा: प्रत्येक टोकनला एक युनिक आयडेंटिफायर नियुक्त करण्यासाठी
jti(JWT ID) दावा वापरा, सर्व्हरला [S1] पुन्हा वापरलेल्या टोकन्सचा मागोवा घेण्यास आणि नाकारण्याची परवानगी द्या.
शोध धोरण
JWT हाताळणीतील भेद्यता टोकन संरचना आणि सर्व्हर प्रतिसाद वर्तनाचे विश्लेषण करून ओळखल्या जाऊ शकतात:
- शीर्षलेख तपासणी:
alg(अल्गोरिदम) शीर्षलेख हे "काहीही नाही" वर सेट केलेले नाही याची खात्री करण्यासाठी तपासत आहे आणि अपेक्षित क्रिप्टोग्राफिक मानके [S1] वापरतात. - दाव्याची पडताळणी: JSON पेलोड [S1] मध्ये
exp(कालबाह्यता) आणिaud(प्रेक्षक) दाव्यांची उपस्थिती आणि वैधता याची पुष्टी करणे. - प्रमाणीकरण चाचणी:
expदाव्यानुसार कालबाह्य झालेली टोकन्स सर्व्हरने योग्यरित्या नाकारली किंवाaudदाव्यानेaudदाव्यानुसार परिभाषित केल्यानुसार भिन्न प्रेक्षकांसाठी हेतू असल्यास चाचणी.
