Seguridad y cumplimiento RGPD
Última actualización:
1. Por qué la seguridad es no negociable
Zaniora trata datos de salud, considerados categoría especial por el artículo 9 del RGPD. Esto implica medidas reforzadas: cifrado, aislamiento estricto entre clínicas, hosting en territorio europeo, registros de auditoría y proceso de notificación de incidentes.
2. Dónde están los datos
- Servidores físicos en la Unión Europea (España).
- Copias de seguridad cifradas y aisladas, almacenadas en Backblaze B2 (región UE).
- CDN y protección DDoS con Cloudflare (data residency UE configurada).
- Sin transferencias internacionales fuera del EEE.
3. Cifrado
- Tráfico cifrado con TLS 1.3. HSTS habilitado. Redirección forzada a HTTPS.
- Base de datos cifrada en reposo a nivel de volumen del servidor.
- Almacenamiento de objetos (logos, exports) cifrado en reposo.
- Cifrado a nivel de aplicación con clave por tenant en los campos más sensibles (notas privadas del nutricionista, tokens de acceso al portal del paciente).
- Backups cifrados con clave separada antes de salir del servidor.
- Las contraseñas se almacenan con Argon2id, nunca en texto plano.
4. Aislamiento entre clínicas (multitenancy)
- Cada clínica tiene un identificador único (tenant) que acompaña a todos sus datos.
- Row Level Security de PostgreSQL filtra automáticamente cada consulta por tenant. Una clínica no puede ver datos de otra, ni por error ni intencionadamente, ni siquiera desde dentro del backend.
- Doble validación en la capa de aplicación: la pertenencia se verifica contra la sesión del usuario en cada petición.
5. Acceso del paciente al portal
- Acceso mediante enlace único + PIN numérico elegido por el nutricionista. Sin contraseñas largas para el paciente.
- El PIN se almacena hasheado (Argon2id con sal). Tras varios intentos fallidos se aplica rate limiting con bloqueo temporal.
- Registros de acceso (timestamp, IP truncada, resultado de PIN) visibles al nutricionista.
- El nutricionista puede revocar el acceso al instante y generar uno nuevo.
- La sesión del paciente caduca por inactividad (30 minutos).
6. Cumplimiento RGPD y derechos del paciente
Zaniora actúa como encargado del tratamiento. El nutricionista es el responsable. Firmamos con cada uno un contrato de encargo (art. 28 RGPD) que regula:
- Finalidades específicas del tratamiento.
- Medidas técnicas y organizativas.
- Subprocesadores autorizados.
- Asistencia para responder a derechos del paciente (acceso, rectificación, supresión, portabilidad).
- Notificación de brechas en un plazo máximo de 72 horas desde la detección.
7. Copias de seguridad y recuperación
- Copia diaria de la base de datos.
- Retención escalonada: 7 diarias + 4 semanales + 12 mensuales.
- Prueba de restauración mensual. Un backup no probado no es un backup.
- Objetivo de tiempo de recuperación (RTO): 4 horas.
- Objetivo de punto de recuperación (RPO): 24 horas.
8. Monitorización y respuesta a incidentes
- Errores en producción centralizados en Sentry (sin PII).
- Monitorización de disponibilidad 24/7 con alertas inmediatas.
- Registros estructurados sin datos personales del paciente.
- Procedimiento documentado de respuesta a incidentes, con notificación al cliente afectado y a la AEPD si corresponde.
9. Eliminación de datos
- Al borrar un paciente, soft-delete durante 30 días y borrado físico definitivo después.
- Al darte de baja, exportación de tus datos en JSON + PDF a tu disposición. Tras 30 días, borrado definitivo.
- Las copias de seguridad se purgan automáticamente al final de su ciclo de rotación.
10. Cómo reportar una vulnerabilidad
Si encuentras un problema de seguridad, escríbenos a security@zaniora.com. No publiques detalles antes de darnos una ventana razonable para responder y mitigar. Agradecemos los reportes responsables y los reconoceremos públicamente con tu permiso.