15.3. 禁止强制攻击
禁止攻击尝试通过尝试多次登录来猜测用户密码。Red Hat build of Keycloak 具有 brute 强制检测功能,如果登录失败次数超过指定的阈值,可以临时禁用用户帐户。
红帽构建的 Keycloak 默认禁用 brute 强制检测。启用此功能以防止破坏强制攻击。
流程
启用这个保护:
- 点菜单中的 Realm Settings
- 点 Security Defenses 选项卡。
点 Brute Force Detection 选项卡。
禁止强制检测
红帽构建的 Keycloak 可以在检测到攻击时部署永久锁定和临时锁定操作。永久锁定会禁用用户帐户,直到管理员重新启用它。临时锁定会在特定时间段内禁用用户帐户。当攻击继续进行时,帐户被禁用的时间会增加。
当用户被临时锁定并尝试登录时,红帽构建的 Keycloak 会显示默认的 Invalid username 或 password
错误消息。此消息与为无效用户名或无效密码显示的消息相同,以确保攻击者不知道帐户被禁用。
常用参数
Name | 描述 | 默认 |
---|---|---|
最大登录失败 | 登录失败的最大数量。 | 30 个故障。 |
quick Login Check Milliseconds | 登录尝试之间的最短时间。 | 1000 毫秒。 |
最小快速登录等待 | 当登录尝试比 Quick Login Check Milliseconds 快时,用户被禁用的最小时间。 | 1 分钟。 |
永久锁定流
成功登录
-
重置
计数
-
重置
登录失败时
-
递增
计数
如果
计数
大于 Max Login Failures- 永久禁用用户
否则,如果此失败和最后一次故障之间的时间小于 Quick Login Check Milliseconds
- 临时禁用用户以 最小快速登录等待
-
递增
当红帽构建的 Keycloak 禁用用户时,用户无法登录,直到管理员启用了用户。启用帐户重置 计数
。
临时锁定参数
Name | 描述 | 默认 |
---|---|---|
wait Increment | 当用户的登录尝试超过 Max Login Failures 时,添加到用户的时间会被临时禁用。 | 1 分钟。 |
Max Wait | 用户临时禁用的最长时间。 | 15 分钟。 |
失败的重置时间 | 失败计数重置的时间。计时器从最后一次失败的登录中运行。 | 12 小时。 |
临时锁定算法
成功登录
-
重置
计数
-
重置
登录失败时
如果此失败和最后一次故障之间的时间大于 Failure Reset Time
-
重置
计数
-
重置
-
递增
计数
-
使用
Wait Increment
114 计算等待 (计数
/ Max Login Failures)。划分是一个整数,向下舍入到整数 如果
等待
等于 0,且此失败之间的时间小于 Quick Login Check Milliseconds,则设置wait
to Minimum Quick Login Wait。-
临时禁用用户
等待
和 Max Wait 秒的最小用户
-
临时禁用用户
当临时禁用的帐户提交登录失败时,计数
不会递增。
红帽构建的 Keycloak brute 检测是服务器易受拒绝服务攻击的影响。当实施拒绝服务攻击时,攻击者可以尝试通过猜测其知道的任何帐户的密码登录,并最终导致红帽构建的 Keycloak 禁用帐户。
考虑使用入侵阻止软件(IPS)。红帽构建的 Keycloak 都会记录每个登录失败和客户端 IP 地址失败。您可以将 IPS 指向红帽构建的 Keycloak 服务器日志文件,IPS 可以修改防火墙来阻止这些 IP 地址的连接。
15.3.1. 密码策略 复制链接链接已复制到粘贴板!
确保您有一个复杂的密码策略来强制用户选择复杂的密码。如需更多信息,请参阅密码策略章节。???通过将红帽构建的 Keycloak 服务器设置为使用一次性密码,防止密码猜测。