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

Como o CSFLE descriptografa documentos

Nesta página

  • Metadados usados para descriptografia
  • Processo de descriptografia automática
  • Comportamento de leitura criptografada automaticamente
  • Saiba mais

Esta página descreve como o CSFLE usa metadados do seu diretório de dados e da chave mestra do cliente para descriptografar dados.

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 dados

  • O 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.

Para descriptografar automaticamente seus dados, seu cliente habilitado para CSFLE executa o seguinte procedimento:

  1. 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.

  2. 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.

  3. Verifique os metadados da Chave de criptografia de dados para a Chave mestra do cliente (CMK) usada para criptografar o material da chave.

  4. 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.

  5. 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 .

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.

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.

Voltar

Componentes