Como o CSFLE descriptografa documentos
Nesta página
Esta página descreve como o CSFLE usa metadados do seu diretório de dados e da chave mestra do cliente para descriptografar dados.
Metadados usados para descriptografia
Quando você criptografa dados usando CSFLE, os dados criptografados são armazenados como um objeto BinData
subtipo 6 que inclui os seguintes metadados:
O
_id
do diretório de dados usado para criptografar os dadosO algoritmo de criptografia usado para criptografar os dados
O diretório de dados contém metadados que descrevem qual chave mestra do cliente foi usada para criptografá-las.
Os drivers e mongosh
usam esses metadados para tentar descriptografar automaticamente seus dados.
Processo de descriptografia automática
Para descriptografar automaticamente seus dados, seu cliente habilitado para CSFLE executa o seguinte procedimento:
Verifique os metadados blob do
BinData
do campo que você pretende descriptografar para a Chave de criptografia de dados e o algoritmo de criptografia usados para criptografar o valor.Verifique a collection de cofre de chaves configurada na conexão de reconhecimento de data center atual para o diretório de dados especificado. Se a collection de cofre de chaves não contiver a chave especificada, a descriptografia automática falhará e o driver retornará um erro.
Verifique os metadados da Chave de criptografia de dados para a Chave mestra do cliente (CMK) usada para criptografar o material da chave.
Descriptografe a chave de criptografia de dados. Este processo varia de acordo com o provedor de KMS:
Para o KMS da Amazon Web Services (AWS), envie o diretório de dados para sua instância do AWS KMS para descriptografia. Se a chave mestra do cliente não existir ou se a configuração da conexão não conceder acesso à chave mestra do cliente, a descriptografia falhará e o driver retornará o blob
BinData
criptografado.Dica
Para saber como usar o KMS do Amazon Web Services para criptografia automática, consulte Usar criptografia automática de nível de campo do lado do cliente com a AWS.
Para o Google Cloud Platform (GCP) KMS, envie a chave de criptografia de dados para sua instância do GCP KMS para descriptografia. Se a CMK não existir ou se a configuração de conexão não conceder acesso à CMK, a descriptografia falhará e o driver retornará o blob
BinData
criptografado.Dica
Para saber como usar o Google Cloud Platform KMS para criptografia automática, consulte Usar criptografia automática de nível de campo do lado do cliente com GCP.
Para o Azure Key Vault, envie a chave de criptografia de dados para a instância do Azure Key Vault para descriptografia. Se a CMK não existir ou se a configuração da conexão não conceder acesso à CMK, a descriptografia falhará e o driver retornará o blob
BinData
criptografado.Dica
Para saber como usar o Azure Key Vault para criptografia automática, consulte Usar criptografia automática em nível de campo do lado do cliente com Azure.
Para um KMS compatível com KMIP, recupere a CMK do KMS e use a CMK localmente para descriptografar a chave de criptografia de dados. Se a CMK não existir ou se a configuração de conexão não conceder acesso à CMK, a descriptografia falhará e o driver retornará o blob
BinData
criptografado.Dica
Para saber como usar um KMS compatível com KMIP para criptografia automática, consulte Usar criptografia automática em nível de campo do lado do cliente com KMIP.
Para um provedor de chave local, recupere a CMK do seu sistema de arquivos e use-a para descriptografar a chave de criptografia de dados. Se a chave local especificada na configuração do banco de dados de dados não tiver sido usada para criptografar a chave de criptografia de dados, a descriptografia falhará e o driver retornará o blob
BinData
criptografado.Aviso
Proteja seu arquivo de chave local em produção
Recomendamos armazenar suas chaves mestras do cliente em um sistema de gerenciamento de chavesremoto ( KMS ). Para saber como usar um KMS remoto na implementação do Queryable Encryption , consulte o guia Tutoriais .
Se você optar por usar um provedor de chaves local em produção, tenha muito cuidado e não o armazene no sistema de arquivos. Considere injetar a chave em seu aplicação cliente usando um processo secundário ou use outra abordagem que mantenha a chave segura.
Descriptografe o valor
BinData
usando a chave de criptografia de dados descriptografada e o algoritmo apropriado.
Os aplicativos com acesso ao servidor MongoDB que também não têm acesso ao CMK e às Chaves de criptografia de dados necessárias não podem descriptografar os valores BinData
.
Comportamento de leitura criptografada automaticamente
Para operações de leitura, o driver criptografa os valores de campo no documento de query usando seu esquema de criptografia antes de emitir a operação de leitura.
Em seguida, seu aplicativo cliente usa os metadados BinData
para descriptografar automaticamente o documento que você recebe do MongoDB.
Para saber mais sobre esquemas de criptografia, consulte Esquemas de criptografia.
Saiba mais
Para saber como configurar a conexão do banco de dados para criptografia de nível de campo do lado do cliente, consulte Opções do MongoClient para CSFLE.
Para saber mais sobre a relação entre chaves de encriptação de dados e chaves mestras de cliente, consulte Chaves de encriptação e Key Vaults.