Tu cliente es un bar, una cadena de restaurantes o una franquicia. Sus datos fiscales y operativos son sensibles. Aquí está cómo los protegemos, capa por capa.
Nada en claro entre el TPV y nuestro VPS. Ni en disco, ni en tránsito, ni en backup.
Panel y API expuestos solo por TLS 1.3 con cipher suites modernas. HSTS activo. Certificado Let's Encrypt con auto-renovación. Calificación A+ en SSL Labs.
Broker en puerto 8883 con TLS obligatorio. Cada agente tiene su propio user/password generado en enrolamiento (no compartido). ACL por organización: un agente jamás puede leer topics de otra.
El túnel para PhantomWeb y comandos puntuales se autentica mutuamente con certificados X.509. Cada agente tiene cert firmado por nuestra CA dedicada (no la pública).
Las claves del agente y los datos sensibles del backend se sellan con AES-256-GCM. La master key vive fuera del repo en /opt/phantomzx/data/secrets/ (chmod 600).
Snapshots diarios cifrados localmente antes de subir a Backblaze B2. Backblaze nunca ve plaintext. Passphrase en gestor de contraseñas tuyo y nuestro.
Argon2id para passwords del panel (parámetros OWASP 2025). Tokens API y de enrolamiento se almacenan solo como SHA-256 — el plaintext se muestra al crear y nunca más.
El servidor principal está en Hetzner Falkenstein (Alemania). No hay copias en EE.UU., ni en Reino Unido, ni en ninguna parte del EEE.
No es solo un párrafo en la política — está implementado en el producto.
Plantilla pre-firmada por nuestro DPO. La firmas con DocuSign o equivalente y queda en tu carpeta de cumplimiento. Disponible para cliente final si tu cadena hostelera lo pide.
Botón "Eliminar mi cuenta" en el panel. Borra usuario, sesiones, MFA, API keys. Auditoría histórica permanece anonimizada (lo exige RGPD para defensa legal).
Click → ZIP con todos tus datos (usuarios, equipos, alertas, auditoría, configs). Formato JSON + CSV. Te llega por email en menos de una hora.
Cada vez que un técnico abre la ficha de un equipo o accede a logs/sysinfo queda registrado: quién, cuándo, qué TPV, motivo opcional. Cumple Art. 32 RGPD.
Por organización: cuántos días conservar métricas, sesiones, logs y auditoría. Por defecto 90/365 días según tipo. Lo bajas si tu cliente lo pide.
Compromiso contractual: si detectamos una brecha que afecte tus datos, te avisamos en < 24 h con detalle del alcance, vector y remedy. Te ayudamos con la notificación a la AEPD si procede.
El panel multi-tenant tiene mecanismos de defensa que un RMM "casero" no.
Estándar RFC 6238. Compatible con Google Authenticator, 1Password, Authy, Bitwarden, Aegis. Códigos de recuperación impresos al activar. Forzable a nivel de organización.
Owner / admin / técnico / read-only. Por organización. Un técnico de tu equipo solo ve los TPV donde le diste acceso. Cliente final ve solo los suyos.
Crea claves dedicadas para cada integración: helpdesk, SIEM, ERP. Scopes: devices:read, devices:write, audit:read, etc. Rotación con un click.
Cada API key tiene su propio bucket. Por defecto 300 req/min. Configurable. Endpoints sensibles (login, forgot-password, enroll) tienen rate limit por IP más estricto.
Tokens firmados HS256 con TTL de 2 h. Refresh automático mientras la pestaña esté abierta. Revocación inmediata desde el panel admin si un técnico deja la empresa.
Cada acción queda con quién, cuándo, IP, user-agent, recurso afectado. La tabla de audit es append-only en BD (sin DELETE), archivada en cada backup, exportable.
El binario que corre en el bar es el primer eslabón. Lo cuidamos.
Todo el tráfico es saliente: agente → broker MQTT (8883) y agente → tunnel reverso (7444). Cero exposición pública del TPV. Funciona detrás de cualquier NAT/firewall.
El agente corre como servicio LocalSystem con auto-restart (sc failure ... restart/5000). Los binarios se firman digitalmente (Authenticode) — Windows valida firma antes de ejecutar.
Cada update baja por HTTPS, se valida contra la SHA-256 del manifest firmado, y solo entonces se aplica. Imposible servir un binario manipulado en el canal.
El agente solo ejecuta comandos que vengan firmados por tu organización. No hay "modo soporte" que nos deje a nosotros entrar a tu TPV. El código fuente está disponible bajo NDA para clientes Enterprise.
El usuario oculto que crea el agente para que Guacamole/RDP funcione es local, sin login interactivo, sin red ni perfil itinerante. Solo se usa para sesiones internas del túnel reverso.
El agente loguea en C:\ProgramData\PhantomZX\logs\ con rotación 10 MB × 5 ficheros. Sin datos de tickets ni facturas — solo métricas operativas.
Que un bug, un fallo de hardware o un ataque no se traduzca en pérdida de tu data.
BD MySQL completa, dumpada cada noche. Local con retención 14 días en disco encriptado. Off-site cifrado AES-256 a Backblaze B2 con retención 90 días.
Procedimiento de restore probado periódicamente. Tiempo objetivo de recuperación: < 4 h desde fallo total a panel funcional. Documentación en repo y en runbook del oncall.
Si el endpoint principal de releases cae, los agentes siguen operando con la versión instalada. Los updates se reanudan al volver. No se quedan zombi.
phantomzx.com/status con health en tiempo real (panel, BD, MQTT, tunnel). Pensada para que UptimeRobot/Better Stack lo monitoricen también desde tu lado.
Lista pública de quién toca tus datos. Si añadimos uno nuevo, te avisamos con 30 días de antelación.
| Subprocesador | Función | Localización | DPA firmado |
|---|---|---|---|
| Hetzner Online | Hosting servidor principal | Falkenstein, Alemania | Sí |
| Backblaze | Backup off-site cifrado | EU Central (NL) | Sí |
| Cloudflare | CDN, WAF, DNS | EU only | Sí |
| Brevo | Email transaccional | París, Francia | Sí |
| Stripe | Procesamiento pagos | Irlanda | Sí |
| Let's Encrypt (ISRG) | Certificados TLS | EU/US | Free CA |
Plan Enterprise incluye auditoría externa anual con informe disponible para tus clientes finales. Cumplimiento ENS-Medio en curso (vigente desde finales de 2026).
Hablemos