DEV Community

Leandro Domingues
Leandro Domingues

Posted on • Edited on

3 1

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

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay