Seguridad

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-1a2b o 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.