繁体   English   中英

基于节点和令牌的安全性

[英]Node & Token Based Security

我正在构建一个包含用户身份验证API的节点Web应用程序。

我在线阅读的每个教程都使用诸如配置文件之类的内容来概述服务器的机密,该机密用于生成jwt,然后将其传递给使用它的客户端,直到进行身份验证到期为止。

我的问题是将一个密钥存储在某个地方(实际上是任何地方)的概念,由此生成所有令牌。 我觉得好像有人得到了这个秘密,他们可能会欺骗令牌,例如针对其他用户等。

对于每个用户,甚至对于每个令牌,都没有一个更复杂的系统,例如多个机密,然后将这些多个机密存储在他们自己的单独数据库集合中。 这样,如果每个人都发现了一个秘密,是否可以将损害限制在只能最终最终失效的特定令牌上?

谢谢。

现在,您有了10,000个单独的秘密(针对10,000个用户),而不是必须保护的秘密? 那是存储在数据库中吗? 同样,每次读取JWT到DB的调用都会增加另一个延迟,仅用于解码JWT。

然后是第二期。 您怎么知道要查找哪个? 通过使用单个秘密签名的JWT,您可以将其打开,获取用户ID并查找用户。

但是,如果JWT用未知的秘密签名,则您将需要其他方法来知道这是谁。 URL中的用户ID? 另一个发布的值? 然后进行查找?

第三:您要向有人用无效令牌殴打您开放。 在您的情况下,如果您遭到100,000个错误令牌的攻击,则必须查询数据库100,000次以尝试查找它们的密码? 如果您有一个秘密密钥(该节点在内存中),它将快速识别出错误的令牌并将其发送到登录屏幕,这样就不会破坏数据库并影响您的有效用户。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM