Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

Escolher uma abordagem de criptografia em uso

Nesta página

  • Sobre Queryable Encryption e CSFLE
  • Considerações
  • Considerações de segurança
  • Uso de Queryable Encryption e CSFLE
  • Consultando campos criptografados
  • Algoritmos de criptografia
  • Query privada
  • Escolher entre criptografia automática e explícita
  • Como usar criptografia automática
  • Usando criptografia explícita

O MongoDB oferece duas abordagens para o criptografia em execução em execução : Queryable Encryption para Query e criptografia de nível de campo do lado do cliente (CSFLE). Ao usar qualquer abordagem, você também pode escolher entre criptografia explícita.

Tanto a Queryable Encryption quanto a CSFLE (Criptografia de Nível de Campo do Lado do Cliente) permitem que um aplicativo cliente criptografe os 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.

Para comparar os recursos em detalhes, consulte Recursos de Queryable Encryption e Recursos de CSFLE.

Ao implementar um aplicação que usa Queryable Encryption ou CSFLE, revise as considerações de segurança nesta seção.

Para ver as limitações de cada abordagem, consulte Limitações da Queryable Encryption ou Limitações do CSFLE.

Para compatibilidade de servidor MongoDB e versão do driver, consulte Compatibilidade.

  • O CSFLE e a Queryable Encryption não oferecem nenhuma garantia contra invasores com acesso à sua chave mestra do cliente e às chaves de criptografia de dados.

  • O CSFLE e a Queryable Encryption não fornecem nenhuma garantia contra invasores com acesso arbitrário de gravação a collections contendo 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 e a Queryable Encryption não fornecem um mecanismo para verificar a integridade de um esquema, depender de um esquema do lado do servidor significa confiar que o esquema do servidor não foi adulterado. Se um invasor comprometer o servidor, ele poderá modificar o esquema para que um campo criptografado anteriormente não seja mais rotulado como criptografado. Isso faz com que o cliente envie valores de texto simples 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.

Você pode usar Queryable Encryption, Client-Side Field Level Encryption ou ambas em seu aplicativo. No entanto, você não pode usar as duas abordagens na mesma coleção.

Considere usar a Queryable Encryption nos seguintes cenários:

  • Você está desenvolvendo um novo aplicativo e deseja usar os mais recentes progressos criptográficos do MongoDB.

  • Você espera que os usuários executem queries de intervalo, prefixo, sufixo ou substring em dados criptografados.

  • Seu aplicativo pode usar uma única chave para um determinado campo, em vez de exigir chaves separadas por usuário ou por locatário.

Existem situações em que o CSFLE pode ser uma solução preferível:

  • Seu aplicativo já usa CSFLE.

  • Você precisa usar chaves diferentes para o mesmo campo. Isso é comumente encontrado ao separar locatários ou usar chaves específicas do usuário.

  • Você precisa ser flexível com seu esquema de dados e potencialmente adicionar mais campos criptografados. Adicionar campos criptografados para a Queryable Encryption requer a reconstrução de collections e índices de metadados.

Queryable Encryption oferece suporte a queries de igualdade e faixa em campos criptografados. O suporte para queries de prefixo, sufixo e substring com Queryable Encryption está em desenvolvimento.

A criptografia no nível do campo do lado do cliente oferece suporte a queries de igualdade em campos criptografados deterministicamente.

Para obter mais informações sobre os operadores de query, consulte Operadores de query compatíveis com Queryable Encryption e Operadores de query compatíveis com CSFLE. Para obter a lista completa de operadores de query do MongoDB, consulte Operadores de query e projeção.

O novo algoritmo de criptografia para Queryable Encryption usa criptografia aleatória com base em criptografia estruturada, que produz diferentes valores de saída criptografados a partir da mesma entrada.

Para obter informações detalhadas sobre a abordagem do MongoDB para a Queryable Encryption, consulte a Visão geral da Queryable Encryption e design e análise de um esquema de criptografia de banco de dados de documentos sem estado whitepapers.

O algoritmo de criptografia CSFLE suporta criptografia aleatória e criptografia determinística. No entanto, ele só suporta a consulta de campos criptografados deterministicamente. Com a criptografia determinística, um determinado valor de entrada sempre criptografa para o mesmo valor de saída.

O MongoDB criptografa queries para Queryable Encryption e Client-Side Field Level Encryption para que o servidor não tenha informações sobre documentos de texto não criptografado ou valores de query. Com o Queryable Encryption, a query privada vai um passo além e edita logs e metadados para limpar informações sobre a existência da query. Isso garante privacidade e confidencialidade mais fortes.

Recomendamos a criptografia automática na maioria das situações, pois ela agiliza o processo de escrita do seu aplicativo cliente. Com a criptografia automática, o MongoDB criptografa e descriptografa automaticamente campos em operações de leitura e gravação.

A criptografia explícita fornece controle refinado sobre a segurança, ao custo de maior complexidade ao configurar collections e escrever código para os drivers do MongoDB. Com a criptografia explícita, você especifica como criptografar campos em seu documento para cada operação executada no banco de dados e inclui essa lógica em todo o aplicativo.

Para obter detalhes, consulte Criptografia explícita com Queryable Encryption ou Criptografia explícita com CSFLE.

Voltar

Criptografia em execução