Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

TLS/SSL (Criptografia de transporte)

Nesta página

  • TLS/SSL
  • Cifras TLS/SSL
  • Certificados
  • Verificação de identidade
  • Modo FIPS

O MongoDB suporta TLS/SSL (Transport Layer Security/Secure Sockets Layer) para criptografar todo o tráfego de rede do MongoDB. TLS/SSL garante que o tráfego de rede do MongoDB seja legível apenas pelo cliente pretendido.

A partir do MongoDB 7.0 e 6.0.7, O MongoDB suporta OpenSSL 3,0 e o provedor OpenSSL FIPS com estes sistemas operacionais:

  • Red Hat Enterprise Linux 9

  • Amazon Linux 2023

  • Ubuntu linux 22.04

O MongoDB desabilita o suporte para TLS 1. Criptografia 0 em sistemas onde o TLS 1.1+ está disponível.

O MongoDB usa as bibliotecas de sistemas operacionais TLS/SSL nativas:

PLATAFORMA
Biblioteca TLS/SSL
Windows
Secure Channel (Schannel)
Linux/BSD
OpenSSL
macOS
Secure Transport

A criptografia TLS/SSL do MongoDB só permite o uso de cifras TLS/SSL fortes com um mínimo de 128 bits de comprimento de chave para todas as conexões.

Os conjuntos de criptografia Forward Secrecy criam uma chave de sessão efêmera que é protegida pela chave privada do servidor, mas nunca é transmitida. O uso de uma chave efêmera garante que, mesmo que a chave privada de um servidor seja comprometida, você não pode descriptografar sessões passadas com a chave comprometida.

O MongoDB suporta conjuntos de cifras Forward Secrecy que usam algoritmos Ephemeral Diffie-Hellman (DHE) e Ephemeral Elliptic Curve Diffie-Hellman (ECDHE).

PLATAFORMA
Nível de suporte
Linux

Começando na versão 4,2

  • Se o OpenSSL da plataforma Linux suporta seleção automática de curva, o MongoDB permite o suporte para Ephemeral Elliptic Curve Diffie-Hellman (ECDHE).

  • Caso contrário, se o OpenSSL da plataforma Linux não suportar seleção automática de curva, o MongoDB tentará ativar o suporte ECDHE utilizando prime256v1 como a curva nomeada.

A partir de 3.6.14 e 4.0.3

  • MongoDB habilita suporte para curva elíptica efêmera Diffie-Hellman (ECDHE) se, durante o tempo de compilação, o Linux O OpenSSL da plataforma suportar seleção automática de curvas.

Observação

Se o suporte para ECDHE estiver habilitado, o MongoDB 4.2+ tenta ativar o suporte para Diffie-Hellman Efêmero (DHE) se o Diffie-Hellman Efêmero (DHE) não estiver explicitamente ativado. Consulte DHE (Diffie-Hellman Efêmero) para obter detalhes.

Windows
A partir da versão 4.0, o Ephemeral Elliptic Curve Diffie-Hellman (ECDHE) é implicitamente suportado por meio do uso do Secure Channel (Schannel), a biblioteca nativa de TLS/SSL do Windows.
macOS
A partir da versão 4,0, o Ephemeral Elliptic Curve Diffie-Hellman (ECDHE) é implicitamente suportado através do uso do Secure Transport, a biblioteca nativa de TLS/SSL macOS.

As suítes de cifra ECDHE são mais lentas que as suítes de cifra RSA estáticas. Para um melhor desempenho com o ECDHE, você pode usar certificados que usam o algoritmo de assinatura digital de curva elíptica (ECDSA). Consulte também Desempenho do sigilo de encaminhamento para obter mais informações

PLATAFORMA
Nível de suporte
Linux

A partir da versão 4.2: o MongoDB habilita o suporte para Efêmero Diffie-Hellman (DHE):

Para as versões 3,6 e 4,0, o MongoDB permite o suporte para Diffie-Hellman efemeral (DHE):

Windows
A partir da versão 4.0, o Ephemeral Diffie-Hellman (DHE) é implicitamente suportado através do uso do Secure Channel (Schannel), a biblioteca nativa TLS/SSL do Windows.
macOS
A partir da versão 4.0, o Ephemeral Diffie-Hellman (DHE) é implicitamente suportado através do uso do Secure Transport, a biblioteca nativa de TLS/SSL macOS.

Observação

Se os clientes negociarem um conjunto de cifras com DHE, mas não puderem aceitar o parâmetro selecionado do servidor, a conexão TLS falhará.

Parâmetros fortes (ou seja, o tamanho é maior que 1024) não são suportados com Java 6 e 7, a menos que o suporte estendido tenha sido adquirido de Oráculo. No entanto, o Java 7 suporta e prefere ECDHE, assim como negocie ECDHE, se disponível.

