Escrito por Daniel Leite,
5 minutos de leitura
MongoDB: Garantindo a segurança dos dados com criptografia
Proteja seus dados no MongoDB com criptografia, escolha a melhor abordagem e armazene chaves com segurança para garantir proteção.
O MongoDB é um banco de dados NoSQL extremamente reconhecido por sua escalabilidade e flexibilidade. Além de suas vantagens estruturais, ele oferece uma gama robusta de ferramentas para garantir a segurança dos dados. Uma das principais preocupações ao lidar com informações confidenciais é a criptografia.
Neste artigo, exploraremos as diferentes formas de criptografar dados no MongoDB, abordando a criptografia em segurança, em trânsito e a criptografia de campos.
Criptografia em Repouso (At Rest)
A criptografia em segurança protege os dados armazenados no disco, impedindo que arquivos do banco de dados sejam copiados ou acessados sem autorização. Sem a chave de criptografia, os dados permanecem inacessíveis, tornando essa uma camada essencial de segurança.
Um ponto de vulnerabilidade pode surgir em arquivos de log, especialmente em consultas lentas registradas no log. Para mitigar esse risco, o parâmetro redactClientLogData pode ser configurado para criptografar dados sensíveis no log, adicionando uma proteção extra.
Como funciona:
- Chaves de criptografia: O MongoDB utiliza chaves de criptografia para cifrar os dados antes de armazená-los;
- Armazenamento seguro das chaves: As chaves são armazenadas de forma segura e separada dos dados, podendo ser um arquivo de chave em disco ou armazenada em um servidor KMS (Key Management System);
- Desempenho: Pode impactar ligeiramente o desempenho;
- Licenciamento: A criptografia em repouso está disponível somente na versão Enterprise.
Criptografia em Trânsito (In Transit)
A criptografia no trânsito protege os dados durante a transmissão entre o cliente e o servidor do MongoDB, evitando interceptações durante a comunicação. Em ambientes legados, a criptografia pode ser configurada de forma opcional, minimizando impactos nas aplicações existentes.
Como funciona:
- SSL/TLS: O MongoDB suporta o protocolo SSL/TLS para criptografar a comunicação entre o cliente e o servidor;
- Configuração do Servidor: O MongoDB precisa ser configurado para usar TLS, especificando o caminho para o certificado e a chave privada;
- Configuração do Cliente: O driver do MongoDB utilizado pelo cliente precisa ser configurado para usar TLS e especificar o servidor, a porta e o certificado do servidor;
- Desempenho: A criptografia em trânsito pode adicionar um pequeno overhead de desempenho, mas o impacto geralmente é insignificante;
- Modo FIPS: Na versão Enterprise, o MongoDB pode ser configurado para operar em modo FIPS 140-2, que define requisitos para módulos criptográficos.
Criptografia de Campos (Field Encryption)
A criptografia de campos permite proteger informações específicas dentro de um documento, como senhas ou números de cartão de crédito, sem a necessidade de criptografar o documento inteiro. Isso é particularmente útil para dados sensíveis que requerem proteção granular.
Tipos de Criptografia de Campos:
- Automática: O MongoDB pode criptografar automaticamente campos com base em um esquema de criptografia pré-configurado. Essa funcionalidade está disponível apenas na versão Enterprise;
- Manual: Você pode criptografar e descriptografar campos manualmente usando as APIs do MongoDB.
Quando usar a criptografia:
- Dados sensíveis: Ideal para proteger dados como senhas, números de cartão de crédito e informações de identificação pessoal;
- Conformidade: Ajuda a cumprir requisitos de conformidade, como GDPR e PCI DSS.
- Facilidade de uso: A configuração automática simplifica o processo de criptografia em sistemas legados.