Cifrado
En reposo
niil cifra tus datos sensibles en reposo con AES-256-GCM:
- Contenido del chat — mensajes, títulos de conversación y documentos subidos.
- Credenciales de los conectores — los tokens/claves de los servicios externos que conectas se cifran con una clave independiente.
- Documentos de bases de conocimiento — cifrados con una clave por base. Ya sea que se almacenen en la base de datos o en el almacenamiento de objetos de la UE opcional de tu operador, solo se escribe texto cifrado — así que el criptoborrado también se aplica ahí.
El cifrado está siempre activado; no es un ajuste que puedas olvidar habilitar.
Claves por conversación → borrado real
Cada conversación se cifra con su propia clave de contenido, que a su vez se almacena cifrada con la clave maestra de la organización. Este diseño te ofrece crypto-shredding: eliminar una conversación descarta su clave, dejando el texto cifrado almacenado permanentemente irrecuperable — un borrado genuino, no solo una fila oculta. Esto es lo que impulsa el borrado del RGPD (consulta Protección de datos y RGPD).
En tránsito
Todo el tráfico circula sobre TLS (HTTPS), terminado en el ingress. Las cookies de sesión son HTTP-only y están marcadas como Secure tras HTTPS, así que nunca quedan expuestas a scripts ni se envían por HTTP en claro.
Gestión de claves
- Las claves en reposo son claves de 32 bytes suministradas al despliegue como secretos (guardadas en tu gestor de secretos, no en la base de datos).
- La clave del contenido del chat y la clave de las credenciales de los conectores son distintas.
- Como el cifrado es real, la custodia de las claves importa: perder una clave hace crypto-shredding de los datos que protege. Se orienta a los operadores para que respalden el material de claves por separado de los datos que cifra.
El resultado: incluso alguien con acceso en bruto al almacenamiento de niil solo ve texto cifrado, no tus conversaciones, documentos ni credenciales.