MongoDB Client-Side Field Level Encryption
Tags: mongodb, csfle, segurançadedados, criptografia
Published: 2024-03-05 17:27:08

---
title: MongoDB Client-Side Field Level Encryption
published: true
description: 
tags: mongodb, csfle, segurançadedados, criptografia
# cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vxtmi0kr6uq2lrzyrdat.png
# Use a ratio of 100:42 for best results.
# published_at: 2024-03-05 17:21 +0000
---
### 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
- [Documentação Oficial](https://www.mongodb.com/docs/manual/core/csfle/quick-start/?utm_campaign=devrel&utm_source=community&utm_medium=champion&utm_term=leandro&utm_content=field_level_encryption)
- [Mastering MongoDB 7.0](https://www.amazon.com/Mastering-MongoDB-7-0-excellence-unlocking/dp/183546047X/?_encoding=UTF8&pd_rd_w=inAgB&content-id=amzn1.sym.c3314f77-20fc-4bcf-a8e9-f0c47346c9da%3Aamzn1.symc.50e00d6c-ec8b-42ef-bb15-298531ab4497&pf_rd_p=c3314f77-20fc-4bcf-a8e9-f0c47346c9da&pf_rd_r=V02F3C4N6EXHKRCBBK88&pd_rd_wg=SgKxT&pd_rd_r=a01eedfe-6d37-4a69-8c49-18d8ea56b94f&ref_=pd_gw_ci_mcx_mr_hp_atf_m&utm_campaign=devrel&utm_source=community&utm_medium=champion&utm_term=leandro&utm_content=mastering_mongodb)