Overview
La Norma Federal de Procesamiento de Información (FIPS) es una norma de seguridad informática del gobierno de Estados Unidos utilizada para certificar módulos de software y librerías que cifran y descifran datos de manera segura. Puedes configurar MongoDB para que ejecute con una librería certificada FIPS 140-2 para OpenSSL. Configura FIPS para ejecutarlo de forma por defecto o según sea necesario desde la línea de comandos.
Una descripción completa de FIPS y TLS/SSL está más allá del alcance de este documento. Este tutorial asume conocimientos previos de FIPS y TLS/SSL.
Importante
MongoDB y FIPS
FIPS es una propiedad del sistema de cifrado y no del sistema de control de acceso. Sin embargo, si tu entorno requiere cifrado conforme a FIPS y control de acceso, debes asegurarte de que el sistema de control de acceso utilice únicamente cifrado conforme a FIPS.
El soporte de FIPS de MongoDB cubre cómo MongoDB utiliza las bibliotecas SSL/TLS para el cifrado de red, la autenticación SCRAM y la autenticación X.509. Si utilizas autenticación Kerberos o LDAP, debes asegurarte de que estos mecanismos externos cumplan con FIPS.
Nota
MongoDB deshabilita el soporte para el cifrado TLS 1.0 en sistemas donde TLS 1.1+ está disponible.
Soporte de plataforma
El modo FIPS solo está disponible con la edición MongoDB Enterprise. Ver Instala MongoDB Enterprise para descargar e instalar MongoDB Enterprise.
El modo FIPS es compatible con las siguientes plataformas:
Plataforma | Biblioteca TLS/SSL |
|---|---|
Linux | OpenSSL |
Windows | Canal seguro (SChannel) |
macOS | Transporte seguro |
Compatibilidad con OpenSSL3
A partir de MongoDB 6.0.7, La moda FIPS admite OpenSSL3 para los siguientes sistemas operativos:
Ubuntu 22.04
RHEL 9
Amazon Linux 2023
Configuración de FIPS
Seleccione la pestaña a continuación para su plataforma:
Requisitos previos
Su sistema Linux debe tener una librería OpenSSL configurada con el módulo FIPS 140-2 para soportar el modo FIPS en MongoDB.
Comprueba que tu software OpenSSL incluye soporte de FIPS ejecutando el siguiente comando:
openssl version Para Red Hat Enterprise Linux 6.x (RHEL 6.x) o sus derivados como CentOS 6.x, el kit de herramientas OpenSSL debe ser al menos la versión
openssl-1.0.1e-16.el6_5para utilizar el modo FIPS. Para actualizar la librería de OpenSSL en estas plataformas, ejecute el siguiente comando:sudo yum update openssl Algunas versiones de Linux ejecutan periódicamente un proceso para preenlazar librerías dinámicas con direcciones preasignadas. Este proceso modifica las bibliotecas de OpenSSL, específicamente
libcrypto. El modo FIPS de OpenSSL fallará posteriormente la verificación de la firma realizada al inicio para asegurar quelibcryptono se haya modificado desde la compilación.Para configurar el proceso de preenlace de Linux para que no preenlace
libcrypto, ejecute el siguiente comando:sudo bash -c "echo '-b /usr/lib64/libcrypto.so.*' >>/etc/prelink.conf.d/openssl-prelink.conf"
Una vez que haya configurado su sistema Linux para admitir la operación compatible con FIPS, siga los pasos a continuación para configurar su instancia de mongod o mongos para operar en modo FIPS.
Procedimiento
A. Configurar MongoDB para usar TLS/SSL
Consulte Configurar mongod y mongos para TLS/SSL para obtener más información sobre cómo configurar su implementación para usar TLS/SSL. Asegúrese de que su certificado sea compatible con FIPS.
B. Ejecute la instancia de MongoDB en modo FIPS
Realice estos pasos después de configurar mongod y mongos para TLS/SSL.
Cambiar el archivo de configuración.
Para configurar su instancia mongod o mongos para usar el modo FIPS, apague la instancia y actualice el archivo de configuración con la configuración de net.tls.FIPSMode:
net: tls: FIPSMode: true
Inicie la mongod instancia o con el mongos archivo de configuración.
Por ejemplo, ejecuta este comando para iniciar la instancia de mongod con su archivo de configuración:
mongod --config /etc/mongod.conf
C. Confirmar que el modo FIPS se está ejecutando
Consulte el archivo de registro del servidor para ver si aparece un mensaje que indique que FIPS está activo:
FIPS 140-2 mode activated
Requisitos previos
Microsoft proporciona el siguiente recurso sobre la configuración del modo FIPS para Windows 10 y Windows Server 2016 o posterior:
➤ Validación FIPS - 1402 en Windows
Una vez que haya configurado su sistema Windows para admitir el funcionamiento compatible con FIPS, siga los pasos a continuación para configurar su mongod instancia o mongos para que funcione en modo FIPS.
Procedimiento
A. Configurar MongoDB para usar TLS/SSL
Consulte Configurar mongod y mongos para TLS/SSL para obtener más información sobre cómo configurar su implementación para usar TLS/SSL. Asegúrese de que su certificado sea compatible con FIPS.
B. Ejecute la instancia de MongoDB en modo FIPS
Realice estos pasos después de configurar mongod y mongos para TLS/SSL.
Cambiar el archivo de configuración.
Para configurar su instancia mongod o mongos para usar el modo FIPS, apague la instancia y actualice el archivo de configuración con la configuración de net.tls.FIPSMode:
net: tls: FIPSMode: true
Inicie la mongod instancia o con el mongos archivo de configuración.
Por ejemplo, ejecuta este comando para iniciar la instancia de mongod con su archivo de configuración:
mongod.exe --config /etc/mongod.conf
C. Confirmar que el modo FIPS se está ejecutando
Consulte el archivo de registro del servidor para ver si aparece un mensaje que indique que FIPS está activo:
FIPS 140-2 mode activated
Requisitos previos
Las versiones compatibles de macOS son compatibles con FIPS por defecto. Consulta la documentación para tu versión de macOS a fin de verificar el estado de cumplimiento. Por ejemplo, Apple proporciona el siguiente recurso para macOS 10.14:
➤ Módulos criptográficos FIPS de Apple para 10.14
En versiones compatibles de macOS, siga los pasos a continuación para configurar su instancia mongod mongos o para que funcione en modo FIPS.
Procedimiento
A. Configurar MongoDB para usar TLS/SSL
Consulte Configurar mongod y mongos para TLS/SSL para obtener más información sobre cómo configurar su implementación para usar TLS/SSL. Asegúrese de que su certificado sea compatible con FIPS.
B. Ejecute la instancia de MongoDB en modo FIPS
Realice estos pasos después de configurar mongod y mongos para TLS/SSL.
Cambiar el archivo de configuración.
Para configurar su instancia mongod o mongos para usar el modo FIPS, apague la instancia y actualice el archivo de configuración con la configuración de net.tls.FIPSMode:
net: tls: FIPSMode: true
Inicie la mongod instancia o con el mongos archivo de configuración.
Por ejemplo, ejecuta este comando para iniciar la instancia de mongod con su archivo de configuración:
mongod --config /etc/mongod.conf
C. Confirmar que el modo FIPS se está ejecutando
Consulte el archivo de registro del servidor para ver si aparece un mensaje que indique que FIPS está activo:
FIPS 140-2 mode activated
Consideraciones adicionales
SCRAM SHA y Modo FIPS
A partir de MongoDB 5.1, las instancias que se ejecutan en modo FIPS tienen el mecanismo de autenticación SCRAM-SHA-1 desactivado por defecto. Puedes activar el mecanismo de autenticación SCRAM-SHA-1 con el setParameter.authenticationMechanisms comando.
Este cambio no afectará a los controladores destinados a MongoDB setFeatureCompatibilityVersion 4.0+.
Si utiliza SCRAM-SHA-1:
md5 es necesario pero no se utiliza para fines criptográficos, y
si utilizas modo FIPS, en vez de SCRAM-SHA-1 utiliza:
LDAP, o bien
mongod; mongos, y Moda FIPS
Si configura mongod mongos mongod y para usar el modo FIPS, y mongos usan conexiones compatibles con FIPS.
Herramientas de base de datos y modo FIPS
Los siguientes programas ya no admiten la opción --sslFIPSMode:
Si configura mongod y mongos para usar el modo FIPS, las herramientas de base de datos anteriores utilizan automáticamente conexiones compatibles con FIPS.
MongoDB Shell y modo FIPS
La mongosh distribución por defecto:
Contiene OpenSSL 3.
Usa conexiones compatibles con FIPS a
mongodymongossi configuramongodymongospara usar la moda FIPS.
MongoDB también proporciona una distribución de MongoDB Shell que puede usar:
OpenSSL 1.1 y OpenSSL 3 instalados en su servidor.
--tlsFIPSModeopción, que habilita el modo FIPS demongosh.
Tip
Para descargar distribuciones de MongoDB Shell que contengan OpenSSL 1.1 y OpenSSL 3, ve al Centro de descarga de MongoDB.