Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Referencia
/ / /

Cómo CSFLE descifra documentos

Esta página describe cómo CSFLE utiliza metadatos de tu llave de cifrado de datos y llave maestra de cliente para descifrar datos.

Cuando encriptas datos utilizando CSFLE, los datos que encriptas se almacenan como un BinData objeto de subtipo 6 que incluye los siguientes metadatos:

  • El _id de la llave de cifrado de datos utilizada para cifrar los datos

  • El algoritmo de cifrado utilizado para cifrar los datos.

Las llaves de cifrado de datos contienen metadatos que describen qué llave maestra de cliente se utilizó para cifrarlas.

Los controladores y utilizan estos metadatos para intentar descifrar automáticamente sus mongosh datos.

Para descifrar automáticamente tus datos, tu cliente habilitado para CSFLE realiza el siguiente procedimiento:

  1. Verifique los metadatos de blobs BinData del campo que pretende descifrar para la clave de cifrado de datos y el algoritmo de cifrado utilizados para cifrar el valor.

  2. Verifica la Colección de Bóvedas de Llaves configurada en la conexión actual de la base de datos para la llave de cifrado de datos especificada. Si la Colección de Bóvedas de Llaves no contiene la clave especificada, la descifrado automático falla y el driver devuelve un error.

  3. Verifica los metadatos de la llave de cifrado de datos para la llave maestra de cliente (CMK) utilizada para cifrar el material clave.

  4. Descifrar la clave de cifrado de datos. Este proceso varía según el proveedor de KMS:

    Para Amazon Web Services (AWS) KMS, envía la llave de cifrado de datos a tu instancia de AWS KMS para el descifrado. Si la llave maestra de cliente no existe o si la configuración de la conexión no otorga acceso a la llave maestra de cliente, la descifrado falla y el driver devuelve el blob BinData cifrado.

    Tip

    Para aprender a utilizar Amazon Web Services KMS para el cifrado automático, consulte Usar cifrado automático a nivel de campo del lado del cliente con AWS.

    Para el KMS de Google Cloud Platform (GCP), envía la clave de cifrado de datos a tu instancia de KMS de GCP para descifrarla. Si la llave maestra de cliente no existe o si la configuración de la conexión no otorga acceso a la llave maestra de cliente, la descifrado falla y el driver devuelve el blob BinData cifrado.

    Tip

    Para aprender a usar Google Cloud Platform KMS para el cifrado automático, consulta Utiliza el cifrado automático a nivel de campo del lado del cliente con GCP.

    Para Azure Key Vault, envíe la clave de cifrado de datos a su instancia de Azure Key Vault para su descifrado. Si la CMK no existe o si la configuración de conexión no permite el acceso a ella, el descifrado falla y el controlador devuelve el BinData blob cifrado.

    Tip

    Para aprender cómo usar Azure Key Vault para el cifrado automático, consulta Usa el cifrado automático a nivel de campo del lado del cliente con Azure.

    Para una KMS compatible con KMIP, recupere la llave maestra de cliente de la KMS y luego utilice la llave maestra de cliente localmente para descifrar la clave de cifrado de datos. Si la llave maestra de cliente no existe o si la configuración de la conexión no otorga acceso a la llave maestra de cliente, la descifrado falla y el driver devuelve el blob BinData cifrado.

    Tip

    Para aprender a usar un KMS compatible con KMIP para cifrado automático, consulta Usa el cifrado automático a nivel de campo del lado del cliente con KMIP.

    Para un proveedor de claves local, recupera la llave maestra de cliente de tu sistema de archivos y úsala para descifrar la clave de cifrado de datos. Si la clave local especificada en la configuración de la base de datos no se utilizó para cifrar la clave de cifrado de datos, el descifrado falla y el driver devuelve el blob cifrado BinData.

    Advertencia

    No utilizar el proveedor de clave local en producción

  5. Descifra el valor BinData usando la Llave de cifrado de datos descifrada y el algoritmo adecuado.

Las aplicaciones con acceso al servidor de MongoDB que no también tengan acceso a la CMK requerida y a las claves de cifrado de datos no podrán descifrar los valores de BinData.

Para las operaciones de lectura, el controlador cifra los valores de campo en el documento de consulta utilizando su esquema de cifrado antes de emitir la operación de lectura.

Tu aplicación cliente utiliza los metadatos de BinData para descifrar automáticamente el documento que recibes de MongoDB.

Para obtener más información sobre los esquemas de cifrado, consulte Esquemas de cifrado.

Para saber cómo configurar la conexión a la base de datos para el cifrado a nivel de campo del lado del cliente, consulte Opciones específicas de MongoClient para CSFLE.

Para obtener más información sobre la relación entre llave de cifrado de datos y llave maestra de cliente, consulta Claves y almacenes de claves.

Volver

Componentes

En esta página