刷新令牌比长寿JWT更安全吗?

时间:2018-01-29 19:03:23

标签: rest security jwt refresh-token

在使用自然不安全的客户端(浏览器,移动电话等)使用JWT时,我很难理解刷新令牌的使用。

对我来说,认为如果JWT受到损害,刷新令牌也没有受到损害,似乎很天真。

只要刷新令牌保持有效,攻击者基本上就拥有无限制JWT的来源。即使您使用过的刷新令牌无效,如果攻击者实施稍微更激进的刷新策略,攻击者仍然占上风。这与受损的长寿JWT有什么不同?

当使用长寿命的JWT时,攻击者只有在能够不断利用JWT的任何漏洞时才能继续获得有效的JWT。使用刷新令牌,他们可以通过漏洞获取JWT一次,然后获得新的JWT而不受他们喜欢的肆无忌惮。这似乎与长期生活的JWT一样安全,甚至可能更不安全。

我错过了什么?

1 个答案:

答案 0 :(得分:2)

刷新令牌是可以撤销的。如果它们被泄露,可以立即在授权服务器上撤销,并且不再生成JWT。

另一方面,JWT通常是独立的。这意味着它们通过检查令牌的数字签名在本地验证。一旦发布,他们不能被撤销。这就是为什么他们永远不应该长寿。

如果JWT和刷新令牌都遭到入侵,您将撤销刷新令牌,并且一旦JWT过期,攻击者将无法访问。这可能意味着撤销不是立竿见影的。

另一个选择是使用长期引用令牌而不是JWT和刷新令牌。在这种情况下,可以立即撤销。缺点是需要针对授权服务器验证参考令牌的每次使用。