我在联想笔记本电脑上使用 Windows 7。当我输入错误密码时,无论是连接到我们的网络还是断开连接时,Windows 都需要很长时间才能报告密码错误。我说的“很长时间”是指有时长达 20-30 秒。现在,我想说,即使说 5 秒也很多了 - 所以无论我能做什么来减少这种情况,我都想去做(包括任何与错误密码相关的人为安全延迟)。
答案1
首先,作为 MSDN 对 Windows 7 的直接回答,该操作系统采用以下决策分支来构建密码验证:
输入错误的密码会导致 Windows 7 遍历其密码缓存以比较所有条目。这会导致延迟。
如果缓存中没有匹配的内容,计算机就必须联系域控制器来验证账户密码。这会导致延迟。
然后,当所有其他方法都无法测试出有效密码时,您就会遇到标准的错误密码延迟。原因在 ServerFault 上提到。
在查看了 Microsoft Technet 上针对 Windows 7、Server 2003、Server 2008 的密码策略后,可以进行以下设置:
密码历史记录、最小密码长度、最大密码使用期限、最小密码使用期限、观察窗口、锁定持续时间、锁定阈值、坏密码时间、坏密码计数、ntPwdHistory、ForceUnlockLogon
但是,如果你在域中,这将通过 GPO 进行设置,并且不受你的控制;对于工作组中的计算机,你可以通过以下方式进行设置安全Pol管理器在下面Security Settings -> Account Lockout Policy
唯一接近的设置badPasswordTime
是上次输入错误密码的时间戳。
在所有设置中,没有任何内容引用密码失败延迟,因此它显然被硬编码到操作系统中。
现在,如果您使用的是 Linux,则可以向 PAM 添加参数以允许消除此延迟(如果它设置为接受该参数),否则,您必须使用您自己选择的设置重新编译控制此功能的 pam 模块。
答案2
就我而言,我发现延迟是由于通过 wifi 联系域控制器造成的。只有连接到互联网时才可以执行此步骤,因此可以设置一个脚本,在注销、工作站锁定和工作站空闲时禁用网络适配器,并在重新登录时重新启用它们。
例如,添加一个计划任务,在工作站锁定时触发,并执行禁用 wifi 网络适配器的操作
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command "Disable-NetAdapter -Name WiFi -Confirm:$false"
您可以在 powershell 中找到网络适配器的名称
netsh interface show interface
将类似的脚本添加到组策略注销。然后使用Enable-NetAdapter