Menu Docs
Página inicial do Docs
/
Manual 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

A partir do MongoDB 8.0, o MongoDB é compatível com OpenSSL 3.0 e com o provedor OpenSSLFIPS para Amazon Linux 2023.3.

O MongoDB desabilita o suporte para criptografia TLS 1.0 em sistemas em que 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

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.

Windows
O Ephemeral Elliptic Curve Diffie-Hellman (ECDHE) é implicitamente suportado através do uso do Secure Channel (Schannel), a biblioteca nativa TLS/SSL do Windows.
macOS
O Ephemeral Elliptic Curve Diffie-Hellman (ECDHE) tem suporte implícito por meio do uso do Secure Transport, a biblioteca nativa TLS/SSL do 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 utilizar certificados que utilizam 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

O MongoDB permite suporte para Diffie-Hellman efêmero (DHE):

  • Se o opensslDiffieHellmanParameters estiver configurado na inicialização (independentemente de o ECDHE estar habilitado ou desabilitado).

  • Caso contrário, se o parâmetro opensslDiffieHellmanParameters não estiver definido, mas se ECDHE estiver habilitado, o MongoDB habilita DHE utilizando o ffdhe3072 parâmetro , como definido em RFC-7919#appendix-A.2.

Windows
O Ephemeral Diffie-Hellman (DHE) é implicitamente suportado pelo uso do Secure Channel (Schannel), a biblioteca nativa do Windows TLS/SSL.
macOS
O Ephemeral Diffie-Hellman (DHE) é tem suporte implícito 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.

Os conjuntos de cifra DHE (e ECDHE) são de desempenho mais lento que os conjuntos de codificação RSA estáticos, 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.

O mongod / mongos registra um aviso na conexão se o certificado x.509 apresentado expirar dentro de 30 dias do horário do sistema host mongod/mongos.

A partir do MongoDB 6.0, se ocspEnabled estiver definido como true durante a sincronização inicial, 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 usa o 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.

Como parte de seu suporte a OCSP, o MongoDB é compatível com o seguinte no Linux:

  • Grampeamento OCSP. Com o grampeamento OCSP, as instâncias mongod e mongos anexam ou "grampeiam" a resposta de status OCSP aos seus certificados ao fornecer esses certificados aos clientes durante o handshake TLS/SSL. Ao incluir a resposta de status OCSP com os certificados, o grampeamento OCSP evita a necessidade de os clientes fazerem uma solicitação separada para recuperar o status OCSP dos certificados fornecidos.

  • Extensão must-staple do OCSP. Must-staple OCSP é uma extensão que pode ser adicionada ao certificado do servidor que informa ao cliente para esperar um grampo OCSP quando ele recebe um certificado durante o handshake TLS/SSL.

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.

Voltar

Girar chaves