Red Hat Training

A Red Hat training course is available for RHEL 8

第 2 章 在 FIPS 模式中安装系统

要启用联邦信息处理标准(FIPS) 140-3 强制的加密模块自检,您必须在 FIPS 模式下操作 RHEL 8。如果您的目标是遵循 FIPS,在 FIPS 模式下开始安装是推荐的方法。

2.1. 联邦信息处理标准 140 和 FIPS 模式

联邦信息处理标准(FIPS)出版物 140 是国家标准与技术研究所开发的一系列计算机安全标准,以确保加密模块的质量。FIPS 140 标准确保加密工具正确实现其算法。运行时加密算法和完整性自我测试是一些机制,用于确保系统使用符合标准要求的加密。

要确保 RHEL 系统只生成并使用所有带有 FIPS 批准的算法的加密密钥,您必须将 RHEL 切换到 FIPS 模式。

您可以使用以下方法之一启用 FIPS 模式:

  • 在 FIPS 模式下开始安装
  • 安装后将系统切换到 FIPS 模式

如果您的目的是遵守 FIPS ,请在 FIPS 模式下开始安装。这可避免加密密钥材料重新生成和与转换已部署系统关联的结果系统的合规性的重新评估。

要操作遵守 FIPS 的系统,请在 FIPS 模式下创建所有加密密钥资料。另外,加密密钥材料不得离开 FIPS 环境,除非它被安全包装,且永远不会在非 FIPS 环境下打开包装。

使用 fips-mode-setup 工具将系统切换到 FIPS 模式不能保证符合 FIPS 140 标准。将系统设置为 FIPS 模式后,可能无法重新生成所有加密密钥。例如,在带有用户加密密钥的现有 IdM 领域的情形,您无法重新生成所有密钥。如果您无法在 FIPS 模式下开始安装,请在安装后始终将启用 FIPS 模式作为第一步,然后再进行安装后配置步骤或安装任何工作负载。

fips-mode-setup 工具还在内部使用 FIPS 系统范围的加密策略。但是,在 update-crypto-policies --set FIPS 命令所执行的操作之上,fips-mode-setup 通过使用 fips-finish-install 工具确保 FIPS dracut 模块的安装,它还向内核命令行中添加了 fips=1 引导选项,并重新生成初始 RAM 磁盘。

另外,在 FIPS 模式下所需的限制的实施取决于 /proc/sys/crypto/fips_enabled 文件的内容。如果文件包含 1,RHEL 核心加密组件切换到模式,在此模式下,它们只使用 FIPS 批准的加密算法的实现。如果 /proc/sys/crypto/fips_enabled 包含 0 ,则加密组件不会启用其 FIPS 模式。

FIPS 系统范围的加密策略有助于配置更高级别的限制。因此,支持加密灵活性的通信协议不会在选择时宣布系统拒绝的密码。例如,ChaCha20 算法不是 FIPS 批准的,FIPS 加密策略确保 TLS 服务器和客户端不宣布 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 TLS 密码套件,因为任何使用此类密码的尝试都会失败。

如果您在 FIPS 模式下操作 RHEL,并使用提供它自己的与 FIPS 模式相关的配置选项的应用程序,请忽略这些选项和相应的应用程序指导。运行在 FIPS 模式下的系统,系统范围的加密策略只强制执行遵守 FIPS 的加密。例如,如果系统在 FIPS 模式下运行,请忽略 Node.js 配置选项 --enable-fips。如果您在没有在 FIPS 模式下运行的系统上使用 --enable-fips 选项,则您没有满足 FIPS-140 合规性要求。

注意

虽然 FIPS 模式下的 RHEL 8.6 (和更新)内核被设计为遵守 FIPS 140-3 ,但还没有被国家标准与技术(NIST)加密模块验证计划(NIST)认证。在 RHSA-2021:4356 公告更新后,最新认证的内核模块是更新的 RHEL 8.5 内核。该认证适用于 FIPS 140-2 标准。您无法选择加密模块是否符合 FIPS 140-2 或 140-3。合规活动和政府标准 中的 FIPS 140-2 和 FIPS 140-3 知识库文章提供了所选 RHEL 次版本的加密模块的验证状态的概述。