16.3. 暴力强制攻击


暴力强制通过尝试多次登录来猜测用户密码。红帽构建的 Keycloak 具有强行强制检测功能,如果登录失败超过指定阈值,则可以永久或临时禁用用户帐户。

注意

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

警告

默认情况下禁用括号强制检测。启用此功能来防止暴力攻击。

启用这个保护:

  1. 在菜单中点 Realm Settings
  2. Security Defenses 选项卡。
  3. Brute Force Detection 选项卡。
  4. 选择最适合您的要求的品牌强制模式。

    波形强制检测

    brute force

16.3.1. 永久锁定

Red Hat build of Keycloak 禁用用户帐户(阻止登录尝试),直到管理员重新启用它。

永久锁定

brute force permanently

永久锁定参数

Expand
Name描述默认

最大登录失败

登录失败的最大数量。

30 失败

快速登录检查 Milliseconds

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

1000 毫秒

最小快速登录等待

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

1 分钟

永久锁定流

  1. 成功登录后

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

    1. 增加 计数
    2. 如果 计数 大于或等于 Max login failures

      1. 锁定用户
    3. 如果这个失败的时间和最后一个故障小于 Quick Login Check Milliseconds,则其他情况

      1. 锁定用户在 最小快速登录等待时指定的时间
注意

启用用户帐户重置 计数

16.3.2. 临时锁定

红帽构建的 Keycloak 在特定时间段内禁用用户帐户。当攻击继续进行时,禁用帐户的时间周期会增加。

临时锁定

brute force temporarily

临时锁定参数

Expand
Name描述默认

最大登录失败

登录失败的最大数量。

30 失败

增加等待时间的策略

当用户登录尝试超过 Max Login失败时,可以增加用户临时禁用的时间

Multiple

wait Increment

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

1 分钟

Max Wait

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

15 分钟

故障重置时间

故障计数重置的时间。计时器从最后一次失败的登录中运行。请确保此数字始终大于 Max wait ;否则,有效等待时间永远不会到达您设置为 Max wait 的值。

12 小时

快速登录检查 Milliseconds

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

1000 毫秒

最小快速登录等待

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

1 分钟

临时锁定算法

  1. 成功登录后

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

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

      1. 重置 计数
    2. 增加 计数
    3. 根据定义的波形强制策略计算 等待 (请参阅以下策略来设置 Wait Time)。
    4. 如果 等待 小于或等于 0,且这个失败之间的时间小于 Quick Login Check Milliseconds

      1. wait 设置为 Minimum Quick Login Wait
    5. 如果 wait 大于 0

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

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

设置等待时间的策略

红帽 Keycloak 的构建提供了两个用于计算等待时间的策略: By multiples 或 Linear。通过多个策略,是红帽构建的 Keycloak 所引入的第一个策略,因此是默认的策略。

根据多个策略,当故障的数量(或计数)是 Max Login Failure 的倍数时,等待时间会递增。例如,如果您将 Max Login Failures 设置为 5,而 Wait Increment 设为 30 秒,则帐户在多次验证尝试失败后将被禁用的有效时间:

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

在第五次失败尝试时,该帐户在 30 秒内被禁用。到达下一次 Max Login Failures 后,本例中为 10,时间从 30 秒增加到 60 秒。

By multiple 策略使用以下公式来计算等待时间:Seconds 中的 Wait Increment in Seconds (计数 / Max Login Failures)。划分是一个整数部门,舍入为一个整数。

对于线性策略,当失败的数量(或数字)大于或等于 Max Login Failure 时,等待时间会递增。例如,如果您将 Max Login Failures 设置为 5,而 Wait Increment 设为 '30' 秒,则帐户在多次验证尝试失败后将禁用的有效时间:

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

60

7

30

5

90

8

30

5

120

9

30

5

150

10

30

5

180

在第五次失败尝试时,该帐户在 30 秒内被禁用。每个新失败会根据在等待 递增 时指定的值增加等待时间

线性策略使用以下公式来计算等待时间: Seconds * 中的 Wait Increment (1 + count - Max Login Failures)。

16.3.3. 临时锁定后永久锁定

混合模式.临时锁定用户指定次数,然后永久锁定用户。

临时锁定后永久锁定

brute force mixed

临时锁定参数后永久锁定

Expand
Name描述默认

最大登录失败

登录失败的最大数量。

30 失败

最大临时锁定

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

1

增加等待时间的策略

当用户登录尝试超过 Max Login失败时,可以增加用户临时禁用的时间

Multiple

wait Increment

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

1 分钟

Max Wait

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

15 分钟

故障重置时间

故障计数重置的时间。计时器从最后一次失败的登录中运行。请确保此数字始终大于 Max wait ;否则,有效等待时间永远不会到达您设置为 Max wait 的值。

12 小时

快速登录检查 Milliseconds

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

1000 毫秒

最小快速登录等待

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

1 分钟

临时锁定算法后永久锁定

  1. 成功登录后

    1. 重置 计数
    2. 重置 临时锁定 计数器
  2. 在失败的登录时

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

      1. 重置 计数
      2. 重置 临时锁定 计数器
    2. 增加 计数
    3. 根据定义的波形强制策略计算 等待 (请参阅以下策略来设置 Wait Time)。
    4. 如果 等待 小于或等于 0,且这个失败之间的时间小于 Quick Login Check Milliseconds

      1. wait 设置为 Minimum Quick Login Wait
      2. 快速登录失败 设置为 true'
    5. 如果 waitMaximum temporary Lockouts 大于 0

      1. wait 设置为 waitMax Wait 秒的最小值
    6. 如果 快速登录失败false

      1. 增加 临时锁定 计数器
    7. 如果 临时锁定 计数器超过 最大临时锁定

      1. 永久锁定用户
    8. 其他

      1. 根据 等待值临时阻止 用户
注意

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

16.3.4. Red Hat build of Keycloak brute force detection

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

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

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat