JWT
ابزار JWT توکنهای وب JSON را کدگشایی و بررسی میکند تا بتوانید ساختار، ادعاها و ویژگیهای امنیتی آنها را بدون کلید خصوصی مرور کنید.
استفاده از ابزار
- یک JWT را در فیلد ورودی بچسبانید. ابزار قالب استاندارد سهبخشی با جداکنندهٔ نقطه را میپذیرد.
- ابزار بخشهای سرآیند و پیلود را بهطور خودکار جدا و از Base64 کدگشایی میکند.
- خروجی کدگشاییشده را در سه بخش زیر مرور کنید.
برای بررسی، به هیچ کلیدی نیاز نیست. تأیید امضا عملیاتی جداگانه است.
بخشهای کدگشاییشده
سرآیند
فیلدهای الگوریتم (alg) و شناسهٔ کلید (kid) را نشان میدهد. هشدارهای الگوریتم در اینجا ظاهر میشوند:
| شرط | سطح هشدار |
|---|---|
alg: none | بحرانی: توکن امضا ندارد |
alg: HS256 | اطلاع: متقارن است؛ با یک راز ضعیف در برابر حملهٔ جستوجوی فراگیر آسیبپذیر است |
alg: RS256 یا ES256 | بدون هشدار |
پیلود
همهٔ ادعاها را همراه با مقدار و نوع استنباطشدهٔ آنها نشان میدهد. ادعاهای استاندارد کدگشاییشده:
| ادعا | معنی |
|---|---|
iss | صادرکننده |
sub | موضوع (معمولاً شناسهٔ کاربر) |
aud | مخاطب |
exp | زمان انقضا |
nbf | پیش از این زمان معتبر نیست |
iat | زمان صدور |
jti | شناسهٔ JWT (شناسهٔ یکتای توکن) |
ادعاهای سفارشی زیر مجموعهٔ استاندارد ظاهر میشوند.
بررسی انقضا
اگر توکن ادعای exp داشته باشد، ابزار آن را با زمان فعلی مقایسه میکند و یکی از موارد زیر را نشان میدهد:
- معتبر: توکن هنوز منقضی نشده است.
- منقضیشده: زمان انقضای توکن گذشته است؛ مدت سپریشده نیز نمایش داده میشود.
- بدون انقضا: توکن ادعای
expندارد.
امضا
امضای خام کدگذاریشده با Base64url را نشان میدهد. ابزار تا زمانی که کلید را ارائه نکنید، برای تأیید امضا تلاش نمیکند؛ این بخش برای مراجعه و اطمینان از وجود امضا نمایش داده میشود.
موارد قابل بررسی
- بعضی کتابخانهها توکنهای
alg: noneرا بدون تأیید میپذیرند. آزمایش کنید که آیا برنامهٔ هدف آنها را میپذیرد. - توکنهای با عمر طولانی (
expچندین روز یا سال پس ازiat) ممکن است نشاندهندهٔ آن باشند که برنامه توکنها را بهصورت دورهای تعویض نمیکند. - دادههای حساس (اطلاعات شناسایی شخصی، شناسههای داخلی و نشانگرهای نقش) که در ادعاهای پیلود رمزگذارینشده ذخیره شدهاند، برای هر کسی که توکن را دارد قابلخواندناند.
- توکنهای بدون
jtiرا نمیتوان بهصورت جداگانه باطل کرد.