为什么登录进程会在报告“密码错误”之前休眠而不是限制输入?

Luc*_*Luc 2 login

当使用 sudo、su 或简单地使用 Linux Mint Cinnamon 或 Debian with Cinnamon 的登录屏幕时,当您输入错误的密码时,它们都会挂起一秒钟。

对我来说,它挂起的事实已经告诉我“这是不正确的”,让我 Ctrl+C 成为 sudo 命令,然后使用向上箭头 -> Enter 重试,或者使用 Escape 关闭登录对话框并开始输入以重试。这工作得很好。

这似乎是对速率限制的尝试,但它不起作用,因为攻击者只能设置并行猜测。如果它真的想要速率限制,它应该限制每个时间段可以输入多少查询,而不是在返回输出之前需要多长时间(并且它只在失败的情况下延迟,另一个致命的赠品)。

这样做的原因是什么?

eba*_*bal 5

这些程序与 PAM - Linux 的可插拔身份验证模块进行通信,以进行登录访问和密码身份验证。发行版上这些 pam 模块的默认策略会延迟登录失败的秒数。

如果您需要了解更多信息:

man pam 
Run Code Online (Sandbox Code Playgroud)

并查看以下内容:

/etc/pam.d
Run Code Online (Sandbox Code Playgroud)