Seguridad por diseño, no por marketing
Lo que pasa por dentro cuando subes un chat. Sin lenguaje vago.
Infraestructura física
- Postgres 17 + pgvector: Hetzner Online (Falkenstein, Alemania). Cifrado at-rest a nivel de disco
- Redis (BullMQ queues): mismo data center, conexión interna privada
- Worker processes: orquestación con healthchecks, restart automático
- Object storage: Cloudflare R2 jurisdicción UE, cifrado en reposo
Cifrado
- En tránsito: TLS 1.3 obligatorio (HTTPS/HSTS) para web y APIs
- En reposo: cifrado de disco completo (Postgres, R2, Redis snapshots)
- Tier Empresa: KEK por usuario rotable, mensajes cifrados a nivel de aplicación con clave derivada
- Backups: cifrados con AES-256 antes de subirse al bucket de backups
Autenticación y autorización
- Auth: Keycloak self-hosted, realm dedicado para Memchats
- Sesiones: NextAuth v5, JWT con secret rotable, cookies HttpOnly + Secure + SameSite=Lax
- OAuth social: federation con Google (próximamente Apple, Microsoft) gestionada vía Keycloak
- 2FA: configurable a nivel de Keycloak (TOTP, WebAuthn) : disponible en tier Pro+
- API tokens: app móvil usa Bearer tokens validados contra el JWKS del realm
Subprocessors
Servicios de terceros que procesan datos en nuestro nombre, todos en EU o con SCC firmado:
- Hetzner Online (Alemania): hosting, infraestructura compute
- Cloudflare R2 (jurisdicción UE): object storage de archivos de ingesta originales
- Cloudflare DNS + CDN: edge caching de assets estáticos (no contenido de mensajes)
- Anthropic (USA, SCC + DPA firmado): LLM Claude para generación de respuestas. Anthropic NO entrena con tus datos por contrato
- Stripe (Irlanda + USA, SCC firmado): procesamiento de pagos. Memchats no almacena datos de tarjeta
- Sentry (USA, SCC firmado): error tracking. Configurado para no enviar PII ni contenido de mensajes en breadcrumbs
- Mailcow self-hosted (Hetzner Alemania): emails transaccionales y catchall
Anonimización de datos de terceros
Cuando importas un chat con María (que no firmó consentimiento), Memchats:
- Hashea identificadores PII (emails, teléfonos) con SHA-256 + salt por usuario
- Asigna alias estable visible (
contacto-1a2bo el nombre que tú elijas) - Almacena los originales cifrados con KEK por usuario
- Si María solicita borrado vía [email protected], lo procesamos en 30 días
Privacidad en LLM calls
Cuando Memchats consulta a Claude (Anthropic) para generar la respuesta de un asesor:
- Solo se envía el contexto necesario (memoria estructurada relevante + últimos N mensajes)
- Anthropic tiene contrato de no-retención y no-entrenamiento firmado
- Para tier Empresa: opción de modelo local (Llama 3.1, Mistral) que NO sale de nuestra infra
Acceso y operaciones
- Acceso a producción restringido al fundador via Tailscale + autenticación SSH con key
- Cero acceso interno al contenido de mensajes (sólo metadatos agregados)
- Logs operativos sin contenido de mensajes
- Snapshots de DB cifrados, retención 14 días rolling
Disclosure y bug bounty
Si encuentras una vulnerabilidad, escríbenos a [email protected]. Respondemos en 48h. Bug bounty informal (€50-€1000 según severidad) para vulnerabilidades reales. Por favor, no testees en cuentas de otros usuarios : usa tu propia cuenta o crea una test.
Estado del servicio
Status page público: status.memchats.com (próximamente). Mientras tanto, incidentes mayores se anuncian vía email a usuarios afectados y en Twitter @memchatsapp.
Certificaciones
- RGPD: cumplimiento por diseño, DPO designado
- SOC 2 Type II: en plan para 2027 (cuando tengamos compliance budget)
- ISO 27001: roadmap 2027-2028 si validación enterprise lo requiere
Última auditoría
Pendiente primera auditoría externa (planificada Q4 2026 con bufete EU especializado). Mientras tanto, código abierto parcial en github.com/jupediaz/memchatspara escrutinio público.