每当我在登录时输入密码错误时,都会有一段时间延迟,然后我才能再次尝试。为什么是这样?有没有办法消除延迟?

#1 楼

根据另一个Stack Exchange社区的解释,这是一项安全功能。这是该功能解决的两个漏洞:




此(原文如此)可以限制登录尝试,这意味着有人无法尽快尝试破坏系统破解它(1M尝试几秒钟?idk)。


如果它在确认您的凭据不正确后立即执行,则可以使用它花费的时间使它失效您的凭据,以帮助您猜测部分凭据是否正确,从而大大减少了猜测时间。



关于是否可以消除延迟,不可以,但是可以修改根据此答案,至少需要2秒。打开文件/etc/login.defs并将值设置为FAIL_DELAY

评论


感谢你的回答!通常,不鼓励在StackExchange上仅进行链接。您可以编辑帖子以包含相关信息吗? :)

–丹尼尔·佛雷(DanielForé)
15年7月20日在1:57

哦,糟糕!很抱歉,您是新手,在加入之前没有阅读文档中的更多内容。更新的答案现在好吗?

– Maliktunga
15年7月20日在2:09

辉煌的答案!谢谢!我在问自己同样的问题!

– r3bl
15年7月20日在8:31

没问题!感谢David Mulder改进了格式。

– Maliktunga
2015年7月21日,下午3:14

#2 楼

简短答案:


减少登录尝试的次数
防止快速强行使用密码。
这会使密码的猜测时间更长。
大大提高安全性

综合:

实际上是为了防止暴力攻击每秒尝试数百万个密码。这样做的目的是限制如何快速检查密码,并应遵循许多规则。


成功的用户名/密码对应立即成功。

在“无效的用户和密码”和“有效的用户但无效的密码”失败原因之间的响应甚至没有时间差异。

/>
每个故障都应该传递完全相同的信息,无论是文字还是其他形式。

某些系统将其推向更远,增加每次故障的延迟,或者只允许三个故障,然后再进行大量故障允许重试之前的延迟。

此行为的通用术语是tarpitting。 (维基百科非常关注网络)。

摘自《 Linux-PAM应用程序开发人员指南》:


计划延迟

extern int pam_fail_delay(pam_handle_t *pamh, unsigned int micro_sec);


Linux-PAM提供此功能
,以方便在控制返回到
后对pam_authenticate()和
的失败调用后的时间延迟。应用。使用此功能
时,应用程序程序员应
检查其是否可用,

#ifdef PAM_FAIL_DELAY
    ....
#endif /* PAM_FAIL_DELAY */


通常,应用程序要求
用户通过调用
pam_authenticate()或pam_chauthtok()由Linux-PAM进行身份验证。
这些函数调用列出的每个
堆叠式身份验证模块
在相关的Linux-PAM
配置文件中。按照该文件的指示,
是其中一个或多个模块之一。可能会导致对
的pam _...()调用失败,并返回错误。希望
在继续应用程序之前也要暂停一下。造成这种延迟的主要原因是安全性:
延迟主要是防止暴力破解
,但是
有助于阻止定时(隐蔽通道)
攻击。


本文还提供了更全面的信息。


要消除/调整延迟,请执行以下操作:


延迟可能是由于pam_faildelay.so


使用/etc/pam.d/login检查pam_faildelay中的pam配置,例如:

# Enforce a minimal delay in case of failure (in microseconds).
# (Replaces the `FAIL_DELAY' setting from login.defs)
# Note that other modules may require another minimal delay. (for example,
# to disable any delay, you should add the nodelay option to pam_unix)
auth       optional   pam_faildelay.so  delay=3000000


< br另一个造成延迟的原因可能是pam_unix.so


编辑/etc/pam.d/common-auth并添加节点布局,例如,

auth    [success=1 default=ignore]      pam_unix.so nullok_secure


已更改为

auth    [success=1 default=ignore]      pam_unix.so nullok_secure nodelay


注:对于CentOS,RHEL和Fedora:您必须寻找/etc/pam.d/system-auth


参考文献:


为什么拒绝无效的密码要比接受有效的密码花费更长的时间?
为什么检查错误的密码要比检查正确的密码花费的时间更长?
Linux- PAM系统管理员指南
为什么输入错误密码后会有很大的延迟?