Docs Menu
Docs Home
/ /
/ / /

Cómo CSFLE descifra documentos

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

Cuando encripta datos usando CSFLE, los datos que encripta 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 claves de cifrado de datos contienen metadatos que describen qué clave maestra del cliente se utilizó para cifrarlos.

Conductores y mongosh Utilice estos metadatos para intentar descifrar automáticamente sus datos.

Para descifrar automáticamente sus datos, su 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. Compruebe la colección de Key Vault configurada en la conexión de base de datos actual para la clave de cifrado de datos especificada. Si la colección de Key Vault no contiene la clave especificada, el descifrado automático falla y el controlador 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íe la clave de cifrado de datos a su instancia de AWS KMS para su descifrado. Si la CMK no existe o si la configuración de la conexión no permite el acceso a ella, el descifrado falla y el controlador devuelve el BinData blob 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íe la clave de cifrado de datos a su instancia de GCP KMS para su descifrado. Si la CMK no existe o si la configuración de la conexión no permite el acceso a ella, el descifrado falla y el controlador devuelve el BinData blob cifrado.

    Tip

    Para aprender a usar Google Cloud Platform KMS para el cifrado automático, consulte Usar 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 a usar Azure Key Vault para el cifrado automático, consulte Usar el cifrado automático a nivel de campo del lado del cliente con Azure.

    Para un KMS compatible con KMIP, recupere la CMK del KMS y úsela localmente para descifrar la clave de cifrado de datos. Si la CMK no existe o si la configuración de la conexión no permite el acceso a ella, el descifrado falla y el controlador devuelve el BinData blob cifrado.

    Tip

    Para aprender a utilizar un KMS compatible con KMIP para el cifrado automático, consulte Usar cifrado automático a nivel de campo del lado del cliente con KMIP.

    Para un proveedor de claves local, recupere la CMK de su sistema de archivos y úsela para descifrar la clave de cifrado de datos. Si no se utilizó la clave local especificada en la configuración de la base de datos para cifrar la clave de cifrado de datos, el descifrado falla y el controlador devuelve el blob BinData cifrado.

    Advertencia

    Proteja su archivo de clave local en producción

    Le recomendamos almacenar sus llaves maestras de cliente en un sistema de gestión de llaves remoto (KMS). Para aprender a usar un KMS remoto en su implementación de cifrado consultable, consulte la guía Tutoriales de cifrado consultable.

    Si decide usar un proveedor de claves local en producción, tenga mucho cuidado y no lo almacene en el sistema de archivos. Considere inyectar la clave en su aplicación cliente mediante un proceso sidecar o utilice otro método que la mantenga segura.

  5. Descifre el valor BinData utilizando la clave de cifrado de datos descifrada y el algoritmo apropiado.

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.

Luego, su aplicación cliente utiliza los metadatos BinData para descifrar automáticamente el documento que recibe de MongoDB.

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

Para aprender a configurar la conexión de la base de datos para el cifrado a nivel de campo del lado del cliente, consulte Opciones de MongoClient para CSFLE.

Para obtener más información sobre la relación entre las claves de cifrado de datos y las claves maestras del cliente, consulte Claves de cifrado y bóvedas de claves.

Volver

Componentes de cifrado CSFLE

En esta página