Características
Nesta página
Visão geral
Nesta página, você pode aprender sobre os benefícios de segurança da criptografia no nível do campo do lado do cliente (CSFLE) e como o CSFLE se compara a outros mecanismos de segurança suportados pelo MongoDB. Você também pode visualizar um cenário fictício que demonstra o valor do CSFLE na proteção de seus dados.
Criptografia no nível de campo do cliente
A criptografia no nível de campo do lado do cliente (CSFLE) é um recurso do MongoDB que permite que um aplicativo cliente criptografe dados antes de transportá-los pela rede. Os dados confidenciais são criptografados e descriptografados de forma transparente pelo cliente e só são comunicados de e para o servidor de forma criptografada. O CSFLE mantém os campos criptografados seguros nos seguintes cenários:
Acesso direto a campos criptografados por um superusuário do banco de dados
Acesso a campos criptografados a partir da leitura da memória do servidor
Captura de campos criptografados em uma rede insegura
Acesso a campos criptografados em disco por meio da leitura de arquivos de banco de dados ou de backup
Enquanto todos os clientes têm acesso aos campos de dados não confidenciais, somente clientes CSFLE configurados adequadamente podem ler e gravar os campos de dados criptografados.
Importante
Sistema de gerenciamento remoto de chaves
Ao usar o CSFLE em produção, você deve usar um sistema de gerenciamento de chaves (KMS) remoto para armazenar sua chave de criptografia.
Para ver um guia passo a passo que demonstra como usar um KMS remoto com CSFLE, consulte Tutoriais.
Para ver uma lista de todos os provedores de KMS suportados, consulte Provedores de KMS CSFLE.
Para saber mais sobre por que você deve usar um KMS remoto, consulte Motivos para usar um Sistema de Gerenciamento de Chaves Remotas.
Considerações de segurança
A CSFLE não fornece nenhuma garantia de integridade criptográfica contra adversários com acesso à sua Chave Mestra do Cliente ou Chaves de Criptografia de Dados.
O CSFLE não oferece nenhuma garantia de integridade criptográfica contra adversários com acesso arbitrário de gravação a coleções que contêm dados criptografados.
O MongoDB usa validação de esquema para impor a criptografia de campos específicos em uma coleção. Sem um esquema do lado do cliente, o cliente faz download do esquema do lado do servidor para que a coleção determine quais campos criptografar. Para evitar esse problema, use a validação de esquema do lado do cliente.
Como o CSFLE não fornece um mecanismo para verificar a integridade de um esquema, confiar em um esquema do lado do servidor significa confiar que o esquema do servidor não foi adulterado. Se um adversário comprometer o servidor, ele poderá modificar o esquema para que um campo previamente criptografado não seja mais rotulado para criptografia. Isso faz com que o cliente envie valores de texto sem formatação para esse campo.
Para ver um exemplo de configuração do CSFLE para esquemas do lado do cliente e do lado do servidor, consulte a página Aplicação da criptografia em nível de campo do lado do servidor do CSFLE.
Outros mecanismos de segurança
Esta seção descreve os seguintes mecanismos de segurança compatíveis com o MongoDB e explica seus casos de uso e limitações:
Controle de acesso com base em função
O controle de acesso com base em função é um mecanismo de segurança que permite aos administradores conceder e restringir permissões de nível de coleção para os usuários. Com a definição e atribuição de funções adequadas, esta solução evita a divulgação acidental de dados e acesso.
O controle de acesso baseado em funções não pode proteger contra os seguintes cenários:
Captura dos dados em uma rede insegura
Acesso a dados no disco por meio da leitura de arquivos do banco de dados ou de backup
Acesso aos dados lendo a memória do servidor
Acesso direto aos dados por um superusuário do banco de dados
Para saber mais, consulte Controle de acesso baseado em funções.
Criptografia em descanso
A criptografia em descanso é um mecanismo que criptografa arquivos de banco de dados em disco. Esse mecanismo impede que uma pessoa que não tenha credenciais de banco de dados, mas tenha acesso ao computador que hospeda seu banco de dados, visualize seus dados.
Esse mecanismo não protege seus dados contra os seguintes cenários:
Captura dos dados em uma rede insegura
Acesso aos dados lendo a memória do servidor
Acesso direto aos dados por um superusuário do banco de dados
Para saber mais, consulte a página Criptografia em descanso.
Criptografia de transporte (TLS/SSL)
A criptografia de transporte usando TLS/SSL criptografa seus dados pela rede. O TLS/SSL protege seus dados enquanto eles trafegam por uma rede insegura, mas não pode proteger seus dados de um usuário privilegiado ou quando eles ficam no disco.
Para saber mais, consulte Criptografia de transporte usando TLS/SSL
Comparação de recursos
O diagrama a seguir lista os recursos de segurança compatíveis com o MongoDB e as possíveis vulnerabilidades de segurança que eles abordam:
Importante
Use os mecanismos juntos
Para proteger uma implantação de produção, use o controle de acesso baseado em funções, a criptografia em descanso, a criptografia de transporte e, opcionalmente, os mecanismos de segurança da criptografia em uso juntos. Observe que não é possível usar o CSFLE e o Queryable Encryption para criptografar campos diferentes na mesma collection.
Para saber mais sobre o Queryable Encryption, consulte Recursos do Queryable Encryption.
Cenário
O cenário fictício a seguir demonstra o valor da criptografia no nível do campo do lado do cliente (CSFLE) na proteção dos dados do seu aplicativo e como o CSFLE interage com o outro mecanismo de segurança discutido neste guia.
Nesse cenário, protegemos dados confidenciais em um sistema de gerenciamento de consultas médicas que armazena informações pessoais de pacientes, informações de seguros e registros médicas para uma empresa fictício, a MedicoMD. Nenhum dos dados dos pacientes é público, e dados específicos, como o número do seguro social (SSN, um ID emitido pelo governo dos EUA), o número da apólice de seguro e as medições de sinais normais são particularmente sensíveis e sujeitos à conformidade com a privacidade. É importante para a empresa e para o doente que os dados sejam mantidos em privado e seguros.
A MedcoMD precisa desse sistema para atender aos seguintes casos de uso:
Os consultas usam o sistema para acessar os registros médicas dos pacientes, informações sobre seguros e adicionar novas medições de sinais fatais.
Recepcionistas usam o sistema com o objetivo de verificar a identidade dos pacientes a partir dos dados para contato forncecidos por eles.
Os refeitórios podem visualizar o provedor da apólice de seguro de um cliente, mas não o número da apólice.
Recepcionistas não podem acessar os registros médicos de um paciente.
A MedcoMD também se preocupa com a divulgação de dados confidenciais por meio de qualquer um dos seguintes métodos:
Divulgação acidental de dados na tela de um recepcionista que pode ser vista publicamente.
Acesso direto ao banco de dados por um superusuário, como um administrador de banco de dados.
Captura de dados através de uma rede insegura.
Acesso a campos criptografados a partir da leitura da memória do servidor do banco de dados
Acesso a dados por meio da leitura de arquivos do banco de dados ou arquivos de backup.
O que a MedcoMD pode fazer para criar equilíbrio entre funcionalidade e restrições de acesso no sistema de gerenciamento de cuidados médicos da empresa?
várias plataformas
MedcoMD usa os seguintes mecanismos de segurança para satisfazer seus casos de uso e proteger contra a divulgação de dados médicos sensíveis:
Criptografia de transporte (TLS/SSL) para proteger os dados enquanto trafegam pela rede.
Criptografia em repouso para proteger contra a liberação de dados por meio da leitura de arquivos do banco de dados ou de backup.
Controle de acesso com base em função para limitar o acesso dos usuários de banco de dados às coleções necessárias para que executem suas tarefas.
Criptografando campos confidenciais com CSFLE para satisfazer os seguintes casos de uso e restrições:
Impedir a leitura de dados do servidor da memória do servidor, pois os dados criptografados CSFLE nunca estão no reconhecimento de data center do servidor de forma não criptografada.
Permita que os receptadores verifiquem as identidades dos pacientes e evite a abertura acidental de dados confidenciais em uma tela visível publicamente de um requisitor, fornecendo aos receptadores um cliente que não é habilitado para CSFLE.
Permita que os métodos visualizem dados confidenciais de forma privada em seus consultórios, fornecendo aos pacientes um cliente habilitado para CSFLE.
Saiba mais
Para ver uma lista de medidas de segurança que você deve implementar para proteger sua implantação do MongoDB, consulte a Lista de verificação de segurança.
Para começar a usar o CSFLE, consulte o Início Rápido.