FixVibe
Covered by FixVibehigh

JWT सुरक्षा: असुरक्षितटोकनस्य जोखिमाः तथा च लापता दावा प्रमाणीकरणम्

JSON Web Tokens (JWTs) दावानां स्थानान्तरणार्थं मानकं प्रदाति, परन्तु सुरक्षा कठोरसत्यापनस्य उपरि निर्भरं भवति । हस्ताक्षराणि, अवधिसमाप्तिसमयाः, अभिप्रेतदर्शकान् वा सत्यापयितुं असफलता आक्रमणकारिणः प्रमाणीकरणं बाईपासं कर्तुं वा टोकनं पुनः प्ले कर्तुं वा शक्नुवन्ति ।

CWE-347CWE-287CWE-613

आक्रमणकारी प्रभाव

अनुचित JWT सत्यापन आक्रमणकारिणः दावानां जालीं कृत्वा अथवा अवधिसमाप्तटोकनस्य पुनः उपयोगं कृत्वा प्रमाणीकरणतन्त्रं बाईपासं कर्तुं अनुमतिं ददाति [S1]. यदि सर्वरः वैधहस्ताक्षरं विना टोकनं स्वीकुर्वति तर्हि आक्रमणकारी विशेषाधिकारं वर्धयितुं पेलोड् परिवर्तयितुं वा कस्यापि उपयोक्तुः अनुकरणं कर्तुं शक्नोति [S1] । अपि च, अवधिसमाप्तिः (exp) दावान् प्रवर्तयितुं असफलता आक्रमणकारी अनिश्चितकालं यावत् [S1] इति सम्झौतां टोकनस्य उपयोगं कर्तुं शक्नोति

मूलकारणम्

JSON वेब टोकन (JWT) एकः JSON-आधारितः संरचना अस्ति यस्य उपयोगः तेषां दावानां प्रतिनिधित्वार्थं भवति ये डिजिटलरूपेण हस्ताक्षरिताः अथवा अखण्डता संरक्षिताः [S1] सन्ति सुरक्षाविफलताः सामान्यतया प्राथमिककार्यन्वयनान्तरद्वयात् उद्भवन्ति:

  • असुरक्षित JWTs इत्यस्य स्वीकृतिः: यदि कोऽपि सेवा हस्ताक्षरसत्यापनं सख्तीपूर्वकं न प्रवर्तयति तर्हि सा "असुरक्षित JWTs" इत्यस्य संसाधनं कर्तुं शक्नोति यत्र हस्ताक्षरं अनुपस्थितं भवति तथा च एल्गोरिदम् "कोऽपि नास्ति" [S1] इति सेट् भवति। अस्मिन् परिदृश्ये सर्वरः पेलोड् मध्ये दावानां विश्वासं करोति तेषां अखण्डतां सत्यापितं विना [S1] ।
  • अनुपलब्धदावासत्यापनम्: exp (समाप्तिसमयः) दावाः तस्य समयस्य पहिचानं करोति यस्मिन् दिने अथवा तदनन्तरं JWT [S1] इत्यस्य संसाधनार्थं स्वीकारः न करणीयः। aud (दर्शक) दावा टोकन [S1] इत्यस्य अभिप्रेतप्राप्तकर्तृणां पहिचानं करोति । यदि एतानि न परीक्षितानि सन्ति तर्हि सर्वरः तान् टोकनान् स्वीकुर्वितुं शक्नोति येषां अवधिः समाप्तः अस्ति अथवा भिन्नस्य अनुप्रयोगस्य कृते अभिप्रेतः आसीत् [S1] ।

कंक्रीट फिक्स

  • क्रिप्टोग्राफिक हस्ताक्षरं प्रवर्तयन्तु: अनुप्रयोगं विन्यस्तुं यत् किमपि JWT अस्वीकारं करोति यत् पूर्व-अनुमोदितं, सशक्तं हस्ताक्षर-एल्गोरिदम् (यथा RS256) न उपयुज्यते।
  • समाप्तिम् प्रमाणीकृत्य: वर्तमानतिथिः समयः च exp दावे [S1] इत्यत्र निर्दिष्टसमयात् पूर्वं इति सुनिश्चित्य अनिवार्यपरीक्षां कार्यान्वितं कुर्वन्तु।
  • दर्शकानां सत्यापनम्: सुनिश्चितं कुर्वन्तु यत् aud दावायां स्थानीयसेवायाः पहिचानं कृत्वा मूल्यं भवति; यदि सेवा aud दावे न चिह्निता अस्ति, तर्हि टोकनं अङ्गीकृतं भवितुमर्हति [S1].
  • पुनः प्ले निवारयन्तु: प्रत्येकं टोकनं प्रति एकं अद्वितीयं परिचयकं नियुक्तुं jti (JWT ID) दावस्य उपयोगं कुर्वन्तु, यत् सर्वरं पुनः प्रयुक्तानि टोकन [S1] अनुसरणं कर्तुं अस्वीकारं च कर्तुं शक्नोति।

डिटेक्शन रणनीति

JWT नियन्त्रणे दुर्बलतानां पहिचानं टोकनसंरचनायाः तथा सर्वरप्रतिसादव्यवहारस्य विश्लेषणेन कर्तुं शक्यते:

  • शीर्षकनिरीक्षणम्: alg (एल्गोरिदम) शीर्षकस्य जाँचं कृत्वा सुनिश्चितं भवति यत् एतत् "कोऽपि नास्ति" इति सेट् न भवति तथा च अपेक्षितगुप्तलेखनमानकानां [S1] इत्यस्य उपयोगं करोति।
  • दावा सत्यापन: JSON पेलोड [S1] (समाप्ति) तथा aud (दर्शक) दावानां उपस्थितिं वैधतां च पुष्टयति।
  • मान्यतापरीक्षणम्: परीक्षणं यदि सर्वरः तान् टोकनान् सम्यक् अङ्गीकुर्वति ये exp दावानुसारं अवधिः समाप्ताः सन्ति अथवा aud दावा [S1] द्वारा परिभाषितरूपेण भिन्नदर्शकानां कृते अभिप्रेताः सन्ति।