8.2. 一次性密码(OTP)策略
Red Hat build of Keycloak 有几个用于设置 FreeOTP 或 Google Authenticator 一次性密码生成器的策略。
流程
- 点菜单中的 Authentication。
- 点 Policy 选项卡。
- 点 OTP Policy 选项卡。
OTP 策略
红帽构建的 Keycloak 根据 OTP Policy 选项卡中配置的信息,在 OTP 设置页面中生成一个 QR 代码。在配置 OTP 时,FreeOTP 和 Google Authenticator 会扫描 QR 代码。
8.2.1. 基于时间或计数器的一次性密码 复制链接链接已复制到粘贴板!
红帽构建的 OTP 生成器中提供了基于时间的算法和计数器的算法。
使用基于时间的一次性密码(TOTP),令牌生成器将对当前时间和共享 secret 进行哈希处理。服务器通过将一个时间窗口中的哈希与提交的值进行比较来验证 OTP。TOTP 在较短的时间内有效。
使用基于 Counter 的一次性密码(HOTP),红帽构建的 Keycloak 使用共享计数器,而不是当前的时间。红帽Keycloak 服务器的红帽构建的 Keycloak 服务器会随着每个成功的 OTP 登录递增计数器。有效的 OTP 在成功登录后有所变化。
TOTP 比 HOTP 更安全,因为可匹配 OTP 在较短的时间窗内有效,而 OTP 代表对 indeterminate 的时间有效。HOTP 比 TOTP 更用户友好,因为存在输入 OTP 的时间限制。
当服务器每次递增计数器时,需要更新数据库。在这个版本中,在负载过重时,在身份验证服务器上性能排空。要提高效率,TOTP 不会记住所使用的密码,因此无需执行数据库更新。缺陷是,可以在有效时间间隔中重复使用 TOTP。
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. HOTP 配置选项 复制链接链接已复制到粘贴板!
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. 初始计数器 复制链接链接已复制到粘贴板!
初始计数器的值。