Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why not have the public key in JWT payload for convenience

As I understand it: to check the validity of a JWT created using an asymmetric public/private key encryption algorithm, you require the public key along with the JWT header, claim (aka payload) and signature. The JWT header and claim can be decoded freely but can't be verified without the public key to validate the signature with (which is based on the header & claim and created with the private key).

My question is, why not just bundle the public key into the claim payload of the token. That way anyone can check the validity of the token without necessarily needing to dig up the public key from a database or file store?

like image 914
alexkb Avatar asked Dec 04 '22 00:12

alexkb


1 Answers

How would you know that the public key delivered with JWT is authentic? For all you know, an attacker may have generated a key pair, signed the payload with the private key and included data, signature and public key in the JWT. This "thing" that you have now doesn't prove anything.

like image 56
Artjom B. Avatar answered Jan 08 '23 21:01

Artjom B.