JWT (JSON Web Token) 如果有人嗅到了令牌,可以发送相同的帖子吗?

Posted

技术标签:

【中文标题】JWT (JSON Web Token) 如果有人嗅到了令牌,可以发送相同的帖子吗?【英文标题】:JWT (JSON Web Token) if someone sniff the token, could send the same Post? 【发布时间】:2016-11-21 12:18:51 【问题描述】:

如果有人嗅探网络并使用令牌从我的 REST 中捕获我的整个请求,会发生什么?这个人可以毫无问题地再次发送相同的数据包和影响,对吧?当然,他不会知道该数据包来自哪个用户,但无论如何他都可以影响,对吧?这可能吗?在这种情况下如何领导?

谢谢! 马特。

【问题讨论】:

【参考方案1】:

如果有人嗅探网络并使用令牌从我的 REST 捕获我的整个请求,会发生什么?

JWT 是身份验证令牌,因此他可以冒充用户。

此人可以再次发送相同的数据包和 Impact 没有任何问题,对吧?

相同的数据包或任何其他数据包,因为如果具有身份验证令牌。就像用户丢失了您的用户名/密码一样

他当然不会知道这个数据包来自哪个用户,但他无论如何都会影响对吧?

是的,他可以知道用户,它可以知道只需解码令牌的“子”字段。如RFC 中所定义的,此字段标识作为 JWT 的主题。攻击者可以使用您自己的 api 来获取或修改其有权访问的任何信息

这可能吗?在这种情况下如何领导?

主要使用 HTTPS 来避免中间人,并保持令牌的私密性。还设置过期和定期更新令牌

【讨论】:

【参考方案2】:

当然,攻击者可以使用令牌并获得与受害者相同的访问权限。

如果你想限制攻击者的行为,你需要执行几个条件:

    将令牌的过期时间设置得越小越好(5 分钟、30 分钟、月或年)。 使用刷新令牌获取新令牌并在每次更新旧令牌时更新刷新令牌(毫无疑问,当用户登录时) 使用 https(哦,是的!) 不要在令牌中存储密码、信用卡号和任何机密信息(我确定,你知道的 :))

【讨论】:

嗨,那么 IP 地址呢?我的意思是,我可以在 Token 中使用 IP 地址来验证请求用户或节点吗?

以上是关于JWT (JSON Web Token) 如果有人嗅到了令牌,可以发送相同的帖子吗?的主要内容,如果未能解决你的问题,请参考以下文章

注意!侵入JSON Web Token(JWT)

JWT(JSON Web Token)自动延长过期时间

JWT(Json WEB Token)

JWT(JSON Web Token)

JWT(Json Web Token)

JSON Web Token (JWT) RFC7519