Docs Menu
Docs Home
/ /

Elección de un enfoque de cifrado en uso

MongoDB ofrece dos enfoques para Cifrado en uso: Cifrado consultable y cifrado a nivel de campo del lado del cliente (CSFLE). Al usar cualquiera de estos métodos, también puede elegir entre cifrado automático y explícito.

Tanto el cifrado consultable como el cifrado a nivel de campo del lado del cliente (CSFLE) permiten que una aplicación cliente cifre datos antes de transportarlos por la red. El cliente cifra y descifra los datos confidenciales de forma transparente, y solo se comunican hacia y desde el servidor de forma cifrada.

Para comparar las características en detalle, consulte Características de cifrado consultables y Características CSFLE.

Al implementar una aplicación que utiliza cifrado consultable o CSFLE, revise las consideraciones de seguridad en esta sección.

Para conocer las limitaciones de cada enfoque, consulte Limitaciones del cifrado consultable o Limitaciones de CSFLE.

Para conocer la compatibilidad de la versión del controlador y del servidor MongoDB,consulte Compatibilidad.

  • CSFLE y el cifrado consultable no ofrecen ninguna garantía contra adversarios con acceso a su clave maestra de cliente y sus claves de cifrado de datos.

  • CSFLE y Queryable Encryption no ofrecen ninguna garantía contra adversarios con acceso de escritura arbitrario a colecciones que contienen datos cifrados.

  • MongoDB utiliza la validación de esquemas para forzar el cifrado de campos específicos de una colección. Sin un esquema del lado del cliente, el cliente descarga el esquema del lado del servidor de la colección para determinar qué campos cifrar. Para evitar este problema, utilice la validación de esquemas del lado del cliente.

    Dado que CSFLE y el cifrado consultable no proporcionan un mecanismo para verificar la integridad de un esquema, confiar en un esquema del servidor implica confiar en que el esquema del servidor no ha sido manipulado. Si un adversario compromete el servidor, puede modificar el esquema para que un campo previamente cifrado ya no esté etiquetado para cifrado. Esto hace que el cliente envíe valores de texto sin formato para ese campo.

    Para obtener un ejemplo de configuración de CSFLE para esquemas del lado del cliente y del servidor, consulte Aplicación de cifrado a nivel de campo del lado del servidor de CSFLE.

Puede usar el cifrado consultable, el cifrado a nivel de campo del lado del cliente o ambos en su aplicación. Sin embargo, no puede usar ambos enfoques en la misma colección.

Considere utilizar el cifrado consultable en los siguientes escenarios:

  • Está desarrollando una nueva aplicación y desea utilizar los últimos avances criptográficos de MongoDB.

  • Se espera que los usuarios ejecuten consultas de rango, prefijo, sufijo o subcadena en datos cifrados.

  • Su aplicación puede utilizar una única clave para un campo determinado, en lugar de requerir claves separadas por usuario o por inquilino.

Hay situaciones en las que CSFLE puede ser una solución preferible:

  • Su aplicación ya utiliza CSFLE.

  • Necesita usar claves diferentes para el mismo campo. Esto es común al separar inquilinos o usar claves específicas de usuario.

  • Debe ser flexible con su esquema de datos y, potencialmente, agregar más campos cifrados. Agregar campos cifrados para el cifrado consultable requiere reconstruir las colecciones e índices de metadatos.

El cifrado consultable admite consultas de igualdad y rango en campos numéricos o de fecha cifrados.

La compatibilidad con consultas de prefijo, sufijo y subcadena en campos de cadena cifrados está en versión preliminar pública. Puede configurar estas consultas para que no distingan entre mayúsculas y minúsculas y así garantizar la coincidencia de diferentes representaciones de la misma cadena.

El cifrado a nivel de campo del lado del cliente admite consultas de igualdad en campos cifrados de forma determinista.

Para obtener más información sobre los operadores de consulta compatibles, consulte Operadores de consulta compatibles para cifrado consultable y Operadores de consulta compatibles para CSFLE. Para ver la lista completa de operadores de consulta de MongoDB, consulte Predicados de consulta.

Tanto el cifrado consultable como el cifrado a nivel de campo del lado del cliente utilizan AEADAlgoritmo256de cifrado AES- -CBC en modo autenticado para el cifrado.Consulte Primitivas criptográficas para obtener más información.

El algoritmo de cifrado para cifrado consultable utiliza cifrado aleatorio basado en cifrado estructurado, que produce diferentes valores de salida cifrados a partir de la misma entrada.

Para obtener información detallada sobre el enfoque de MongoDB para el cifrado consultable, consulte los documentos técnicos Descripción general del cifrado consultable y Diseño y análisis de un esquema de cifrado de base de datos de documentos sin estado.

El algoritmo de cifrado CSFLE admite tanto el cifrado aleatorio como el determinista. Sin embargo, solo permite consultar campos cifrados deterministamente. Con el cifrado determinista, un valor de entrada siempre se cifra con el mismo valor de salida.

MongoDB cifra las consultas tanto con el Cifrado Consultable como con el Cifrado a Nivel de Campo del Cliente, de modo que el servidor no tenga información sobre documentos de texto sin cifrar ni valores de consulta. Con el Cifrado Consultable, las consultas privadas van un paso más allá y redactan registros y metadatos para depurar la información sobre la existencia de la consulta. Esto garantiza una mayor privacidad y confidencialidad.

Recomendamos el cifrado automático en la mayoría de las situaciones, ya que agiliza el proceso de creación de la aplicación cliente. Con el cifrado automático, MongoDB cifra y descifra automáticamente los campos en las operaciones de lectura y escritura.

El cifrado explícito proporciona un control preciso de la seguridad, a costa de una mayor complejidad al configurar colecciones y escribir código para los controladores MongoDB. Con el cifrado explícito, se especifica cómo cifrar los campos del documento para cada operación que se realiza en la base de datos e incluye esta lógica en toda la aplicación.

Para obtener más detalles, consulte Cifrado explícito con cifrado consultable o Cifrado explícito con CSFLE.

Volver

Encriptación en uso

En esta página