Security
ES
Los auth tokens y las credenciales de proxy se cifran en reposo con AES-256-GCM. La clave se deriva de una variable de entorno del servidor.
Qué se cifra
Datos cifrados en reposo:
- X auth tokens — cookie de sesión usada para acceder a X.
- Proxy credentials — string del proxy (usuario y password incluidos).
Settings de módulos, display names y otros datos no sensibles se guardan en texto plano.
Cómo funciona
Los valores sensibles se cifran con AES-256-GCM (cifrado autenticado) antes de escribirse en storage. Cada valor lleva su propio IV aleatorio: cifrar el mismo token dos veces produce ciphertexts distintos.
El descifrado ocurre en runtime solo cuando un módulo necesita la credencial (p. ej. una llamada a la API de X).
Configuración de la clave
La clave se deriva de la variable de entorno X_TOKEN_ENC_KEY en el servidor. Puede ser cualquier string.
Si no está definida, el cifrado se desactiva y las credenciales se guardan en texto plano. Se registra un warning al arrancar.
Datos legacy
Si el sistema encuentra credenciales en texto plano (de antes del cifrado), las lee con normalidad y las cifra en el próximo guardado. No hace falta migración manual.
Alcance de seguridad
Qué protege: dumps de base de datos y acceso casual al disco. Un auth token cifrado no sirve sin la clave.
Qué no protege: un atacante con ejecución de código en el servidor puede leer la env var y descifrar todo. Es el baseline habitual en SaaS.
Guía para operadores: Token & Session Security for X Tools. Nunca pegues cookies ni auth tokens en chats.