节点认证模型/方案

时间:2012-03-19 19:08:04

标签: javascript security authentication node.js

(xposted from nodejs@googlegroups.com)

什么是最好的本地存储认证方案?

我找到了一些:

它看起来像bcrypt的例子中的mongoose-auth工具:

  • github.com/bnoguchi/mongoose-auth/blob/master/lib/modules/password/plugin.js

而且,我无法弄清楚Everyauth是如何生成密码的。

  • github.com/bnoguchi/everyauth/blob/master/lib/modules/password.js

...我发现基于Math.random生成的吨数(Date.now * some_number)....类似的东西 - 看起来不对,所以我没有 完全记住。

明智地做这种安全的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

本地存储经过身份验证的凭据是对客户端进行身份验证的最糟糕方法之一。为了解决这个问题,你需要使用加密技术,这会引入暴力破坏的可能性。一个很好的例子就是Oracle Padding Attack used against .Net

如果您想要一个安全的系统,您将无法实现此功能。如果你想要的东西不是很安全但可能会有效,那么你应该使用HMAC。 Bcrypt,分组密码和流密码真的不是正确的选择。您可以使用bcrypt实现HMAC,但我会选择另一个哈希函数,如sha256。

此外,当前日期时间为 NOT A RANDOM VALUE ,对于随机值的计算,不应继续进行此操作。您需要跟踪时间,以便会话令牌过期。您的秘密应该使用/dev/random

等熵存储生成