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
/ /

Elección de un enfoque de cifrado en uso

MongoDB ofrece dos enfoques para encriptación en uso: Queryable Encryption y cifrado a nivel de campo del lado del cliente (CSFLE). Al utilizar cualquiera de los dos enfoques, puedes elegir entre encriptación automática o cifrado explícito.

Tanto Queryable Encryption como el cifrado a nivel de campo del lado del cliente (CSFLE) permiten que una aplicación cliente cifre los datos antes de transportarlos a través de la red. Los datos confidenciales son cifrados y descifrados de forma transparente por el cliente y solo se comunican hacia y desde el servidor en forma cifrada.

Para comparar las características en detalle, consulta Queryable Encryption Features y CSFLE Features.

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

Para conocer las limitaciones de cada enfoque, consulte Queryable Encryption limitations o CSFLE limitations.

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

  • CSFLE y Queryable Encryption no proporcionan ninguna garantía contra adversarios que tengan acceso a tu llave maestra de cliente y tus llaves de cifrado de datos.

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

  • MongoDB utiliza la validación de esquema para aplicar el cifrado de campos específicos en una colección. Sin un esquema del lado del cliente, el cliente descarga el esquema del lado del servidor para la colección, a fin de determinar qué campos va a 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 ver un ejemplo de configuración de CSFLE para esquemas del lado del cliente y del servidor, consulta CSFLE de cumplimiento de cifrado a nivel de campo del lado del servidor.

Puedes utilizar Queryable Encryption, cifrado a nivel de campo del lado del cliente, o ambos en tu aplicación. Sin embargo, no puedes usar ambos enfoques en la misma colección.

Considera utilizar Queryable Encryption en los siguientes escenarios:

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

  • Esperas que los usuarios realicen consultas de rango, prefijo, sufijo o subcadena sobre 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.

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

  • Tu aplicación ya utiliza CSFLE.

  • Debes utilizar diferentes claves para el mismo campo. Esto suele ocurrir al separar tenants o al usar llaves específicas de usuario.

  • Necesitas ser flexible con tu esquema de datos y, potencialmente, agregar más campos cifrados. Agregar campos cifrados para Queryable Encryption requiere reconstruir las colecciones de metadatos e índices.

Queryable Encryption soporta consultas de igualdad y rango en campos numéricos cifrados o campos de fecha cifrados.

El soporte para queries de prefijo, sufijo y subcadena en campos de string cifrados está en vista previa pública. Puedes configurar estas consultas para la asimilación de diacríticos o la insensibilidad a mayúsculas y minúsculas para garantizar que diferentes representaciones de la misma string coincidan.

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 del query soportados, consulta Operadores del query soportados para Queryable Encryption y Operadores del query soportados para CSFLE. Para la lista completa de operadores del query de MongoDB, consulta Predicados de query.

Tanto el Queryable Encryption como el cifrado por campos del lado del cliente utilizan el AEAD Algoritmo de cifrado AES-256-CBC en modo autenticado para realizar el cifrado. Vea 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 Queryable Encryption, consulta el Resumen del Queryable Encryption y Diseño y análisis de un esquema de cifrado para bases de datos sin estado documentos técnicos.

El algoritmo de encriptación CSFLE admite tanto el cifrado aleatorio como el cifrado determinista. Sin embargo, solo admite la consulta de campos que están cifrados de forma determinística. Con cifrado determinista, un valor de entrada dado siempre se cifra al mismo valor de salida.

MongoDB cifra las queries para Queryable Encryption y cifrado a nivel de campo del lado del cliente para que el servidor no tenga información sobre valores de documento o query en texto claro. Con Queryable Encryption, las queries privadas van un paso más allá y enmascaran los registros y metadatos para eliminar información sobre la existencia de la query. Esto garantiza una mayor privacidad y confidencialidad.

Recomendamos el cifrado automático en la mayoría de las situaciones, ya que simplifica el proceso de escribir tu 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