Saltar al contenido principal

Marco legal y privacidad

Seguridad y privacidad técnica

Seguridad y privacidad técnica

OpenMercantil maneja datos públicos del BORME, datos de cuenta de usuarios suscritos y registros operativos. La política de seguridad aplica medidas proporcionadas al riesgo de cada categoría de dato y se documenta de forma transparente: lo que está implementado, lo que está en hoja de ruta y lo que conscientemente hemos descartado.

Capa de transporte

  • HTTPS forzado en todo el dominio. HSTS con max-age=31536000 e includeSubDomains. Preload pendiente de envío al navegador hasta consolidar 6 meses sin downtime.
  • TLS 1.2+ con cifrados modernos (sin RC4, 3DES, MD5 ni SHA-1). Renegociación segura activa.
  • Cabeceras de seguridad: Content-Security-Policy con allowlist explícita, X-Frame-Options: SAMEORIGIN (anti-clickjacking), X-Content-Type-Options: nosniff, Referrer-Policy: strict-origin-when-cross-origin y Permissions-Policy denegando geolocation/camera/microphone por defecto.
  • Certificado SSL gestionado por OVH AutoSSL (Let's Encrypt). Renovación automática 30 días antes de caducidad.
  • Redirecciones 301 single-hop auditadas para dominio canónico y variantes www en una sola respuesta.

Datos en reposo

  • Base de datos SQLite con permisos UNIX 600 (solo el proceso PHP del servidor web puede leerla). Tabla users y api_keys aisladas en migrations versionadas.
  • Hashes de contraseñas con password_hash() + bcrypt (cost 12). Sin almacenamiento de contraseñas en claro nunca, ni siquiera transitoriamente en logs.
  • Tokens de API y session IDs generados con random_bytes() (CSPRNG del sistema operativo). Longitud mínima 32 bytes (256 bits de entropía).
  • Backups diarios cifrados con AES-256-GCM antes de salir del servidor. Retención: 30 días rotativos.
  • Datos de pago: nunca tocan nuestros servidores. Stripe Checkout y Customer Portal gestionan toda la información de tarjeta. Solo almacenamos el customer_id y subscription_id referencial.

Privacidad operativa

  • IP anonimizada en todos los logs accesibles (último octeto a cero antes de persistencia: 192.168.1.0). La IP completa solo aparece transitoriamente en buffers de Apache para detección de abuso, y se purga en menos de 24 horas.
  • Retención de logs técnicos limitada a 30 días. Logs de auditoría de seguridad (intentos de login, cambios de contraseña, ejercicio de derechos RGPD) hasta 1 año.
  • Google Consent Mode v2 y Microsoft Clarity Consent API v2 implementados para aplicar la preferencia analítica del usuario.
  • Sin trackers publicitarios de terceros (Meta Pixel, TikTok, etc.). Solo Google Analytics 4, Microsoft Clarity y, si decides usarlo, Crisp Chat para soporte.
  • Sin venta ni cesión de datos personales a terceros bajo ninguna circunstancia comercial.

Control de acceso

  • Login con email + contraseña o Google OAuth (Sign in with Google). Las contraseñas se validan contra la lista HaveIBeenPwned en cambios para prevenir credenciales comprometidas conocidas.
  • Rate limit en endpoints sensibles (login, password reset, API key request) con bloqueo exponencial tras 5 intentos.
  • Sesiones con cookie HttpOnly, Secure, SameSite=Lax. Caducidad por inactividad: 30 días en sesión recordada, 4 horas si no.
  • Tokens CSRF en todos los formularios con cambios de estado.
  • Acceso administrativo restringido por IP allowlist + 2FA TOTP obligatorio.

Pipeline de datos: integridad y trazabilidad

  • Cada acto del BORME procesado conserva la URL del PDF oficial original. Trazabilidad 100% verificable en cada ficha.
  • Hash SHA-256 del PDF descargado se compara con el publicado por la AEBOE para detectar manipulación en tránsito.
  • Pipeline reproducible: el cron diario es idempotente, re-procesar el mismo día produce el mismo resultado.
  • Migraciones de schema versionadas en schema/migrations/ (0001..0028 actualmente). Rollback documentado para cada una.

Divulgación responsable de vulnerabilidades

Si descubres una vulnerabilidad, escribe de forma responsable a [email protected] con asunto «Security disclosure». Acuse de recibo en menos de 72 h. Plan de mitigación según severidad CVSS:

  • Crítica (CVSS 9-10): mitigación temporal en menos de 24 h, parche definitivo en 7 días.
  • Alta (7-8.9): parche definitivo en 14 días.
  • Media (4-6.9): incluida en próximo ciclo de releases (mensual).
  • Baja (<4): documentada y planificada según prioridad.

No publiques el problema antes de que confirmemos la corrección — preferimos resolverlo de buen rollo y reconocemos públicamente al investigador en el changelog si lo desea.

Cumplimiento normativo

  • RGPD (Reglamento UE 2016/679): base legal del tratamiento, derechos del interesado, evaluación de impacto cuando procede.
  • LOPDGDD (LO 3/2018): adaptación nacional del RGPD, derechos digitales y régimen sancionador.
  • Ley 37/2007 sobre reutilización de información del sector público (transposición Directiva UE 2019/1024). Es la base legal que ampara la reutilización del BORME.
  • LSSI-CE (Ley 34/2002): información societaria identificada en el Aviso Legal y obligaciones de los servicios de la sociedad de la información.
  • Política de cookies ajustada a la Guía de la AEPD (2024) y al Real Decreto 13/2012.

Lo que conscientemente NO hacemos

  • No usamos servicios de tracking de terceros más allá de GA4 con consentimiento.
  • No tenemos modelos de IA que procesen datos personales para inferir características no declaradas.
  • No vendemos ni cedemos a terceros listados de empresas ni de personas físicas.
  • No almacenamos datos de tarjetas de crédito en ningún momento.
  • No utilizamos dark patterns en consentimientos de cookies ni en upgrades de plan.