具有单向加密密码的 HTTP Digest Auth

Posted

技术标签:

【中文标题】具有单向加密密码的 HTTP Digest Auth【英文标题】:HTTP Digest Auth with One way encrypted password 【发布时间】:2013-10-10 02:34:37 【问题描述】:

我正在 Rails 中实现一个 API,并希望使用 HTTP 摘要授权,因为它比基本授权更安全。如果我的密码作为单向加密哈希存储在数据库中,如何实现这一点。

【问题讨论】:

【参考方案1】:

说实话?不要打扰。如果您打算通过 HTTP 使用 Digest,那么您不妨使用表单或基本身份验证。 HTTPS 是解决方案。使用 Digest 仍然是完全不安全的(它使用弱散列,并且无法防御 MitM 攻击)。

HTTPS 并不难,如果没有它,您将很难保护您的应用程序。

【讨论】:

肯定会做表单,因为 Basic 也容易受到重放攻击。【参考方案2】:

使用存储在服务器上的哈希值进行摘要授权的唯一方法是在客户端复制哈希算法,将用户的密码转换为哈希,然后基本上成为新密码(共享密钥)。

如果您在生成哈希值时使用了盐,则需要在客户端上使用相同的盐,这可能会很困难。

正如其他人所建议的,请考虑改用 HTTPS。然后,您可以将密码以纯文本形式从客户端发送到服务器,并依靠 HTTPS 进行端到端保护。 HTTPS 提供加密和身份验证,从而关闭了循环。

【讨论】:

以上是关于具有单向加密密码的 HTTP Digest Auth的主要内容,如果未能解决你的问题,请参考以下文章

单向加密 对称加密 非对称加密

#yyds干货盘点#哈希算法和多种加密算法综合使用

HTTP安全与HTTPS协议

加密算法应用 C# code

rails--bcrypt对密码加密

HTTP认证模式:Basic & Digest