Security 密码不正确时为什么“sudo”速度慢?

Security 密码不正确时为什么“sudo”速度慢?,security,encryption,passwords,sudo,Security,Encryption,Passwords,Sudo,当我输入超级用户权限的密码或登录到我的Linux框时,如果输入正确,它会立即返回,并授予我访问权限。然而,如果我输入了一些错误,在它告诉我我的密码不正确之前会有很长时间的等待。通常,我意识到我早在电脑出现之前就把事情搞砸了 为什么会这样?据我所知,用户密码是加密的,并存储在/etc/shadow中,因此似乎我的输入应该被加密,并与该文件中的用户名进行比较——这与我是否输入正确的密码所用的时间大致相同。是否有一些算法上的原因,比如它必须检查一堆额外的位置,然后才能确认它是错误的?或者可能系统很快就

当我输入超级用户权限的密码或登录到我的Linux框时,如果输入正确,它会立即返回,并授予我访问权限。然而,如果我输入了一些错误,在它告诉我我的密码不正确之前会有很长时间的等待。通常,我意识到我早在电脑出现之前就把事情搞砸了


为什么会这样?据我所知,用户密码是加密的,并存储在
/etc/shadow
中,因此似乎我的输入应该被加密,并与该文件中的用户名进行比较——这与我是否输入正确的密码所用的时间大致相同。是否有一些算法上的原因,比如它必须检查一堆额外的位置,然后才能确认它是错误的?或者可能系统很快就知道密码不正确,但必须做大量工作来跟踪不正确的登录尝试。或者它只是想惩罚我把事情搞砸了。

这完全是故意的:这样做的原因是不可能使用字典攻击猜出密码


快速掉头对于字典攻击至关重要。减慢错误密码的速度是将攻击减慢到爬行的一种方式,使其无法在有意义的时间间隔内执行。

我不确定这个问题是否与此相关。。我也不确定我的答案是否正确,但我认为这是出于安全考虑。将其速度降低n倍意味着暴力攻击将花费n倍的时间。

当您输入错误密码时,
sudo
的响应速度很慢,因此,如果您使用
sudo
进行粗暴的暴力“尝试并猜测密码”攻击,每次猜错密码时,您的速度都会降低,所以攻击需要更长的时间。那些合法使用它的人没有理由抱怨。如果你偶尔打个错字,你不会介意的。如果您真的无法键入自己的密码,可能是时候将其更改为您可以键入的(安全)密码了。

控制台或SSH登录也很慢。任何需要密码的东西都会被“减速”以阻止暴力攻击。

我希望这个问题适合这样做。我知道它与编程没有严格的关系,但我希望了解一些关于加密算法或安全最佳实践的知识。这可能是为了减缓自动猜测的速度。几个月前我就注意到了这一点,但我没有足够的好奇心去问。希望能有答案!看起来他们使用了相当短的(2秒左右)时间,但没有增加。如果你要猜一百万个密码,那么平均需要一百万秒(1m*2s/2)=277小时。不是很多,但比其他情况下只需要几秒钟要好得多。一些应用程序或操作系统在两次尝试之间使用了指数时间,但这可能会让用户感到厌烦。选择好你的密码!话虽如此,有没有办法降低超时时间?@Shurane我真的希望答案是“没有”。这可能不是事实,但Doug Gwyn说
UNIX的设计目的不是阻止你做愚蠢的事情,因为这也会阻止你做聪明的事情。
我不介意开枪打自己的脚。“如果你偶尔打个错字,你不会介意的。”好吧,这就是我来这里的原因。