Visão geral
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
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 |
|---|---|---|
| Retorna | |
| Retorna | |
| Retorna | |
| Retorna |
Para saber mais sobre Queryable Encryption, consulte Queryable Encryption no manual do Servidor.
Criptografia no nível de campo no lado do cliente
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.