创建JWT令牌后(在加密和签名之后),是否可以修改它的标头?

时间:2018-10-26 10:08:54

标签: authentication jwt

我知道JWT令牌包含以BASE64编码的标头部分。

场景:

  1. 解码标题
  2. 更改标头中存在的参数之一的值,例如kid参数
  3. 编码修改后的标头
  4. 将初始编码的标头替换为JWT令牌中的新编码的标头

问题

  • 令牌仍然有效吗?
  • 或者在最初对其进行签名时,在创建签名时还会考虑标头,因此,如果在此之后修改标头,该令牌被视为无效吗?

1 个答案:

答案 0 :(得分:1)

对于签名令牌(JWS),使用有效载荷AND头计算签名。 如果您更改标头或有效负载,则签名部分将无效。

您可以尝试在https://jwt.io/

请注意,存在一种已知的攻击,其中包括将签名算法修改为none,并且签名本身允许有效负载修改而不会警告易受攻击的库。 有关更多信息,请参见this detailed article