8.2. 一次性密码(OTP)策略
红帽构建的 Keycloak 有几个策略用于设置 FreeOTP 或 Google Authenticator 一次性密码生成器。
流程
- 点菜单中的 Authentication。
- 点 Policy 选项卡。
- 点 OTP Policy 选项卡。
OTP 策略
Red Hat build of Keycloak 根据 OTP Policy 选项卡中配置的信息,在 OTP 设置页面中生成一个 QR 代码。FreeOTP 和 Google Authenticator 在配置 OTP 时扫描 QR 代码。
8.2.1. 基于时间的或基于计数器的一次性密码 复制链接链接已复制到粘贴板!
红帽为 OTP 生成器的 Keycloak 提供的算法基于时间和基于计数器的算法。
使用基于时间的一次性密码(TOTP),令牌生成器会哈希当前时间和共享 secret。服务器通过将时间窗内的哈希与提交的值进行比较来验证 OTP。TOTP 在较短的时间内有效。
使用基于计数器的一次性密码(HOTP),红帽构建的 Keycloak 使用共享计数器而不是当前的时间。红帽构建的 Keycloak 服务器会在每次成功 OTP 登录时递增计数器。有效 OTPs 在成功登录后改变。
TOTP 比 pollingP 更安全,因为 matchable OTP 在短时间内有效,而 OTP for housekeepingP 则有效,而在确定的时间方面有效。HOTP 比 TOTP 更友好,因为不存在时间限制来进入 OTP。
当服务器每次递增计数器时,ACMP 需要数据库更新。在这个版本中,在负载过重的过程中,身份验证服务器上的性能排空。为提高效率,TOTP 不记住所使用的密码,因此无需执行数据库更新。缺陷是可以在有效时间间隔中重新使用 TOTPs。
8.2.2. TOTP 配置选项 复制链接链接已复制到粘贴板!
8.2.2.1. OTP 哈希算法 复制链接链接已复制到粘贴板!
默认算法是 SHA1。其他更安全的选项包括 SHA256 和 SHA512。
8.2.2.2. 数字数 复制链接链接已复制到粘贴板!
OTP 的长度。短 OTP 是用户友好的,易于输入,更容易记住。OTP 比更短的 OTP 更安全。
8.2.2.3. 查看窗口 复制链接链接已复制到粘贴板!
服务器尝试与哈希匹配的间隔数。如果 TOTP 生成器或身份验证服务器的时钟不同步,则 Red Hat build of Keycloak 中存在这个选项。1 的默认值足够。例如,如果令牌的时间间隔是 30 秒,则默认值 1 表示它将在 90 秒窗口中接受有效令牌(时间间隔 30 秒 + 查看前 30 秒 + 查看后 30 秒):这个值的每个递增会将有效窗口增加 60 秒(在 30 秒后 + 在 30 秒后查找)。
8.2.2.4. OTP 令牌周期 复制链接链接已复制到粘贴板!
服务器与哈希匹配的时间间隔(以秒为单位)。每次间隔通过时,令牌生成器都会生成一个 TOTP。
8.2.2.5. 可重复使用的代码 复制链接链接已复制到粘贴板!
确定 OTP 令牌是否可以在身份验证过程中重复使用,或者用户需要等待下一个令牌。默认情况下,用户无法重复使用这些令牌,管理员需要明确指定可以重复使用这些令牌。
8.2.3. libpmemP 配置选项 复制链接链接已复制到粘贴板!
8.2.3.1. OTP 哈希算法 复制链接链接已复制到粘贴板!
默认算法是 SHA1。其他更安全的选项包括 SHA256 和 SHA512。
8.2.3.2. 数字数 复制链接链接已复制到粘贴板!
OTP 的长度。短 OTP 是用户友好的,易于输入,更容易记住。较长的 OTP 比较短的 OTP 更安全。
8.2.3.3. 查看窗口 复制链接链接已复制到粘贴板!
服务器尝试与哈希匹配的前和以下间隔数。如果 TOTP 生成器或身份验证服务器的时钟不同步,则 Red Hat build of Keycloak 中存在这个选项。1 的默认值足够。当用户的计数器在服务器前面时,红帽构建的 Keycloak 中存在这个选项。
8.2.3.4. 初始计数器 复制链接链接已复制到粘贴板!
初始计数器的值。