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) 如果有人嗅到了令牌,可以发送相同的帖子吗?的主要内容,如果未能解决你的问题,请参考以下文章