配置 MongoDB 以支持 FIPS
概述
联邦信息处理标准(FIPS)是美国政府计算机安全标准,用于认证加密和解密数据的安全软件模块和库。您可以将 MongoDB 配置为使用 OpenSSL 的 FIPS 140-2 认证库运行。您可以通过命令行以默认方式或按需配置 FIPS 运行。
FIPS 和 TLS/SSL 的完整描述超出了本文档的范围。本教程假定您已了解 FIPS 和 TLS/SSL。
重要
MongoDB 和 FIPS
FIPS 是加密系统的属性,而不是访问控制系统的属性。但是,如果您的环境需要符合 FIPS 的加密 和 访问控制,您必须确保访问控制系统仅使用符合 FIPS 的加密。
MongoDB 的 FIPS 支持涵盖了 MongoDB 使用 SSL/TLS 库进行网络加密、SCRAM 认证和 x.509 认证的方式。如果您使用 Kerberos 或 LDAP 认证,您必须确保这些外部机制符合 FIPS 标准。
注意
MongoDB在系统中禁用了 TLS 1.0 加密支持,如果系统中可用 TLS 1.1+。
平台支持
FIPS 模式仅在以下版本中可用MongoDB Enterprise 版本。请参阅安装 MongoDB Enterprise 下载并安装 MongoDB Enterprise.
FIPS 模式支持以下平台
平台 | TLS/SSL 库 |
---|---|
Linux | OpenSSL |
Windows | 安全通道 (SChannel) |
macOS | 安全传输 |
OpenSSL3 支持
从 MongoDB 6.0.7 版本开始,FIPS 模式支持以下操作系统的 OpenSSL3:
Ubuntu 22.04
RHEL 9
Amazon Linux 2023
从 MongoDB 8.0 版本开始,FIPS 模式支持 Amazon Linux 2023.3 的 OpenSSL3。
配置 FIPS
选择下面的标签以选择您的平台
先决条件
您的 Linux 系统必须配置了包含 FIPS 140-2 模块的 OpenSSL 库,以便支持 MongoDB 的 FIPS 模式。
通过运行以下命令验证您的 OpenSSL 软件是否包含 FIPS 支持:
openssl version 对于Red Hat Enterprise Linux 6.x(RHEL 6.x)或其衍生版本,如CentOS 6.x,要使用FIPS模式,OpenSSL工具包至少需要是以下版本:
openssl-1.0.1e-16.el6_5
。要在这些平台上升级OpenSSL库,请运行以下命令:sudo yum update openssl 某些Linux版本会定期执行一个进程,将动态库与预分配的地址进行预链接。此进程修改了OpenSSL库,特别是
libcrypto
库。随后,OpenSSL FIPS模式将失败启动时的签名检查,以确保libcrypto
自编译以来没有被修改。要配置Linux预链接进程不预链接
libcrypto
,请运行以下命令:sudo bash -c "echo '-b /usr/lib64/libcrypto.so.*' >>/etc/prelink.conf.d/openssl-prelink.conf"
一旦您已配置Linux系统以支持FIPS兼容操作,请按照以下步骤配置您的mongod
或mongos
实例以在FIPS模式下运行。
步骤
A. 配置MongoDB使用TLS/SSL
请参阅配置mongod
和mongos
以使用TLS/SSL以获取有关配置部署以使用TLS/SSL的详细信息。请确保您的证书符合FIPS规范。
B. 在FIPS模式下运行MongoDB实例
在配置 TLS/SSL的mongod和mongos 之后,执行以下步骤。
C. 确认 FIPS 模式正在运行
检查服务器日志文件以查找 FIPS 激活的消息
FIPS 140-2 mode activated
先决条件
Microsoft 为 Windows 10 和 Windows Server 2016 或更高版本提供了以下配置 FIPS 模式的资源
一旦您已将 Windows 系统配置为支持符合 FIPS 的操作,请按照以下步骤配置您的 mongod
或 mongos
实例以在 FIPS 模式下运行。
程序
A. 配置MongoDB使用TLS/SSL
请参阅配置mongod
和mongos
以使用TLS/SSL以获取有关配置部署以使用TLS/SSL的详细信息。请确保您的证书符合FIPS规范。
B. 以FIPS模式运行MongoDB实例
在配置 TLS/SSL的mongod和mongos 之后,执行以下步骤。
C. 确认 FIPS 模式正在运行
检查服务器日志文件以查找 FIPS 激活的消息
FIPS 140-2 mode activated
先决条件
macOS 的支持版本默认符合 FIPS 标准。请检查您版本的 macOS 文档以验证其合规性状态。例如,Apple 为 macOS 10.14 提供以下资源
在符合标准的 macOS 版本上,按照以下步骤配置您的 mongod
或 mongos
实例以在 FIPS 模式下运行。
步骤
A. 配置MongoDB使用TLS/SSL
请参阅配置mongod
和mongos
以使用TLS/SSL以获取有关配置部署以使用TLS/SSL的详细信息。请确保您的证书符合FIPS规范。
B. 以FIPS模式运行MongoDB实例
在配置 TLS/SSL的mongod和mongos 之后,执行以下步骤。
C. 确认FIPS模式正在运行
检查服务器日志文件以查找 FIPS 激活的消息
FIPS 140-2 mode activated
其他注意事项
SCRAM SHA 和 FIPS 模式
从 MongoDB 5.1 版本开始,在 FIPS 模式 运行的实例默认禁用了 SCRAM-SHA-1 认证机制。您可以使用 SCRAM-SHA-1 认证机制 命令 setParameter.authenticationMechanisms 启用。
此更改不会影响目标 MongoDB setFeatureCompatibilityVersion
4.0+ 的驱动程序。
如果您使用 SCRAM-SHA-1:
md5 是必需的,但不用于加密目的,
如果您使用 FIPS 模式,则使用 SCRAM-SHA-1 代替,使用
数据库工具和 FIPS 模式
以下程序不再支持 --sslFIPSMode
选项
mongod
、mongos
和 FIPS 模式
如果您将 mongod
和 mongos
配置为使用 FIPS 模式,则 mongod
和 mongos
将使用符合 FIPS 标准的连接。
MongoDB Shell 和 FIPS 模式
默认的 mongosh
发行版
MongoDB 还提供了一个 MongoDB Shell 发行版,它可以使用
服务器上安装的 OpenSSL 1.1 和 OpenSSL 3。
--tlsFIPSMode
选项,它启用了mongosh
的 FIPS 模式。