15.3. brute 强制攻击


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

注意

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

流程

启用此保护:

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

    brute 强制检测

    brute force

红帽构建的 Keycloak 可以在检测到攻击时部署永久锁定和临时锁定操作。永久锁定会禁用用户帐户,直到管理员重新启用它。临时锁定会禁用特定时间段内的用户帐户。当攻击持续增加时,帐户被禁用的时间周期会增加,后续的故障到达 Max Login Failures 的倍数。

注意

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

常见参数

Expand
Name描述默认

最大登录失败

登录失败的最大数量。

30 个故障。

快速登录检查 Milliseconds

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

1000 毫秒。

最小快速登录等待

当登录尝试速度快于 Quick Login Check Milliseconds 时,用户会被禁用的最短时间。

1 分钟.

临时锁定参数

Expand
Name描述默认

wait Increment

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

1 分钟.

Max Wait

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

15 分钟.

失败重置时间

失败计数重置的时间。计时器从上次失败的登录运行。确保这个数字始终大于 Max wait; 否则有效的等待时间永远不会达到您被设置为 Max wait 的值。

12 小时.

临时锁定算法

  1. 成功登录

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

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

      1. 重置 计数
    2. 增加 计数
    3. 使用 Wait Increment * 计算等待 (计数 / Max Login Failures)。该部门是一个整数部门,舍入为一个整数
    4. 如果 等待 等于 0,且最后一次失败的时间小于 Quick Login Check Milliseconds,请将 wait to Minimum Quick Login Wait

      1. 临时禁用用户 等待Max Wait 秒的最小时间
      2. 增加临时锁定计数器

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

例如,如果您将 Max Login Failures 设置为 5Wait Increment30 秒,则在多次验证尝试失败后将禁用帐户的有效时间:

Expand

失败数

wait Increment

最大登录失败

有效等待时间

1

30

5

0

2

30

5

0

3

30

5

0

4

30

5

0

5

30

5

30

6

30

5

30

7

30

5

30

8

30

5

30

9

30

5

30

10

30

5

60

请注意,Effective Wait Time at the 5th failed trying 将禁用帐户 30 秒。只有达到下一个 Max Login Failure (本例中为 10 )后,将时间从 30 增加到 60。只有在达到 Max Login Failures 的倍数时,才会禁用该帐户的时间。

永久锁定参数

Expand
Name描述default

最大临时锁定

在发生永久锁定前允许的最大临时锁定数。

0

永久锁定流

  1. 遵循临时锁定流
  2. 如果临时锁定计数器超过 Max temporary lockouts

    1. 永久禁用用户

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

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

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

15.3.1. 密码策略

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

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat