第 14 章 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 的系统中运行。这个要求通常假定在安装过程中启用了 FIPS 的 RHEL 或 Fedora。详情请查看 RHEL 文档。当系统处于 FIPS 模式时,它会确保底层 OpenJDK 处于 FIPS 模式,且只使用 启用了 FIPS 的安全供应商。
要检查系统是否处于 FIPS 模式,您可以从命令行使用以下命令检查它:
fips-mode-setup --check
如果系统没有处于 FIPS 模式,您可以使用以下命令启用它,但建议系统处于 FIPS 模式,因为安装而不是随后启用它:
fips-mode-setup --enable
14.1. BouncyCastle library
红帽构建的 Keycloak 在内部将 BouncyCastle 库用于很多加密工具。请注意,红帽构建的 Keycloak 附带的 BouncyCastle 库的默认版本不兼容 FIPS,但 BouncyCastle 还提供了其库的 FIPS 验证版本。由于许可证限制,红帽构建的 Keycloak 无法附带 FIPS 验证的 BouncyCastle 库,红帽构建的 Keycloak 无法提供对它的官方支持。因此,若要以 FIPS 兼容模式运行,您需要下载 BouncyCastle-FIPS 位,并将它们添加到 Keycloak 发行版本的红帽构建中。当红帽构建的 Keycloak 在 fips 模式下执行时,它将使用 BCFIPS 位而不是默认的 BouncyCastle 位,它实现了 FIPS 合规性。
14.1.1. BouncyCastle FIPS 位
BouncyCastle FIPS 可以从 BouncyCastle 官方页面 下载。然后,您可以将其添加到发行版的 KEYCLOAK_HOME/providers
目录中。确保使用与 BouncyCastle 红帽构建的 Keycloak 依赖项兼容的正确版本。所需的 BCFIPS 位是:
-
bc-fips-1.0.2.3.jar
-
bctls-fips-1.0.18.jar
-
bcpkix-fips-1.0.7.jar