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.
Metadatos utilizados para el descifrado
Cuando encripta datos usando CSFLE, los datos que encripta se almacenan como un BinData objeto de subtipo 6 que incluye los siguientes metadatos:
El
_idde la llave de cifrado de datos utilizada para cifrar los datosEl 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.
Proceso de descifrado automático
Para descifrar automáticamente sus datos, su cliente habilitado para CSFLE realiza el siguiente procedimiento:
Verifique los metadatos de blobs
BinDatadel campo que pretende descifrar para la clave de cifrado de datos y el algoritmo de cifrado utilizados para cifrar el valor.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.
Verifica los metadatos de la llave de cifrado de datos para la llave maestra de cliente (CMK) utilizada para cifrar el material clave.
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
BinDatablob 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
BinDatablob 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
BinDatablob 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
BinDatablob 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
BinDatacifrado.Advertencia
No utilice el proveedor de claves local en producción
El proveedor de claves local es un método de almacenamiento inseguro y no se recomienda para producción. En su lugar, debe almacenar sus claves maestras de cliente en un sistema de gestión de claves remoto. (KMS).
Para aprender a utilizar un KMS remoto en su implementación de CSFLE, consulte la guía de tutoriales de CSFLE.
Descifre el valor
BinDatautilizando 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.
Comportamiento de lectura cifrado automáticamente
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.
Obtén más información
Para aprender a configurar la conexión de base de datos para el cifrado de nivel de campo del lado del cliente, consulte Opciones de MongoClient específicas de 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 y bóvedas de claves.