参考令牌生成最佳实践

时间:2016-11-22 13:52:17

标签: node.js security cryptography access-token restful-authentication

我为我的nodejs项目实现了JWT令牌,但是对撤销令牌的需求使我切换到引用承载令牌以完全控制令牌生存期。根据我的项目要求:

  1. 代币必须比自我描述的JWT代币合理地短。
  2. 必须有一些方法来确保服务器发出令牌(如JWT中的hs256验证),但由于参考令牌中没有有效载荷部分,情况会变得更加复杂。
  3. 实现安全,不可行的猜测参考令牌的最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

不透明令牌只是一个ramdom字符串,它在服务器中映射到经过身份验证的用户名。看看https://security.stackexchange.com/questions/19676/token-based-authentication-securing-the-token

  

只要攻击者无法创建具有不可忽略概率的有效令牌,“有效令牌”是“发出令牌数据库中的令牌”,这样的令牌就足以保证安全性。令牌值长度至少16个字节并且使用加密强PRNG

就足够了

为了降低服务器存储要求,令牌可以包含用户名和发布日期,并使用HMAC私钥加密,以便服务器可以验证其真实性。

最后一个解决方案非常接近JWT。使用JWT,您还可以使用黑名单标记无效令牌,存储到其到期时间并在每个请求中进行检查。 (黑名单打破了JWT无国籍状态,因为它需要维持状态)