Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.

Criptografia em execução

Você pode usar o driver .NET/C# para criptografar campos específicos do documento usando um conjunto de recursos chamado criptografia em execução. A criptografia em execução permite que sua aplicação criptografe os dados antes de enviá-los ao MongoDB e query documento com campo criptografado.

Aviso

MongoDB 8.2 Problema conhecido

Em plataformas Windows, você não pode executar a versão 8.2.0 do mongocryptd com os argumentos de desativação padrão. Para evitar esse problema, você deve iniciar manualmente o processo mongocryptd e especificar o argumento --logpath. Como alternativa, use a Biblioteca compartilhada de criptografia automática em vez de mongocryptd.

Para saber mais sobre esse problema e como resolvê-lo, consulte Problemas conhecidos no MongoDB 8.2 Notas de versão.

Importante

O estágio $rerank não é compatível com clientes configurados para criptografia automática usando criptografia no nível do campo do lado do cliente ou Queryable Encryption. Um pipeline que contém $rerank falha com um erro como Unrecognized pipeline stage name: '$rerank'.

A limitação se aplica a todas as collections, incluindo collections que não têm campos criptografados, e ao uso de $rerank dentro de subpipelines como $unionWith.

A criptografia em uso impede que usuários não autorizados visualizem dados em texto simples à medida que são enviados ao MongoDB ou enquanto estão em um banco de dados criptografado. Para ativar a Criptografia em execução em uma aplicação e autorizá-la a descriptografar dados, você deve criar chaves de encriptação que somente sua aplicação possa acessar. Somente aplicativos que têm acesso às suas chaves de criptografia podem acessar os dados descriptografados em texto simples. Se um invasor obtiver acesso ao banco de dados, ele só poderá ver os dados de texto cifrado criptografados porque não tem acesso às chaves de encriptação.

Você pode usar criptografia em uso para criptografar campos em seus documentos MongoDB que contêm os seguintes tipos de dados confidenciais:

  • Números de cartão de crédito

  • Endereços

  • Informação de saúde

  • Informações financeiras

  • Qualquer outra informação sensível ou pessoalmente identificável (PII)

O MongoDB oferece os seguintes recursos para habilitar a criptografia em uso:

Queryable Encryption (QE) é um recurso de criptografia em execução que oferece suporte à consulta de valores de campo criptografados de forma exclusiva, incluindo consultas de igualdade, faixa, prefixo, sufixo e substring. O suporte a query de faixa requer o MongoDB Server 8.0 ou posterior. O suporte a query de prefixo, sufixo e substring requer o MongoDB Server 9.0 ou posterior.

A tabela a seguir lista os métodos do driver .NET/C# e os operadores equivalentes do MongoDB Server para query de prefixo, sufixo e substring:

Método de driver .NET/C#
Descrição
Operador de MongoDB Server

EncStrStartsWith()

Retorna true se os primeiros caracteres de um valor string corresponderem aos caracteres na string especificada.

EncStrEndsWith()

Retorna true se os últimos caracteres de um valor de string corresponderem aos caracteres na string especificada.

EncStrContains()

Retorna true se qualquer subconjunto de caracteres em um valor de string corresponder aos caracteres na string especificada.

EncStrNormalizedEq()

Retorna true se um valor de string normalizado corresponder à versão de string normalizada da string especificada.

Para saber mais sobre Queryable Encryption, consulte Queryable Encryption no manual do Servidor.

A criptografia no nível do campo do lado do cliente (CSFLE) oferece suporte à pesquisa de igualdade em campos criptografados. O MongoDB Server versão 4.2 introduziu o CSFLE.

Ao contrário do QE, o CSFLE exige que você selecione um algoritmo de criptografia para cada campo, e essa escolha determina se você pode executar query no campo. A criptografia determinística sempre produz o mesmo valor de saída para o mesmo valor de entrada. Como os valores correspondentes parecem iguais após a criptografia, você pode executar query de igualdade nesses campos. A criptografia aleatória produz um valor de saída diferente cada vez que criptografado o mesmo valor de entrada. Os driver podem descriptografar esses campo, mas você não pode fazer query deles.

A criptografia determinística troca um pouco de confidencialidade pelo suporte a query. Quando um campo criptografado tem baixa cardinalidade, um invasor pode comparar a frequência com que cada valor criptografado aparece e inferir os valores originais. Essa técnica é chamada de análise de frequência. Para proteger campos que você não consulta, use a criptografia aleatória.

Dica

Para saber mais sobre esses conceitos, consulte as seguintes entradas na Wikipedia:

Para saber mais sobre CSFLE, consulte CSFLE no manual do servidor.