15.3. 禁止强制攻击


禁止攻击尝试通过尝试多次登录来猜测用户密码。Red Hat build of Keycloak 具有 brute 强制检测功能,如果登录失败次数超过指定的阈值,可以临时禁用用户帐户。

注意

红帽构建的 Keycloak 默认禁用 brute 强制检测。启用此功能以防止破坏强制攻击。

流程

启用这个保护:

  1. 点菜单中的 Realm Settings
  2. Security Defenses 选项卡。
  3. Brute Force Detection 选项卡。

    禁止强制检测

    brute force

红帽构建的 Keycloak 可以在检测到攻击时部署永久锁定和临时锁定操作。永久锁定会禁用用户帐户,直到管理员重新启用它。临时锁定会在特定时间段内禁用用户帐户。当攻击继续进行时,帐户被禁用的时间会增加。

注意

当用户被临时锁定并尝试登录时,红帽构建的 Keycloak 会显示默认的 Invalid username 或 password 错误消息。此消息与为无效用户名或无效密码显示的消息相同,以确保攻击者不知道帐户被禁用。

常用参数

Expand
Name描述默认

最大登录失败

登录失败的最大数量。

30 个故障。

quick Login Check Milliseconds

登录尝试之间的最短时间。

1000 毫秒。

最小快速登录等待

当登录尝试比 Quick Login Check Milliseconds 快时,用户被禁用的最小时间。

1 分钟。

永久锁定流

  1. 成功登录

    1. 重置 计数
  2. 登录失败时

    1. 递增 计数
    2. 如果 计数 大于 Max Login Failures

      1. 永久禁用用户
    3. 否则,如果此失败和最后一次故障之间的时间小于 Quick Login Check Milliseconds

      1. 临时禁用用户以 最小快速登录等待

当红帽构建的 Keycloak 禁用用户时,用户无法登录,直到管理员启用了用户。启用帐户重置 计数

临时锁定参数

Expand
Name描述默认

wait Increment

当用户的登录尝试超过 Max Login Failures 时,添加到用户的时间会被临时禁用。

1 分钟。

Max Wait

用户临时禁用的最长时间。

15 分钟。

失败的重置时间

失败计数重置的时间。计时器从最后一次失败的登录中运行。

12 小时。

临时锁定算法

  1. 成功登录

    1. 重置 计数
  2. 登录失败时

    1. 如果此失败和最后一次故障之间的时间大于 Failure Reset Time

      1. 重置 计数
    2. 递增 计数
    3. 使用 Wait Increment 114 计算等待 (计数 / Max Login Failures)。划分是一个整数,向下舍入到整数
    4. 如果 等待 等于 0,且此失败之间的时间小于 Quick Login Check Milliseconds,则设置 wait to Minimum Quick Login Wait

      1. 临时禁用用户 等待Max Wait 秒的最小用户

当临时禁用的帐户提交登录失败时,计数 不会递增。

红帽构建的 Keycloak brute 检测是服务器易受拒绝服务攻击的影响。当实施拒绝服务攻击时,攻击者可以尝试通过猜测其知道的任何帐户的密码登录,并最终导致红帽构建的 Keycloak 禁用帐户。

考虑使用入侵阻止软件(IPS)。红帽构建的 Keycloak 都会记录每个登录失败和客户端 IP 地址失败。您可以将 IPS 指向红帽构建的 Keycloak 服务器日志文件,IPS 可以修改防火墙来阻止这些 IP 地址的连接。

15.3.1. 密码策略

确保您有一个复杂的密码策略来强制用户选择复杂的密码。如需更多信息,请参阅密码策略章节。???通过将红帽构建的 Keycloak 服务器设置为使用一次性密码,防止密码猜测。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat