Criptografia em execução
Visão geral
Você pode usar o Java 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 criptografados.
Importante
Versão compatível da biblioteca de criptografia
O driver Java utiliza o mongodb-crypt do biblioteca de criptografia para criptografia em uso. Esta versão do driver é compatível com mongodb-crypt
v5.2.0.
Selecione a partir das seguintes abas Maven e Gradle para ver como adicionar a dependência do mongodb-crypt
ao seu projeto utilizando o gerenciador especificado:
<dependencies> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-crypt</artifactId> <version>5.2.0</version> </dependency> </dependencies>
dependencies { implementation 'org.mongodb:mongodb-crypt:5.2.0' }
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
A Queryable Encryption é o recurso de criptografia em uso da próxima geração, introduzido pela primeira vez como um recurso de pré-visualização no MongoDB Server versão 6.0 e como um recurso geralmente disponível (GA) no MongoDB 7.0. Queryable Encryption oferece suporte à pesquisa de campos criptografados em busca de igualdade e criptografa cada valor de forma exclusiva.
Importante
Visualizar recursos incompatíveis com MongoDB 7.0
A implementação da Queryable Encryption no MongoDB 6.0 é incompatível com a versão GA introduzida no MongoDB 7.0. A funcionalidade de visualização da Queryable Encryption não é mais compatível.
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) foi introduzida na versão 4.2 do Servidor MongoDB e oferece suporte à busca de igualdade em campos criptografados. O CSFLE difere da Queryable Encryption porque você pode selecionar um algoritmo de criptografia determinístico ou aleatório para criptografar campos. Você só pode consultar campos criptografados que usam um algoritmo de criptografia determinístico ao usar o CSFLE. Quando você usa um algoritmo de criptografia aleatório para criptografar campos no CSFLE, eles podem ser descriptografados, mas não é possível executar query de igualdade nesses campos. Ao usar a Queryable Encryption, você não pode especificar o algoritmo de criptografia, mas pode consultar todos os campos criptografados.
Quando você criptografa deterministicamente um valor, o mesmo valor de entrada produz o mesmo valor de saída. Enquanto a criptografia determinística permite que você execute queries nesses campos criptografados, os dados criptografados com baixa cardinalidade são suscetíveis à quebra de código por análise de frequência.
Dica
Para saber mais sobre esses conceitos, consulte as seguintes entradas na Wikipedia:
Para saber mais sobre CSFLE, consulte CSFLE no manual do servidor.