DEV Community

Leandro Domingues
Leandro Domingues

Posted on • Edited on

MongoDB Client-Side Field Level Encryption

Overview

Fala pessoALL, hoje venho trazer um overview de uma feature super interessante do ponto de vista de segurança e proteção de dados no MongoDB: o Client-Side Field Level Encryption (CSFLE).

Apresentado originalmente na versão 4.2, o CSFLE vem evoluindo a cada nova versão e recentemente trouxe grandes avanços. Mas o que realmente ele faz e como pode nos auxiliar? Vejamos a seguir alguns pontos.

O CSFLE está para compor juntos com outros recursos a camada de segurança do MongoDB (Autenticação, Autorização, Criptografia em Repouso e em Trânsito) e atua especificamente nos campos de uma collection criptografando os dados antes do transporte pela rede entre o cluster da base de dados e os servidores de aplicação. Com este recurso os dados estarão protegidos em diversos cenários como:

  • Captura do tráfego em uma rede não protegida (sem a utilização de TLS)
  • Dumping / leitura dos dados na memória do servidor
  • Acesso diretamente ao disco lendo arquivos da base de dados ou arquivos de backup
  • E até mesmo sendo um usuário com altos privilégios que não tenha as chaves de criptografia

Isso se dá porque o processo de criptografia é feito no cliente que utiliza um Key Management System (KMS) responsável por armazenar a chave de criptografia, dessa maneira os dados de campos sensíveis nunca serão armazenados em texto plano.

Entre as soluções de mercado cloud-based estão:

  • Amazon Web Services KMS
  • Azure Key Vault
  • Google Cloud KMS

Para utilização local podemos utilzar qualquer KMIP compatível, e para ambientes de testes podemos utilizar o que chamamos de Local Key Provider.

Vantagens do CSFLE

  • Segurança refinada: Protege seus dados confidenciais contra ataques e violações de segurança.
  • Conformidade com regulamentações: Facilita a conformidade com diversas normas e leis que exigem a proteção de dados confidenciais.
  • Maior controle: Permite definir quais campos devem ser criptografados e qual nível de criptografia usar.
  • Desempenho otimizado: A criptografia é realizada no lado do cliente, minimizando o impacto no desempenho do servidor.

Casos de uso do CSFLE

  • Armazenamento de informações de clientes: Nomes, endereços, números de telefone, etc.
  • Dados financeiros: Números de cartão de crédito, dados bancários, etc.
  • Informações de saúde: Registros médicos, históricos de saúde, etc.
  • Dados confidenciais de negócios: Propriedade intelectual, segredos comerciais, etc.

Começando com CSFLE

Adotar o uso do CSFLE em sua base de dados é relativamente simples devido a compatibilidade com os drivers suportados pelo MongoDB. Nesta série de artigos a intenção é demonstrar a utilização do CSFLE em uma aplicação de exemplo em Python com o AWS KMS. Fique ligado nos próximos posts!

Referências

Top comments (0)