Seguridad y datos
Seguridad e infraestructura
Dónde se aloja LingoQuesto y qué controles protegen la plataforma, desde la red y el cifrado hasta el control de acceso, la gestión de secretos, la disponibilidad y el monitoreo.
Resumen
- LingoQuesto es un servicio en la nube (SaaS) que la institución usa desde el navegador. No se instala nada en su infraestructura.
- Toda la plataforma está alojada en Estados Unidos, sobre servicios administrados de DigitalOcean, AWS y Microsoft Azure.
- La comunicación viaja cifrada y los datos se guardan cifrados en reposo.
- Cada institución ve solo su información. La separación entre instituciones es lógica, sobre una infraestructura compartida.
- Los entornos de pruebas y de producción están separados.
Alojamiento
| Componente | Proveedor y servicio | Ubicación |
|---|---|---|
| Aplicación web | AWS Amplify, distribuida con CloudFront | Estados Unidos (us-east-1) |
| API, servicios de IA y tiempo real | DigitalOcean Kubernetes | Nueva York (NYC3), Estados Unidos |
| Base de datos | DigitalOcean Managed PostgreSQL | Nueva York (NYC3), Estados Unidos |
| Archivos: audios, imágenes y documentos | DigitalOcean Spaces | Nueva York (NYC3), Estados Unidos |
| Caché y colas de trabajo | DigitalOcean Managed Caching | Nueva York (NYC3), Estados Unidos |
| DNS y protección de borde | Cloudflare | Red global |
| Credenciales y secretos | Microsoft Azure Key Vault | — |
Toda la infraestructura de producción opera en una sola región. Hoy no existe una alternativa de alojamiento en otro país.
Red
- El clúster de producción, la base de datos y la caché están en una red privada (VPC) propia del entorno.
- La base de datos y la caché solo aceptan conexiones desde el clúster de producción y desde direcciones autorizadas expresamente.
- El tráfico de internet entra por un único balanceador de carga, siempre por HTTPS.
- La aplicación web y la API se publican a través de Cloudflare, que aporta mitigación de ataques de denegación de servicio y filtrado de tráfico malicioso.
Entornos
Pruebas (QA) y producción son entornos independientes. Cada uno tiene su propio clúster, su red privada, su base de datos, su caché, su almacenamiento de archivos y sus bóvedas de secretos.
Los cambios se validan en el entorno de pruebas antes de publicarse en producción. Las correcciones urgentes se revisan y se publican directamente.
Cifrado
| Dónde | Cómo |
|---|---|
| En tránsito | HTTPS y WebSocket seguro con TLS 1.2 o superior. Las peticiones por HTTP se redirigen a HTTPS y los dominios envían HSTS. |
| Base de datos | Cifrada en reposo por el servicio administrado. |
| Archivos | Cifrados en reposo con AES-256 por el servicio de almacenamiento. |
| Copias de respaldo | Cifradas por el servicio administrado de base de datos. |
| Contraseñas | Nunca se guardan en texto. Se almacena solo un hash con sal (PBKDF2 con SHA-256). |
Control de acceso
- Roles. Cuatro roles fijos: estudiante, docente, coordinador y administrador institucional. El rol se asigna por sede y define qué ve y qué puede hacer cada persona.
- Separación entre instituciones. Cada petición se valida contra la membresía activa del usuario en la sede. Los datos de una institución no son visibles para otra.
- Sesiones. La API exige autenticación por defecto. Las sesiones usan tokens de corta duración que se renuevan y se revocan.
- Límite de peticiones. La API limita la cantidad de peticiones por usuario y por dirección IP.
- Inicio de sesión. Con la cuenta institucional de Microsoft o de Google, desde el LMS por LTI 1.3 o con correo y contraseña. Ver Integración con el LMS e inicio de sesión institucional.
- Segundo factor. Cuando el usuario entra con su cuenta de Microsoft o de Google, o desde el LMS, aplican el segundo factor y las políticas de acceso de la institución. LingoQuesto no administra un segundo factor propio.
- Registro de accesos. Cada inicio de sesión queda registrado con fecha, método, dirección IP y navegador.
Gestión de secretos
Las credenciales de producción se guardan en Azure Key Vault, separadas por servicio y por entorno. No forman parte del código fuente y llegan a los servicios en el momento del despliegue.
Disponibilidad
- Los servicios de la aplicación corren con varias réplicas, repartidas en distintos nodos, y escalan automáticamente con la carga.
- Las actualizaciones se despliegan de forma gradual, sin detener el servicio.
- La base de datos es un servicio administrado con copias de respaldo automáticas. Los objetivos de recuperación y el procedimiento están en Respaldo y recuperación.
Monitoreo
- Alertas sobre el uso de CPU, memoria y disco de los nodos, la base de datos y la caché.
- Verificación automática del estado de los servicios cada 45 segundos, con aviso al equipo técnico cuando alguno falla.
- Registro centralizado de los errores de la aplicación.
Desarrollo
- El código se gestiona en GitHub, con control de versiones y revisión de los cambios antes de integrarlos.
- Cada cambio pasa por pruebas automatizadas.
- Las dependencias de los servicios del servidor se revisan cada semana con una herramienta automática que propone las actualizaciones de seguridad.
Certificaciones
LingoQuesto no tiene certificaciones propias de seguridad de la información, como ISO 27001 o SOC 2. La plataforma opera sobre proveedores que sí las tienen: DigitalOcean, AWS y Microsoft Azure.
Pruebas de seguridad por parte de la institución
Una institución puede hacer pruebas de seguridad sobre la plataforma si las coordina antes con LingoQuesto, para definir el alcance y evitar que afecten el servicio de otros clientes.