Seguridad

Tu red y los datos de tus clientes, detrás de ocho capas.

Cada capa se diseñó para fallar cerrada: si algo no cuadra, el sistema responde con «no veo nada», nunca con «veo todo». Te contamos cómo funciona cada una y también lo que todavía no hacemos.

Capa 1 de 8 · Navegador

El panel no confía ni en su propia página.

  • Política de contenido (CSP) con un nonce nuevo en cada petición: solo corre el código del panel.
  • Protección contra clickjacking: el panel no se puede incrustar en otro sitio.
  • La sesión vive en una cookie HttpOnly; ningún token queda en localStorage.
  • El texto que llega de las OLTs se limpia antes de mostrarse.

Capa 1 de 8 · Navegador

El panel no confía ni en su propia página.

  • Política de contenido (CSP) con un nonce nuevo en cada petición: solo corre el código del panel.
  • Protección contra clickjacking: el panel no se puede incrustar en otro sitio.
  • La sesión vive en una cookie HttpOnly; ningún token queda en localStorage.
  • El texto que llega de las OLTs se limpia antes de mostrarse.

Capa 2 de 8 · Acceso

Entrar cuesta; adivinar, más.

  • Contraseñas guardadas con bcrypt (12 rondas); nunca en claro.
  • Límite de intentos: 20 por IP y 6 por cuenta cada 15 minutos, con la misma respuesta en ambos casos.
  • Segundo factor con TOTP (cada código sirve una sola vez) y 10 códigos de respaldo.
  • Llaves de acceso (passkeys), que resisten el phishing porque verifican el sitio.
  • Las cuentas de plataforma no pueden operar sin segundo factor.

Capa 3 de 8 · Sesión

Una sesión robada se delata sola.

  • Token de acceso de 15 minutos, solo en memoria.
  • Token de renovación rotativo: cada uno sirve para una sola renovación.
  • Si un token ya usado vuelve a aparecer, se cierran todas las sesiones del usuario y queda en la auditoría.
  • Sin «mantener sesión», la sesión vence tras 12 horas sin uso.

Capa 4 de 8 · Permisos

Ocultar un botón no es seguridad.

  • Tres roles por operador (Administrador, Soporte técnico e Instalador), aplicados en el servidor.
  • Las 141 rutas de la API se revisaron por rol: ningún secreto llega a soporte ni al instalador.
  • Una prueba compara el menú con los permisos reales del servidor.
  • La cuenta de plataforma es aparte y se verifica contra la base, no contra el token.

Capa 5 de 8 · Aislamiento

Cada ISP ve solo lo suyo, y lo garantiza la base de datos.

  • Row-Level Security de PostgreSQL en cada tabla con datos de un operador.
  • Si falta el operador en una consulta, el resultado es error o cero filas: falla cerrada.
  • El servidor se niega a arrancar si su usuario de base de datos puede saltarse el aislamiento.
  • 66 pruebas automáticas de aislamiento; pedir un recurso ajeno devuelve 404.

Capa 6 de 8 · Secretos

Las claves de tus OLTs no vuelven nunca a la pantalla.

  • Credenciales SSH y SNMP cifradas con AES-256-GCM.
  • El navegador nunca recibe esas credenciales, ni siquiera cifradas.
  • Los secretos de los webhooks también se guardan cifrados.
  • La clave privada de la VPN se muestra una sola vez y no se guarda.

Capa 7 de 8 · Red y equipos

Hablar con tus OLTs sin abrir puertas.

  • Los valores que van a la CLI de una OLT se validan: no pueden llevar caracteres de control.
  • El explorador de CLI es de solo lectura, con una lista de comandos permitidos por fabricante, y cada intento queda auditado.
  • Los webhooks solo salen a destinos públicos: se bloquean redes internas y metadatos de la nube.
  • La VPN WireGuard hacia tu MikroTik solo admite redes privadas, sin superposición entre operadores.

Capa 8 de 8 · Operación

Todo queda anotado, y nada se instala solo.

  • Auditoría de acciones sensibles e inicios de sesión, exportable a CSV o TXT; la exportación también queda registrada.
  • Cada actualización llega firmada (Ed25519), se aplica cuando una persona lo decide y puede volver a la versión anterior.
  • Respaldo de la base antes de cada actualización, y respaldos del servidor cifrados con rotación.
  • Los webhooks que envía el panel van firmados con HMAC-SHA256.

Pruébalo

¿Qué pasa si el operador A intenta ver datos del operador B?

Elige un intento. Son los mismos casos que cubren las pruebas automáticas del panel.

Pedido · operador A
GET /api/onus/8812   (la ONU 8812 es del operador B)
Respuesta404 No encontrado

Para el operador A esa ONU no existe: ni siquiera confirma que exista.

Sesiones

Qué pasa si alguien copia tu sesión.

El token de renovación cambia en cada uso. Si una copia vieja vuelve a aparecer, el sistema asume un robo y cierra todo.

Tu navegador
Alguien con una copia vieja
#1vigente
Registro
  1. Inicio de sesión · se emite el token n.º 1

Roles

Cada persona ve lo que necesita para su trabajo.

  • AdministradorTodo lo del operador: usuarios, OLTs y sus credenciales, auditoría, respaldos y exploradores de CLI y SNMP.
  • Soporte técnicoLa operación y el diagnóstico del día a día. Nunca ve credenciales.
  • InstaladorSolo lo que necesita en campo para instalar y medir; sus permisos de escritura están fijados en una prueba.
  • Plataforma (eCloud)Una cuenta aparte, con segundo factor obligatorio y verificada contra la base en cada petición.

Privacidad

Pocos terceros, y te decimos cuáles.

Una sola cookie
Técnica, para la sesión. Sin analítica ni publicidad.
Sin CDN ni fuentes externas
Las tipografías y el código del panel se sirven desde el propio servidor.
Mapas
Las teselas del mapa base vienen de Esri, que ve la IP de quien mira el mapa y la zona.
Pagos
Los pagos de la suscripción pasan por Stripe o PayPal; sus avisos se verifican por firma y se procesan una sola vez.
Aceptación registrada
Términos, privacidad y cookies se aceptan al iniciar sesión, con versión, fecha e IP, en un registro que no se puede editar.

Transparencia

Lo que todavía no hacemos.

Preferimos que lo sepas por nosotros.

  • No tenemos certificaciones (SOC 2, ISO 27001) ni un pentest externo.
  • No hay inicio de sesión único (SSO, SAML u OIDC).
  • El segundo factor es obligatorio para las cuentas de plataforma; para los usuarios de cada ISP es opcional.
  • El límite de intentos es una ventana de 15 minutos, no un bloqueo progresivo; si su servicio (Redis) se cae, deja de aplicarse mientras tanto.
  • Con «mantener sesión» marcado, la sesión se renueva sin un tope absoluto.
  • Telnet está disponible para OLTs viejas y no cifra; no es la opción por omisión y el formulario lo advierte.
  • Las passkeys todavía no se probaron en Safari.

Menos camionetas en la calle. Más clientes que se quedan.

Te mostramos eCloud OLT Controller con tus propias OLTs, en 30 minutos.