TLS/SSL
MongoDB soporta TLS/SSL (Transport Layer Security/Secure Sockets Layer) para encriptar todo el tráfico de red de MongoDB. TLS/SSL asegura que el tráfico de red de MongoDB solo sea legible por el cliente previsto.
Versiones de TLS
MongoDB deshabilita el soporte para el cifrado TLS 1.0 en sistemas donde TLS 1.1+ está disponible.
Bibliotecas TLS
MongoDB utiliza las librerías nativas de TLS/SSL OS:
Plataforma | Biblioteca TLS/SSL |
|---|---|
Windows | Canal seguro (Schannel) |
Linux/BSD | OpenSSL |
macOS | Transporte seguro |
Cifrados TLS/SSL
El cifrado TLS/SSL de MongoDB solo permite el uso de sólidos cifrados TLS/SSL con una longitud mínima de clave de 128 bits para todas las conexiones.
secreto directo
Los conjuntos de cifrado Forward Secrecy crean una clave de sesión efímera que está protegida por la llave privada del servidor, pero nunca se transmite. El uso de una clave efímera asegura que, incluso si la llave privada de un servidor se ve comprometida, no puedas descifrar sesiones pasadas con la clave comprometida.
MongoDB soporta suites de cifrado Forward Secrecy que usan los algoritmos Ephemeral Diffie-Hellman (DHE) y Ephemeral Elliptic Curve Diffie-Hellman (ECDHE).
Diffie-Hellman efímero de curva elíptica (ECDHE)
Plataforma | Nivel de soporte |
|---|---|
Linux | Si OpenSSL de la plataforma Linux admite la selección automática de curvas, MongoDB activa la compatibilidad para el intercambio efímero de claves mediante curva elíptica (ECDHE). De lo contrario, si la plataforma Linux no admite la selección automática de curva en OpenSSL, MongoDB intenta habilitar el soporte de ECDHE usando |
Windows | La curva elíptica efímera Diffie-Hellman (ECDHE) se respalda implícitamente mediante el uso de Secure Channel (Schannel), la biblioteca TLS/SSL nativa de Windows. |
macOS | Ephemeral Elliptic Curve Diffie-Hellman (ECDHE) es compatible implícitamente a través del uso de Secure Transport, la librería nativa TLS/SSL de macOS. |
Los conjuntos de cifrado ECDHE son más lentos que los conjuntos de cifrado RSA estáticos. Para un mejor rendimiento con ECDHE, puede usar certificados que utilicen el algoritmo de firma digital de curva elípticaECDSA (). Consulte también Rendimiento de confidencialidad directa para obtener más información.
Diffie-Hellman efímero (DHE)
Plataforma | Nivel de soporte |
|---|---|
Linux | MongoDB habilita el soporte para El cifrado efímero de Diffie-Hellman (DHE):
|
Windows | El protocolo Diffie-Hellman efímero (DHE) se respalda implícitamente mediante el uso de Secure Channel (Schannel), la biblioteca TLS/SSL nativa de Windows. |
macOS | El efímero Diffie-Hellman (DHE) es compatible implícitamente a través del uso de Secure Transport, la librería nativa de TLS/SSL de macOS. |
Nota
Si los clientes negocian una suite de cifrado con DHE pero no pueden aceptar el parámetro seleccionado por el servidor, la conexión TLS falla.
Parámetros estrictos (i.e. el tamaño es mayor que 1024) no son compatibles con Java 6 y 7 a menos que se haya adquirido soporte ampliado de Oracle. Sin embargo, Java 7 admite y prefiere ECDHE, por lo que negociará ECDHE si está disponible.
Los conjuntos de cifrado DHE (y ECDHE) tienen un rendimiento más lento que los conjuntos de cifrado RSA estáticos, siendo DHE significativamente más lento que ECDHE.Consulte Rendimiento de confidencialidad directa para obtener más información.
Desempeño de confidencialidad avanzada
Las suites de cifrado DHE y ECDHE son más lentas que las suites de cifrado estáticas RSA siendo DHE significativamente más lento que ECDHE.
Para un mejor rendimiento con ECDHE, puede utilizar certificados que empleen el Algoritmo de Firma Digital de Curva Elíptica (ECDSA). Alternativamente, puedes desactivar los cifrados ECDHE con el parámetro opensslCipherConfig, como en el siguiente ejemplo (que también desactiva DHE)
mongod --setParameter opensslCipherConfig='HIGH:!EXPORT:!aNULL:!kECDHE:!ECDHE:!DHE:!kDHE@STRENGTH'
Si necesita desactivar la compatibilidad con los conjuntos de cifrado DHE debido al rendimiento, puede utilizar el parámetro opensslCipherConfig, como en el siguiente ejemplo:
mongod --setParameter opensslCipherConfig='HIGH:!EXPORT:!aNULL:!DHE:!kDHE@STRENGTH'
Certificados
Para utilizar TLS/SSL con MongoDB, debe tener los certificados TLS/SSL como archivos PEM, que son contenedores de certificados concatenados.
MongoDB puede utilizar cualquier certificado TLS/SSL válido emitido por una autoridad certificadora o un certificado autofirmado. Para el uso en producción, tu implementación de MongoDB debe utilizar certificados válidos generados y firmados por la misma autoridad certificadora. Se puede generar y mantener una autoridad certificadora independiente o utilizar certificados generados por un proveedor externo de TLS/SSL.
El uso de un certificado firmado por una autoridad de certificación confiable permite a los controladores de MongoDB verificar la identidad del servidor.
Por ejemplo, vea Configuración de TLS/SSL para Clientes.
Advertencia de vencimiento de certificado
mongod / mongos genera un registro de advertencia en la conexión si el certificado X.509 presentado caduca dentro de 30 días a partir de la hora del sistema host mongod/mongos.
OCSP (Protocolo de estado de certificado en línea)
A partir de MongoDB,6.0 si se establece ocspEnabled en true durante la sincronización inicial, todos los nodos deben poder comunicarse con el respondedor OCSP.
Si un nodo falla en el estado STARTUP2, establezca tlsOCSPVerifyTimeoutSecs en un valor inferior a 5.
Para verificar la revocación de certificados, MongoDB enables el uso de OCSP (Online Certificate Status Protocol) por defecto. El uso de OCSP elimina la necesidad de descargar periódicamente una Certificate Revocation List (CRL) y reiniciar el mongod / mongos con la CRL actualizada.
Como parte de su soporte OCSP, MongoDB ofrece soporte para lo siguiente en Linux:
OCSP stapling. Con OCSP stapling, las instancias
mongodymongosadjuntan o "incorporan" la respuesta de estado OCSP a sus certificados al proporcionar estos certificados a los clientes durante el handshake TLS/SSL. Al incluir la respuesta de estado OCSP con los certificados, el OCSP incorporar elimina la necesidad de que los clientes realicen una solicitud independiente para recuperar el estado OCSP de los certificados proporcionados.Extensión must-staple de OCSP. OCSP must-staple es una extensión que se puede agregar al certificado del servidor que le indica al cliente que espere una OCSP staple cuando reciba un certificado durante el apretón de manos TLS/SSL.
MongoDB también proporciona los siguientes parámetros relacionados con OCSP:
Parameter | Descripción |
|---|---|
Habilita o deshabilita el soporte OCSP. | |
Especifica el número de segundos que se deben esperar antes de actualizar la respuesta de estado OCSP adherida. | |
Puedes establecer estos parámetros al inicio utilizando la configuración del archivo setParameter o la opción de la línea de comandos --setParameter.
Nota
A partir de MongoDB 5.0, el comando rotateCertificates y el método db.rotateCertificates() también actualizarán cualquier respuesta OCSP adjunta.
Verificación de identidad
Además de cifrar las conexiones, TLS/SSL permite la autenticación mediante certificados, tanto para la autenticación del cliente como para la autenticación interna de miembros de conjuntos de réplicas y clústeres fragmentados.
Para obtener más información, consulte:
Modo FIPS
Nota
Característica de la empresa
Disponible solamente en MongoDB Enterprise.
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.
Para ver un ejemplo, consulta Configurar MongoDB para FIPS.