输入错误密码后 passwd 暂停

输入错误密码后 passwd 暂停

假设你输入 passwd 并输入了错误的密码。在它告诉你密码错误和你输入密码之间有明显的延迟。你知道为什么吗?似乎有点奇怪……

当我输入错误密码时收到的消息如下:

passwd: Authentication token manipulation error
passwd: password unchanged

也许它试图通过降低尝试新密码的速度来防止暴力破解?

无论如何,是否有关于此行为的讨论?我在手册页中没有看到任何相关说明。

答案1

是的,延迟是为了防止暴力破解,大约为 3 秒。

它没有出现在 passwd 手册中的原因是,它由身份验证后端控制 - 通常pam

man pam_unix

显示您可以设置nodelay以消除延迟。您还可以在pam_faildelay

man pam_faildelay

这些设置全部在

/etc/pam.d/*

答案2

是的,这是为了防止暴力攻击。

一个由字母数字组成的 6 个字符密码最多可以有 36 位熵(每个字符 6 位)。如果计算机每秒可以检查 10 亿个密码,则只需几2 ^ 36 / 1 billion = 69秒钟就可以尝试所有可能的密码。一秒钟的延迟意味着每秒只能尝试一个密码。尝试所有可能的密码现在需要 2179 年……

延迟不是由 passwd 本身处理的,而是由可插入身份验证模块

nodelay可以通过在行中添加选项来禁用 passwd 的延迟

password        [success=2 default=ignore]      pam_unix.so obscure sha512

在 中/etc/pam.d/common-password。由于这会影响使用该配置文件的所有其他程序,因此您可以将其复制过去/etc/pam.d/passwd并仅在那里禁用延迟。

也可以看看:手册 pam_unix

相关内容