当您输入密码并且正确时,响应实际上是即时的(即登录过程)。
但是,当您输入错误的密码(意外、忘记等)时,需要一段时间(10-30 秒)才能响应密码不正确。
为什么要花这么长时间(相对而言)才能显示“密码错误”?
在 Windows 和 Linux(真实和 VM)上输入错误密码总是让我烦恼;我不确定 Mac OSX 是否也是如此,因为我不记得它是否相同,自从我上次使用 Mac 已经有一段时间了。
编辑:为了重复,我是在用户登录物理计算机系统的背景下询问的,而不是通过 ssh,这可以使用稍微不同的机制来登录/验证凭据。
答案1
为什么要花这么长时间(相对而言)才能显示“密码错误”?
但事实并非如此。或者说,与正确密码相比,计算机确定密码错误所需的时间不会更长。理想情况下,计算机所涉及的工作完全相同。(任何根据密码正确与否而花费不同时间的密码验证方案都可以用来在比其他方案更短的时间内获取密码信息,无论这些信息多么少。)
延迟是人为的拖延使反复尝试使用不同的密码获取访问权限变得不可行,即使你知道密码可能是什么和自动帐户锁定功能已被禁用(大多数情况下都应该禁用,否则会导致针对任意帐户的拒绝服务)。
这种行为的通用术语是阻拦。虽然 Wikipedia 文章更多地讨论了网络服务缓送,但这个概念是通用的。旧事物新也不是官方消息来源,但是为什么拒绝无效密码比接受有效密码需要更长的时间?在文章结尾处确实谈到了这一点。