当几乎立即使用正确的密码时,为什么计算机用“无效密码”响应需要这么长时间?[重复]


10

输入正确的密码后,响应几乎是瞬时的(即登录过程)。

但是,当您输入了错误的密码(偶然,忘记了密码等)时,它会花一会儿(10-30秒),然后它才响应密码错误。

为什么说“不正确的密码”需要这么长时间(相对)?

这一直困扰着我在Windows和Linux(真实和VM)上输入不正确的密码。我不确定mac OSX,因为我不记得它是否相同,因为我上次使用Mac已经有一段时间了。

编辑:为了重复,我是在用户登录到物理计算机上而不是通过ssh的上下文中询问的,而ssh可以想象使用一些不同的机制来登录/验证凭据。


与重复(SSH登录)相比,原因完全相同
延斯·埃拉特

它们不是,上下文不同。另一个区别是,答案是设置有未详
Thermatix

我同意OP。这些问题当然是相关的,但并不相同。答案为“为什么SSH在远程连接上说“无效密码”需要这么长时间?” 尽管它们可能很相似,但不一定与“为什么Windows登录在控制台时说“无效的密码”要花这么长时间?”的答案相同。绝对相关,无疑是重复的。
CVn 2015年

为了后代,以防万一重新打开该密码,假定是重复的:为什么不正确的密码尝试比正确的密码需要更长的处理时间?,但请注意,除了标题之外,给出的唯一特定示例是与Linux主机的远程SSH连接。
CVn 2015年

Answers:


17

为什么说“不正确的密码”需要这么长时间(相对)?

没有。确切地说,与正确的密码相比,它不再需要计算机来确定您的密码不正确。理想情况下,计算机所涉及的工作是完全相同的。(可以利用任何基于密码是否正确来花费不同时间的密码验证方案,以比其他情况更少的时间来获取密码的知识,无论该知识多么小。)

延迟是人为的延迟,即使您对可能的密码有所了解并且已禁用自动帐户锁定(在大多数情况下应该是这种情况,否则也会反复尝试使用不同的密码来尝试获得访问权限)是不正确的。允许针对任意帐户进行微不足道的拒绝服务)。

这种行为的总称是柏油。虽然Wikipedia文章更多地讨论了网络服务的tarpitting,但是这个概念是通用的。老旧事物也不是官方消息,但是为什么拒绝无效密码比接受有效密码要花费更长的时间?确实在文章末尾谈到了这一点。


我也一直想知道!有趣的回应。我希望他们可以将延迟时间缩短一些,因为当您按回车键后就意识到那是错误的,等待这么长时间很烦人:P
Blaine 2015年

1
这种保护主要针对脚本和自动暴力技术,而不是交互式登录。原因有几个,您不能调整时间,包括在许多情况下,延迟是随机的(以毫秒为单位)。有一组称为定时分析的加密攻击,它会根据产生错误消息所花费的时间来尝试获得有关加密密钥的知识。随机的延迟会很好地解决这个问题。
Frank Thomas

@FrankThomas我很容易承认,我没有说明进行重复尝试的方式。就是说,许多安全系统在提供无效凭据后会出现非常真实且引人注目的延迟,从而阻止了进一步的尝试,但需要短暂的但人类可以接受的时间。由于此时您已经可以交互方式访问系统,因此对加密原语的微秒或毫秒级定时攻击实际上并不适用。
CVn 2015年

这是权威吗?您有文章或其他参考资料吗?
rfportilla

@rfportilla“权威”?否。OP首先询问的是两个或三个完全不同的操作系统,其中一个可以具有任意数量的系统级应用程序(登录管理器,屏幕保护程序,...),提示输入密码,而另外两个是专有的(因此我们不知道他们的内部运作方式)。不可能提供涵盖所有内容的权威资源。如果问题是“为什么gdm3会这样做?” 那么可能会有一个真正权威的答案,但事实并非如此。
2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.