当登录到我的电脑时,如果密码正确,登录几乎是立即发生的。当密码错误时,需要等待几秒钟,才会提示“密码不正确”。出现。
同样的事情发生在终端上sudo
。但为什么?
我非常确定密码哈希值已保存并与输入密码的哈希值进行比较。但是确认哈希值是否相同不是需要更长的时间吗?
答案1
密码失败会故意引入延迟,以使密码破解过程变得缓慢。如果失败的响应速度与成功的响应速度一样快,那么字典攻击将立即结束。
答案2
PAM 配置需要检查多个服务。当您输入错误的密码时,它必须检查所有这些服务,这需要额外的时间 - 还可能故意在检查失败时增加超时时间。当您输入正确的密码时,它会尽快退出堆栈并返回成功结果,因此它不必检查其配置的所有资源。