FixVibe
Covered by FixVibehigh

JWT Security: Risks of Unsecured Tokens and Missing Claim Validation

JSON Web Tokens (JWTs) provide a standard for transferring claims, but security relies on rigorous validation. Failure to verify signatures, expiration times, or intended audiences allows attackers to bypass authentication or replay tokens.

CWE-347CWE-287CWE-613

ຜົນກະທົບຂອງຜູ້ໂຈມຕີ

ການກວດສອບ JWT ທີ່ບໍ່ຖືກຕ້ອງເຮັດໃຫ້ຜູ້ໂຈມຕີສາມາດຂ້າມກົນໄກການກວດສອບໂດຍການປອມແປງ ຫຼືໃຊ້ໂທເຄັນໝົດອາຍຸ [S1] ຄືນໃໝ່. ຖ້າເຊີບເວີຍອມຮັບໂທເຄັນໂດຍບໍ່ມີລາຍເຊັນທີ່ຖືກຕ້ອງ, ຜູ້ໂຈມຕີສາມາດດັດແປງ payload ເພື່ອຂະຫຍາຍສິດທິພິເສດ ຫຼືປອມຕົວເປັນຜູ້ໃຊ້ [S1]. ນອກຈາກນັ້ນ, ການບໍ່ບັງຄັບໃຊ້ການໝົດອາຍຸການຮຽກຮ້ອງ (exp) ອະນຸຍາດໃຫ້ຜູ້ໂຈມຕີໃຊ້ໂທເຄັນທີ່ຖືກລະເມີດຢ່າງບໍ່ມີກຳນົດ [S1].

ສາເຫດ

A JSON Web Token (JWT) ແມ່ນໂຄງສ້າງທີ່ອີງໃສ່ JSON ທີ່ໃຊ້ເພື່ອສະແດງການອ້າງສິດທີ່ຖືກເຊັນດ້ວຍດິຈິຕອລ ຫຼື ປົກປ້ອງຄວາມຊື່ສັດ [S1]. Security failures typically stem from two primary implementation gaps:

  • ການຍອມຮັບ JWTs ທີ່ບໍ່ປອດໄພ: ຖ້າການບໍລິການບໍ່ບັງຄັບການຢັ້ງຢືນລາຍເຊັນຢ່າງເຂັ້ມງວດ, ມັນອາດຈະດໍາເນີນການ "JWTs ທີ່ບໍ່ປອດໄພ" ທີ່ລາຍເຊັນແມ່ນບໍ່ມີ ແລະລະບົບຕັ້ງເປັນ "ບໍ່ມີ" [S1]. In this scenario, the server trusts the claims in the payload without verifying their integrity [S1].
  • ການຢືນຢັນການອ້າງສິດທີ່ຂາດຫາຍໄປ: ການອ້າງສິດ exp (ເວລາໝົດອາຍຸ) ຈະລະບຸເວລາທີ່ JWT ຈະຕ້ອງບໍ່ຖືກຍອມຮັບສຳລັບການປະມວນຜົນ [S1]. The aud (audience) claim identifies the intended recipients of the token [S1]. If these are not checked, the server may accept tokens that are expired or were intended for a different application [S1].

ແກ້ໄຂຄອນກີດ

  • ບັງຄັບໃຊ້ລາຍເຊັນເຂົ້າລະຫັດ: ກຳນົດຄ່າແອັບພລິເຄຊັນເພື່ອປະຕິເສດ JWT ໃດໆກໍຕາມທີ່ບໍ່ໄດ້ໃຊ້ລະບົບການເຊັນຊື່ທີ່ອະນຸມັດກ່ອນ, ທີ່ເຂັ້ມແຂງ (ເຊັ່ນ: RS256).
  • ກວດສອບການໝົດອາຍຸ: ປະຕິບັດການກວດສອບບັງຄັບເພື່ອຮັບປະກັນວັນທີ ແລະເວລາປັດຈຸບັນແມ່ນກ່ອນເວລາທີ່ກຳນົດໄວ້ໃນ exp ອ້າງສິດ [S1].
  • Verify Audience: Ensure the aud claim contains a value identifying the local service; if the service is not identified in the aud claim, the token must be rejected [S1].
  • ປ້ອງກັນການຫຼິ້ນຊ້ຳ: ໃຊ້ລະຫັດ jti (JWT ID) ເພື່ອມອບໝາຍຕົວລະບຸທີ່ເປັນເອກະລັກໃຫ້ກັບແຕ່ລະ token, ເຮັດໃຫ້ເຊີບເວີສາມາດຕິດຕາມ ແລະປະຕິເສດ tokens ທີ່ໃຊ້ຄືນ [S1].

ຍຸດທະສາດການຊອກຄົ້ນຫາ

Vulnerabilities in JWT handling can be identified by analyzing the token structure and server response behavior:

  • ການກວດກາສ່ວນຫົວ: ກວດສອບສ່ວນຫົວ alg (algorithm) ເພື່ອຮັບປະກັນວ່າມັນບໍ່ໄດ້ຕັ້ງເປັນ "ບໍ່ມີ" ແລະໃຊ້ມາດຕະຖານການເຂົ້າລະຫັດທີ່ຄາດໄວ້ [S1].
  • ການກວດສອບການອ້າງສິດ: ຢືນຢັນການມີຢູ່ ແລະຄວາມຖືກຕ້ອງຂອງ exp (ໝົດອາຍຸ) ແລະ aud (ຜູ້ຊົມ) ການຮຽກຮ້ອງພາຍໃນ JSON payload [S1].
  • ການທົດສອບຄວາມຖືກຕ້ອງ: ການທົດສອບຖ້າເຊີບເວີປະຕິເສດ tokens ທີ່ໝົດອາຍຸຢ່າງຖືກຕ້ອງຕາມການຮຽກຮ້ອງ exp ຫຼືມີຈຸດປະສົງສໍາລັບຜູ້ຊົມທີ່ແຕກຕ່າງກັນຕາມທີ່ກໍານົດໂດຍ aud ການຮຽກຮ້ອງ [S1].