第 17 章 FIPS 140-2 支持
Federal Information Processing Standard Publication 140-2,(FIPS 140-2),是用于批准加密模块的美国政府计算机安全标准。红帽构建的 Keycloak 支持以 FIPS 140-2 兼容模式运行。在这种情况下,红帽构建的 Keycloak 将只使用 FIPS 批准的加密算法来实现其功能。
要在 FIPS 140-2 中运行,红帽构建的 Keycloak 应该运行在启用了 FIPS 140-2 的系统中。这个要求通常会假设 RHEL 或 Fedora 在安装过程中启用了 FIPS。详情请查看 RHEL 文档。当系统处于 FIPS 模式时,它会确保底层 OpenJDK 处于 FIPS 模式,并且只使用 启用了 FIPS 的安全供应商。
要检查系统是否处于 FIPS 模式,您可以从命令行使用以下命令检查它:
fips-mode-setup --check
如果系统不处于 FIPS 模式,您可以使用以下命令启用它,但建议系统处于 FIPS 模式,因为安装而不是随后启用它:
fips-mode-setup --enable
17.1. BouncyCastle 库
红帽 Keycloak 内部构建对许多加密工具使用 BouncyCastle 库。请注意,红帽构建的 Keycloak 附带的 BouncyCastle 库的默认版本不兼容 FIPS,但 BouncyCastle 也提供其库的 FIPS 验证版本。由于许可证约束,Red Hat build of Keycloak 无法被红帽构建的 BouncyCastle 库提供 FIPS 验证的 BouncyCastle 库,红帽构建的 Keycloak 无法提供官方支持。因此,为了以 FIPS 兼容模式运行,您需要下载 BouncyCastle-FIPS 位,并将它们添加到红帽构建的 Keycloak 分发中。当红帽构建的 Keycloak 以 fips 模式执行时,它将使用 BCFIPS 位而不是默认的 BouncyCastle 位,这将实现 FIPS 合规性。
17.1.1. BouncyCastle FIPS 位
BouncyCastle FIPS 可以从 BouncyCastle 官方页面 下载。然后,您可以将它们添加到发行版本的目录 KEYCLOAK_HOME/providers
中。确保使用正确的版本与 BouncyCastle Red Hat build of Keycloak 依赖项兼容。所需的 BCFIPS 位有:
- bc-fips 版本 2.0.0.
- bctls-fips 版本 2.0.19。
- bcpkix-fips 版本 2.0.7。
- bcutil-fips 版本 2.0.3。