Medidas técnicas y organizativas del MVP
Esta página describe las medidas implementadas sin revelar secretos, claves ni detalles que faciliten ataques.
Arquitectura
- Aplicación Django detrás de Nginx.
- PostgreSQL y Redis aislados en red privada de Docker y sin puertos publicados.
- El puerto HTTP del contenedor se liga a 127.0.0.1 del VPS para quedar detrás del proxy TLS del host.
- Cabeceras CSP, X-Frame-Options, nosniff, política de permisos y referrer policy.
Identidad y acceso
- Contraseñas con Argon2.
- Roles ADMIN, TUTOR y STUDENT.
- Los tutores solo acceden a alumnos asignados, salvo administradores.
- Invitaciones de un solo uso con token almacenado únicamente como hash.
- La cuenta administrativa inicial fuerza cambio de contraseña.
Cifrado
- Datos identificativos y contenido sensible cifrados a nivel de aplicación con Fernet/MultiFernet.
- Determinados indicadores educativos se cifran aunque no sean identificadores directos.
- Las claves de cifrado están fuera de la base de datos y admiten rotación.
- Backups cifrados con AES-256-CBC + PBKDF2 mediante passphrase externa.
Auditoría y privacidad
- Eventos críticos quedan registrados sin guardar contraseñas ni tokens de invitación.
- Los logs de acceso internos están deshabilitados para reducir exposición; el proxy del host debe excluir de logging la ruta de activación.
- Existe flujo de exportación y solicitud de supresión.
- Las evidencias de aprendizaje son inmutables: una corrección genera un nuevo registro, no modifica el histórico.
Operación
El repositorio incluye healthchecks, copias de seguridad cifradas, restauración con confirmación explícita y configuración para despliegue reproducible con Docker Compose. Antes del piloto deben ejecutarse las pruebas automatizadas y una revisión de configuración del VPS, TLS, firewall y copias.