Un volcado de la base de datos no expone nada.

Los datos personales de cada usuario se cifran en reposo con claves específicas de cada inquilino que nunca llegan a la base de datos. Una credencial de almacenamiento filtrada o una copia de seguridad robada solo produce texto cifrado — ni correos electrónicos, ni nombres, ni números de teléfono.

Cómo funciona

  • El cifrado ocurre fuera de la base de datos. Los valores se cifran y descifran mediante HashiCorp Vault Transit — la aplicación nunca posee el material de las claves, y la base de datos nunca ve una clave.
  • Cada inquilino tiene su propia clave. Al eliminar un inquilino se destruye criptográficamente su clave, dejando todos los datos de ese inquilino permanentemente irrecuperables — sin necesidad de un borrado fila por fila.
  • AES-256-GCM aleatorizado protege cada valor, de modo que entradas idénticas nunca producen el mismo texto cifrado.

Cifrado, y aun así buscable

El cifrado normalmente implica renunciar a la búsqueda. Aquí no. Junto a cada valor cifrado almacenamos tokens de "blind index" con HMAC de clave secreta — de modo que el inicio de sesión por correo electrónico, la búsqueda de administrador por nombre y "todos en acme.com" funcionan como búsquedas exactas y por prefijo sobre datos que nunca se almacenan en texto claro. Las claves del índice también son HMACs: un volcado de las tablas de índice tampoco revela nada.

Qué está protegido

Direcciones de correo electrónico, nombres y apellidos, números de teléfono, nombres de empresas y cualquier atributo personalizado que almacenes — todo cifrado en reposo. Las contraseñas nunca se almacenaron de forma reversible (se protegen con hash unidireccional mediante un KDF moderno). Las asignaciones de roles, los ID opacos y las marcas de tiempo no son datos personales y se dejan en texto claro para que el sistema siga siendo operable.

La amenaza contra la que diseñamos

El escenario es una credencial de almacenamiento filtrada o una copia de seguridad expuesta — alguien obtiene una copia sin procesar de las tablas. El cifrado transparente a nivel de disco (con claves gestionadas por el cliente) no ayuda en ese caso: se descifra automáticamente para cualquier cosa que pueda leer el almacén, así que un volcado sale en texto claro. El cifrado a nivel de aplicación sí ayuda — las claves residen en Vault, aisladas de los datos, de modo que una copia de las tablas es una copia de texto cifrado.

También en tránsito

Los datos se cifran en tránsito (TLS 1.2+) además de en reposo. Con gusto explicamos nuestros controles de seguridad a clientes empresariales bajo un NDA.

Reportar una vulnerabilidad

¿Encontraste algo? Escribe a [email protected]. Nuestro contacto legible por máquina está publicado en /.well-known/security.txt.