<!-- canonical: https://helperx.app/es/docs/security -->
<!-- lang: es -->
<!-- updated: 2026-07-16 -->

# Security

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](https://helperx.app/es/blog/x-auth-token-security-automation). Nunca pegues cookies ni auth tokens en chats.
