返回介绍

9.3. JWT

发布于 2024-02-07 20:47:54 字数 1179 浏览 0 评论 0 收藏 0

9.3. JWT

9.3.1. 简介

Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。

9.3.2. 构成

分为三个部分,分别为header/payload/signature。其中header是声明的类型和加密使用的算法。payload是载荷,最后是加上 HMAC(base64(header)+base64(payload), secret)

9.3.3. 安全问题

9.3.3.1. Header部分

  • 是否支持修改算法为none/对称加密算法
  • 删除签名
  • 插入错误信息
  • 直接在 header 中加入新的公钥
  • kid字段是否有SQL注入/命令注入/目录遍历
  • 结合业务功能通过kid直接下载对应公私钥
  • 是否强制使用白名单上的加密算法
  • JWKS 劫持
  • JKU (JWK Set URL) / X5U (X.509 URL) 注入

9.3.3.2. Payload部分

  • 其中是否存在敏感信息
  • 检查过期策略,比如 exp , iat

9.3.3.3. Signature部分

  • 检查是否强制检查签名
  • 密钥是否可以爆破
  • 是否可以通过其他方式拿到密钥

9.3.3.4. 其他

  • 重放
  • 通过匹配校验的时间做时间攻击
  • 修改算法RS256为HS256
  • 弱密钥破解

9.3.4. 参考链接

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文