As suítes de codificação DHE (e ECDHE) são de desempenho mais lento que as suítes de codificação RSA estáticas, com DHE sendo significativamente mais lento que ECDHE. Consulte Desempenho do sigilo de encaminhamento para obter mais informações.

As suítes de codificação DHE e ECDHE são mais lentas do que as suítes de codificação RSA estáticas, com DHE sendo significativamente mais lento que ECDHE.

Para um melhor desempenho com o ECDHE, você pode usar certificados que usam o algoritmo de assinatura digital de curva elíptica (ECDSA). Alternativamente, você pode desabilitar conjuntos de cifras ECDHE com o parâmetro opensslCipherConfig como no exemplo seguinte (que também desabilita DHE)

mongod --setParameter opensslCipherConfig='HIGH:!EXPORT:!aNULL:!kECDHE:!ECDHE:!DHE:!kDHE@STRENGTH'

Se você precisar desabilitar o suporte para conjuntos de cifras DHE devido ao desempenho, você poderá utilizar o parâmetro opensslCipherConfig, como no seguinte exemplo:

mongod --setParameter opensslCipherConfig='HIGH:!EXPORT:!aNULL:!DHE:!kDHE@STRENGTH'

Para usar TLS/SSL com MongoDB, você deve ter os certificados TLS/SSL como arquivos PEM, que são contêineres de certificados concatenados.

O MongoDB pode usar qualquer certificado TLS/SSL válido emitido por um certificado autoridade ou um certificado autoassinado. Para uso em produção, sua implementação do MongoDB deve usar certificados válidos gerados e assinados pela mesma autoridade de certificação. Você pode gerar e manter uma autoridade de certificação independente ou usar certificados gerados por um fornecedor de TLS/SSL de terceiros.

Usar um certificado assinado por uma autoridade certificadora confiável permite Drivers MongoDB para verificar a identidade do servidor.

Por exemplo, consulte configuração TLS/SSL para clientes.

mongod / mongos registra um aviso na conexão se o x for apresentado. O certificado 509 expira dentro 30 dias a partir da hora do sistema host mongod/mongos . Consulte x.509 trigger de certificados próximos da expiração para obter mais informações.

A partir do MongoDB 6.0, se ocspEnabled estiver definido como true durante a initial sync, todos os nós deverão ser capazes de alcançar o respondente OCSP .

Se um membro falhar no estado STARTUP2, defina tlsOCSPVerifyTimeoutSecs como um valor menor que 5.

Para verificar a revogação do certificado, o MongoDB enables o uso do OCSP (Online Certificate Status Protocol) por padrão. O uso do OCSP elimina a necessidade de baixar periodicamente um Certificate Revocation List (CRL) e reiniciar o mongod / mongos com a CRL atualizada.

Nas versões 4.0 e 4.2, o uso do OCSP está disponível somente pelo uso do system certificate store no Windows ou macOS.

Como parte de seu suporte a OCSP, o MongoDB suporta o seguinte no Linux:

O MongoDB também fornece os seguintes parâmetros relacionados ao OCSP:

Parâmetro
Descrição
Habilita ou desabilita o suporte do OCSP.
Especifica o número de segundos de espera antes de atualizar a resposta de status do OCSP grampeada.
Especifica o número máximo de segundos que a instância mongod / mongos deve aguardar para receber a resposta de status OCSP para seus certificados.
Especifica o número máximo de segundos que o mongod / mongos deve aguardar a resposta do OCSP ao verificar certificados de cliente.

Você pode definir esses parâmetros na inicialização usando a configuração do arquivo de configuração setParameter ou a opção de linha de comando --setParameter.

Observação

A partir do MongoDB 5.0, o comando rotateCertificates e o método db.rotateCertificates() também atualizarão todas as respostas OCSP grampeadas.

Além de criptografar conexões, o TLS/SSL permite a autenticação usando certificados, tanto para autenticação de cliente quanto para autenticação interna de membros de conjunto de réplicas e réplicas fragmentadas.

Para mais informações, veja:

Observação

Funcionalidade de empresas

Disponível apenas no MongoDB Enterprise.

O Federal Information Processing Standard (FIPS) é um padrão de segurança de computadores do governo dos EUA usado para certificar módulos de software e bibliotecas que criptografam e descriptografam dados com segurança. Você pode configurar o MongoDB para ser executado com uma biblioteca certificada FIPS 140-2 para OpenSSL. Configure o FIPS para ser executado por padrão ou conforme necessário na linha de comando.

Para obter um exemplo, consulte configurar MongoDB para FIPS.

← Girar chaves de criptografia