【问题标题】:Sending Password over HTTPS - The Only Option?通过 HTTPS 发送密码 - 唯一的选择?
【发布时间】:2016-03-15 00:51:33
【问题描述】:

我已经用 node.js 构建了一个 Rest API。查看身份验证路线,我有使用 bcrypt 散列存储的密码。

现在,当用户登录时,我可以在客户端散列密码,将其发送到 API,但是据我所知,无法比较 2 个散列。那么这是否意味着唯一安全的选择是通过 HTTPS 将其作为纯文本发送?

我在这里看到了它的回答 Client side password hash versus plain text 但是是否存在普遍共识,通过 https 纯文本是唯一重要的方式。

谢谢。

【问题讨论】:

  • 如果不想使用HTTPS,可以使用HTTP Digest Authentication

标签: json security hash bcrypt


【解决方案1】:

无论您是计算客户端还是服务器端,您都绝对必须使用 HTTPS。因此,如果您的目标是删除 HTTPS 并改用 HTTP:请不要这样做——它会为“传递哈希”攻击打开大门。

将 bcrypt 计算转移到客户端有很好的论据,但是您必须担心一些陷阱才能正确执行。有关参考,请参阅 Method to Protect Passwords in Databases for Web ApplicationsClient-Plus-Server Password Hashing as a Potential Way to Improve Security Against Brute Force Attacks without Overloading the Server。基于相似想法和观察的两种不同解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-03
    • 2021-07-12
    • 2018-02-04
    • 1970-01-01
    • 2013-08-17
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    相关资源
    最近更新 更多