Overview
Puedes usar el driver Rust para cifrar campos específicos de un documento a través de un conjunto de funcionalidades llamado encriptación en uso. El cifrado en uso permite que tu aplicación cifre los datos antes de enviarlos a MongoDB y consulte documentos con campos cifrados.
Advertencia
MongoDB 8.2 Problema conocido
Versión 8.2.0 de mongocryptd Puede que no se ejecute en Windows. Este error afecta el cifrado en uso con el controlador si se especifica el argumento --logpath NUL al iniciar mongocryptd.
Para aprender más sobre este problema y cómo resolverlo, consulte Problemas conocidos en MongoDB 8.2 notas de versión.
El cifrado en uso impide que los usuarios no autorizados vean datos en texto sin formato mientras se envían a MongoDB o mientras están en una base de datos cifrada. Para habilitar la encriptación en uso en una aplicación y autorizarla a descifrar datos, debes crear llaves de cifrado a las que solo tu aplicación pueda acceder. Solo las aplicaciones que tengan acceso a tus llaves de cifrado pueden acceder a los datos desencriptados en texto plano. Si un atacante obtiene acceso a la base de datos, solo puede ver los datos cifrados porque no tiene acceso a las claves de cifrado.
Puedes utilizar el encriptación en uso para cifrar campos en tus documentos de MongoDB que contienen los siguientes tipos de datos sensibles:
Números de tarjetas de crédito
Direcciones
Información de salud
Información financiera
Cualquier otra información sensible o identificable personalmente (PII)
MongoDB ofrece las siguientes funcionalidades para habilitar el cifrado en uso:
Queryable Encryption
Queryable Encryption es la funcionalidad de cifrado de última generación en uso, que se introdujo por primera vez como funcionalidad en vista previa en MongoDB Server versión 6.0 y como funcionalidad generalmente disponible (GA) en MongoDB 7.0. La Queryable Encryption permite buscar la igualdad de los campos cifrados y cifra cada valor de manera única.
Importante
La funcionalidad de vista previa no es compatible con MongoDB 7.0
La implementación de Queryable Encryption en MongoDB 6.0 es incompatible con la versión GA introducida en MongoDB 7.0. La funcionalidad de vista previa de Queryable Encryption ya no es compatible.
Para obtener más información sobre Queryable Encryption, vea Queryable Encryption en el manual de MongoDB Server.
Encriptación a nivel de campo
El cifrado a nivel de campo del lado del cliente (CSFLE) admite la búsqueda de campos cifrados por igualdad. CSFLE difiere de Queryable Encryption en que puedes seleccionar, ya sea un algoritmo de cifrado determinista o aleatorio para cifrar campos. Cuando utilices CSFLE, solo podrás query campos cifrados que utilicen un algoritmo de cifrado determinista. Cuando utiliza un algoritmo de cifrado aleatorio para cifrar campos en CSFLE, pueden ser descifrados, pero no se pueden realizar consultas de igualdad en esos campos. Cuando utilices Queryable Encryption, no podrás especificar el algoritmo de cifrado, pero sí podrás consultar todos los campos cifrados.
Cuando cifras un valor de manera determinista, el mismo valor de entrada produce el mismo valor de salida. Si bien el cifrado determinista te permite realizar consultas en esos campos cifrados, los datos cifrados con baja cardinalidad son susceptibles a la ruptura de códigos mediante el análisis de frecuencia.
Tip
Para obtener más información sobre estos conceptos, consulta las siguientes entradas de Wikipedia:
Para obtener más información sobre CSFLE, consulta CSFLE en el manual del servidor de MongoDB.