હુમલાખોરની અસર
અયોગ્ય JWT માન્યતા હુમલાખોરોને ફોર્જ કરીને અથવા સમાપ્ત થયેલા ટોકન્સ [S1] નો પુનઃઉપયોગ કરીને પ્રમાણીકરણ મિકેનિઝમ્સને બાયપાસ કરવાની મંજૂરી આપે છે. જો સર્વર માન્ય હસ્તાક્ષર વિના ટોકન્સ સ્વીકારે છે, તો હુમલાખોર વિશેષાધિકારો વધારવા અથવા કોઈપણ વપરાશકર્તા [S1] નો ઢોંગ કરવા પેલોડમાં ફેરફાર કરી શકે છે. વધુમાં, સમાપ્તિ (exp) દાવાને લાગુ કરવામાં નિષ્ફળ રહેવાથી હુમલાખોરને અનિશ્ચિત સમય માટે [S1] સાથે સમાધાન કરાયેલ ટોકનનો ઉપયોગ કરવાની મંજૂરી મળે છે.
મૂળ કારણ
JSON વેબ ટોકન (JWT) એ JSON-આધારિત માળખું છે જેનો ઉપયોગ એવા દાવાઓનું પ્રતિનિધિત્વ કરવા માટે થાય છે જે ડિજિટલી હસ્તાક્ષરિત અથવા અખંડિતતાથી સુરક્ષિત [S1] છે. સુરક્ષા નિષ્ફળતાઓ સામાન્ય રીતે બે પ્રાથમિક અમલીકરણ ગાબડાઓમાંથી ઉદ્ભવે છે:
- અસુરક્ષિત JWTs ની સ્વીકૃતિ: જો કોઈ સેવા સહી ચકાસણીને સખત રીતે લાગુ કરતી નથી, તો તે "અસુરક્ષિત JWTs" પર પ્રક્રિયા કરી શકે છે જ્યાં સહી ગેરહાજર હોય અને અલ્ગોરિધમ "કોઈ નહીં" [S1] પર સેટ હોય. આ દૃશ્યમાં, સર્વર તેમની અખંડિતતા [S1] ચકાસ્યા વિના પેલોડમાંના દાવાઓ પર વિશ્વાસ કરે છે.
- દાવાની માન્યતા ખૂટે છે:
exp(સમાપ્તિ સમય) દાવો [S1] પ્રક્રિયા કરવા માટે JWT સ્વીકારવો જોઈએ નહીં તે પછીના સમયને ઓળખે છે.aud(પ્રેક્ષકો) દાવો ટોકન [S1] ના ઇચ્છિત પ્રાપ્તકર્તાઓને ઓળખે છે. જો આ ચકાસાયેલ ન હોય, તો સર્વર એવા ટોકન્સ સ્વીકારી શકે છે કે જેની સમયસીમા સમાપ્ત થઈ ગઈ છે અથવા અલગ એપ્લિકેશન [S1] માટે બનાવાયેલ છે.
કોંક્રિટ ફિક્સેસ
- ક્રિપ્ટોગ્રાફિક હસ્તાક્ષરો લાગુ કરો: કોઈપણ JWT નકારવા માટે એપ્લિકેશનને ગોઠવો કે જે પૂર્વ-મંજૂર, મજબૂત હસ્તાક્ષર અલ્ગોરિધમનો (જેમ કે RS256) ઉપયોગ કરતું નથી.
- સમાપ્તિને માન્ય કરો: વર્તમાન તારીખ અને સમય
expદાવા [S1] માં નિર્દિષ્ટ સમય પહેલાંના છે તેની ખાતરી કરવા માટે ફરજિયાત તપાસનો અમલ કરો. - પ્રેક્ષકોને ચકાસો: ખાતરી કરો કે
audદાવામાં સ્થાનિક સેવાને ઓળખતું મૂલ્ય છે; જોaudદાવામાં સેવાની ઓળખ ન થઈ હોય, તો ટોકન [S1] નકારી કાઢવો આવશ્યક છે. - રીપ્લે અટકાવો: દરેક ટોકન માટે અનન્ય ઓળખકર્તા સોંપવા માટે
jti(JWT ID) ક્લેમનો ઉપયોગ કરો, સર્વરને ફરીથી ઉપયોગમાં લેવાયેલા ટોકન્સ [S1] ને ટ્રૅક અને નકારવા માટે પરવાનગી આપે છે.
તપાસ વ્યૂહરચના
JWT હેન્ડલિંગમાં નબળાઈઓને ટોકન માળખું અને સર્વર પ્રતિભાવ વર્તનનું વિશ્લેષણ કરીને ઓળખી શકાય છે:
- હેડર નિરીક્ષણ:
alg(એલ્ગોરિધમ) હેડરને "કોઈ નહીં" પર સેટ કરેલ નથી અને અપેક્ષિત ક્રિપ્ટોગ્રાફિક ધોરણો [S1] નો ઉપયોગ કરે છે તેની ખાતરી કરવા માટે તપાસી રહ્યું છે. - દાવાની ચકાસણી: JSON પેલોડ [S1] ની અંદર
exp(સમાપ્તિ) અનેaud(પ્રેક્ષકો) દાવાની હાજરી અને માન્યતાની પુષ્ટિ કરવી. - માન્યતા પરીક્ષણ: જો સર્વર
expદાવા અનુસાર સમાપ્ત થઈ ગયેલા ટોકન્સને યોગ્ય રીતે નકારે છે અથવાaudદાવાaudદ્વારા વ્યાખ્યાયિત કર્યા મુજબ અલગ પ્રેક્ષકો માટે બનાવાયેલ છે, તો પરીક્ષણ.
