服务器首先是如何获得密码的?预(摘要式身份验证)注册

Posted

技术标签:

【中文标题】服务器首先是如何获得密码的?预(摘要式身份验证)注册【英文标题】:How did the server get the password in first place ? Pre (Digest Authentication) registration 【发布时间】:2013-11-29 21:10:31 【问题描述】:

在我读过的所有关于摘要式身份验证的解释中,他们谈到密码哈希已经保存在服务器上。

我要问的是注册过程,这个散列密码是如何首先到达那里的?

这是否意味着 Pre- 摘要式身份验证的实现是可以想象的,即在注册时服务器会生成密码并通过电子邮件发送,或者在用户注册时使用 ssl 连接只有还是什么?我错过了摘要身份验证附带的某种标准流程吗?

注意:我不是在实施我只是在学习;我知道摘要式身份验证有弱点,并且有更好的方法,我只是想全面了解整个过程。

注 2:我注意到有人投票结束了“这不是编程问题”这个问题,我相信当我说我没有实施我的意思是在注 1 中我的意思是没有在实际生产项目中实施时存在微小的误解,但是我想了解实现了摘要身份验证的概念,但我的问题仍然是清晰而简单的“密码最初是如何进入服务器的”。

【问题讨论】:

【参考方案1】:

用户的密码存储在服务器而不是hasg。每次用户想要验证服务器时,都会创建一个随机变量(以防止重放攻击)并将其发送给用户。用户使用随机数和其他详细信息(如 url 和领域)来创建哈希。服务端做同样的事情,如果这两个哈希匹配用户被认证。

所有这些都是为了防止以明文形式发送密码。有时加密连接(ssl)不可用,因此使用散列而不是发送用户名密码。是的,你是对的,密码必须通过电话或其他加密连接在带外共享。

【讨论】:

你写了我已经知道的东西,我问的是First密码是如何到达那里的,请再次阅读我的问题。 其实你说的是错的,再读一遍wiki的优势部分,“密码不是直接在摘要中使用,而是HA1 = MD5(username:realm:password)。这个允许某些实现(例如 JBoss[3])存储 HA1 而不是明文密码。” 好吧,我已经尝试回答您的问题,请阅读最后几行。是的,你是对的,密码必须通过电话或其他加密连接在乐队外共享

以上是关于服务器首先是如何获得密码的?预(摘要式身份验证)注册的主要内容,如果未能解决你的问题,请参考以下文章

使用 IIS 7 摘要式身份验证密码保护目录

ROBOTFRAMEWORK 的摘要式身份验证

使用 PHP POST 到 Web 服务的摘要式身份验证的客户端部分

您如何将 JMeter 与摘要式身份验证一起使用?

为 HTTP 摘要式身份验证编写测试/方法

什么是摘要认证?