ആക്രമണകാരിയുടെ ആഘാതം
തെറ്റായ JWT മൂല്യനിർണ്ണയം, വ്യാജമായ ക്ലെയിമുകൾ സൃഷ്ടിച്ച് അല്ലെങ്കിൽ കാലഹരണപ്പെട്ട ടോക്കണുകൾ [S1] പുനരുപയോഗിച്ചുകൊണ്ട് പ്രാമാണീകരണ സംവിധാനങ്ങൾ മറികടക്കാൻ ആക്രമണകാരികളെ അനുവദിക്കുന്നു. സാധുവായ ഒപ്പില്ലാതെ ഒരു സെർവർ ടോക്കണുകൾ സ്വീകരിക്കുകയാണെങ്കിൽ, ഒരു ആക്രമണകാരിക്ക് പ്രത്യേകാവകാശങ്ങൾ വർദ്ധിപ്പിക്കുന്നതിനോ ഏതെങ്കിലും ഉപയോക്താവിനെ [S1] ആൾമാറാട്ടുന്നതിനോ പേലോഡ് പരിഷ്കരിക്കാനാകും. കൂടാതെ, കാലഹരണപ്പെടൽ (exp) ക്ലെയിം നടപ്പിലാക്കുന്നതിൽ പരാജയപ്പെടുന്നത്, ഒരു ആക്രമണകാരിയെ അനിശ്ചിതമായി [S1] ഉപയോഗിക്കാൻ അനുവദിക്കുന്നു.
മൂലകാരണം
ഒരു JSON വെബ് ടോക്കൺ (JWT) എന്നത് ഡിജിറ്റലായി ഒപ്പിട്ടിട്ടുള്ള അല്ലെങ്കിൽ സമഗ്രത സംരക്ഷിത [S1] എന്ന ക്ലെയിമുകളെ പ്രതിനിധീകരിക്കാൻ ഉപയോഗിക്കുന്ന ഒരു JSON അടിസ്ഥാനമാക്കിയുള്ള ഘടനയാണ്. സുരക്ഷാ പരാജയങ്ങൾ സാധാരണയായി രണ്ട് പ്രാഥമിക നടപ്പാക്കൽ വിടവുകളിൽ നിന്നാണ് ഉണ്ടാകുന്നത്:
- സുരക്ഷിതമല്ലാത്ത JWT-കളുടെ സ്വീകാര്യത: ഒരു സേവനം സിഗ്നേച്ചർ സ്ഥിരീകരണം കർശനമായി നടപ്പിലാക്കുന്നില്ലെങ്കിൽ, ഒപ്പ് ഇല്ലാത്തതും അൽഗോരിതം "ഒന്നുമില്ല" [S1] ആയി സജ്ജീകരിച്ചിരിക്കുന്നതുമായ "അൺസെക്യുവർഡ് JWTകൾ" അത് പ്രോസസ്സ് ചെയ്തേക്കാം. ഈ സാഹചര്യത്തിൽ, പേലോഡിലെ ക്ലെയിമുകളുടെ സമഗ്രത [S1] പരിശോധിക്കാതെ സെർവർ വിശ്വസിക്കുന്നു.
- നഷ്ടമായ ക്ലെയിം മൂല്യനിർണ്ണയം:
exp(കാലഹരണപ്പെടുന്ന സമയം) ക്ലെയിം, JWT [S1] പ്രോസസ്സുചെയ്യുന്നതിന് സ്വീകരിക്കാൻ പാടില്ലാത്ത സമയത്തെ തിരിച്ചറിയുന്നു.aud(പ്രേക്ഷകർ) ക്ലെയിം [S1] ടോക്കണിൻ്റെ ഉദ്ദേശിക്കുന്ന സ്വീകർത്താക്കളെ തിരിച്ചറിയുന്നു. ഇവ പരിശോധിച്ചില്ലെങ്കിൽ, കാലഹരണപ്പെട്ടതോ മറ്റൊരു ആപ്ലിക്കേഷനായി ഉദ്ദേശിച്ചിട്ടുള്ളതോ ആയ ടോക്കണുകൾ സെർവർ സ്വീകരിച്ചേക്കാം [S1].
കോൺക്രീറ്റ് ഫിക്സുകൾ
- Enforce Cryptographic Signatures: Configure the application to reject any JWT that does not use a pre-approved, strong signing algorithm (such as RS256).
- കാലാവധി സാധൂകരിക്കുക: നിലവിലെ തീയതിയും സമയവും
expക്ലെയിം [S1]-ൽ വ്യക്തമാക്കിയ സമയത്തിന് മുമ്പാണെന്ന് ഉറപ്പാക്കാൻ നിർബന്ധിത പരിശോധന നടപ്പിലാക്കുക. - പ്രേക്ഷകരെ പരിശോധിക്കുക:
audക്ലെയിമിൽ പ്രാദേശിക സേവനത്തെ തിരിച്ചറിയുന്ന ഒരു മൂല്യം അടങ്ങിയിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക;audക്ലെയിമിൽ സേവനം തിരിച്ചറിഞ്ഞിട്ടില്ലെങ്കിൽ, ടോക്കൺ നിരസിച്ചിരിക്കണം [S1]. - വീണ്ടും പ്ലേ ചെയ്യുന്നത് തടയുക: ഓരോ ടോക്കണിലേക്കും ഒരു അദ്വിതീയ ഐഡൻ്റിഫയർ നൽകുന്നതിന്
jti(JWT ID) ക്ലെയിം ഉപയോഗിക്കുക, വീണ്ടും ഉപയോഗിച്ച ടോക്കണുകൾ ട്രാക്ക് ചെയ്യാനും നിരസിക്കാനും സെർവറിനെ അനുവദിക്കുന്നു ZXCVFIXVIBETOKEN1ZXCEVETOKEN1ZXCEV.
കണ്ടെത്തൽ തന്ത്രം
ടോക്കൺ ഘടനയും സെർവർ പ്രതികരണ സ്വഭാവവും വിശകലനം ചെയ്യുന്നതിലൂടെ JWT കൈകാര്യം ചെയ്യലിലെ കേടുപാടുകൾ തിരിച്ചറിയാൻ കഴിയും:
- ഹെഡർ പരിശോധന:
alg(അൽഗോരിതം) തലക്കെട്ട് "ഒന്നുമില്ല" എന്ന് സജ്ജീകരിച്ചിട്ടില്ലെന്നും പ്രതീക്ഷിക്കുന്ന ക്രിപ്റ്റോഗ്രാഫിക് സ്റ്റാൻഡേർഡുകൾ [S1] ഉപയോഗിക്കുന്നുണ്ടെന്നും ഉറപ്പാക്കുന്നു. - ക്ലെയിം സ്ഥിരീകരണം: JSON പേലോഡിനുള്ളിലെ
exp(കാലഹരണപ്പെടൽ),aud(പ്രേക്ഷകർ) ക്ലെയിമുകളുടെ സാന്നിധ്യവും സാധുതയും സ്ഥിരീകരിക്കുന്നു [S1]. - സാധുവാക്കൽ പരിശോധന:
expക്ലെയിം അനുസരിച്ച് കാലഹരണപ്പെട്ട ടോക്കണുകൾ സെർവർ ശരിയായി നിരസിക്കുന്നുണ്ടോ എന്ന് പരിശോധിക്കുന്നു അല്ലെങ്കിൽaudക്ലെയിം [S1]FIXVIBETOKEN2ZXCVFIXVIBETOKEN2 നിർവചിച്ചിരിക്കുന്നതുപോലെ വ്യത്യസ്ത പ്രേക്ഷകരെ ഉദ്ദേശിച്ചുള്ളതാണ്.
