如果我使用 TOTP 实现两因素身份验证,我(显然)必须防止对 TOTP 值的简单暴力攻击。
如果我在密码登录成功后询问 TOTP 值,则攻击者已经知道有效密码。由于 TOTP 值的默认长度为 6 位,因此很容易暴力破解。
可能的解决方案:
- 阻止用户帐户:阻止合法用户而无法解除阻止的缺点。
- 阻止 IP:可能有效,但可能会被僵尸网络绕过。应该为 IPv6 阻止多个 IP。
不起作用的解决方案:
- 阻止当前会话:不起作用,因为攻击者知道密码并且可以打开另一个会话。
如何实施蛮力保护,使其不会锁定合法用户,但仍能尽可能好地阻止攻击?