Proyecto académico para la materia "Seguridad en Desarrollo de Software". Consiste en un clon funcional de Facebook Messenger enfocado estrictamente en seguridad, criptografía end-to-end (E2E) y prevención sistemática de vulnerabilidades.
Rama de integración: integration/auth-security
Áreas de código:
src/lib/auth/src/app/auth/src/app/settings/src/app/api/auth/next.config.mjs
Tareas asignadas:
| Tarea | Rama feature | Requerimiento |
|---|---|---|
| Recuperación de password | feature/auth-password-recovery |
Req 3 |
| Rate limiting y anti-bruteforce | feature/auth-rate-limiting |
Seguridad |
| Headers de seguridad (CSP, HSTS) | feature/auth-security-headers |
Seguridad |
| Auditoría y logging centralizados | feature/auth-audit-logging |
Seguridad |
| Gestión de sesiones y revocación | feature/auth-sessions-management |
Extra |
| Temas modo claro/oscuro | feature/auth-themes |
Req 20 |
| Configurar OWASP ZAP | feature/security-owasp-zap |
Análisis |
| Documentación de seguridad | docs/security-cryptography |
Docs |
Estimación: 28-35 horas
Responsabilidades transversales:
- Coordinador de OWASP ZAP scans
- Define el schema de
security_logsy la funciónlogSecurityEvent()que usa todo el equipo - Review obligatorio de todo código criptográfico
Rama de integración: integration/contacts-groups
Áreas de código:
src/app/api/contacts/src/app/api/conversations/src/components/groups/src/components/contacts/supabase/migrations/
Tareas asignadas:
| Tarea | Rama feature | Requerimiento |
|---|---|---|
| Gestión de contactos completa | feature/contacts-requests-api |
Req 4 |
| Creación y gestión de grupos | feature/groups-creation-management |
Req 11 |
| Rotación de claves de grupo | feature/groups-key-rotation |
Seguridad |
| Mensajería grupal integrada | feature/groups-messaging |
Req 12 |
| Archivar y silenciar conversaciones | feature/conversations-archive-mute |
Req 18 |
| Tests de RLS | feature/contacts-groups-tests |
Seguridad |
| Sanitización de inputs | feature/contacts-groups-sanitization |
Seguridad |
| Documentación ER de BD | docs/database-schema |
Docs |
Estimación: 28-34 horas
Responsabilidades transversales:
- Mantiene el esquema de BD en
supabase/migrations/ - Documenta las políticas RLS
- Tests de aislamiento entre usuarios
Rama de integración: integration/messaging
Áreas de código:
src/lib/storage/indexed-db.tssrc/app/api/messages/src/app/api/reactions/src/app/api/users/search/src/components/chat/src/components/search/
Tareas asignadas:
| Tarea | Rama feature | Requerimiento |
|---|---|---|
| Reacciones emoji | feature/messages-reactions |
Req 9 |
| Responder y reenviar mensajes | feature/messages-reply-forward |
Req 9, 16 |
| Editar y eliminar mensajes | feature/messages-edit-delete |
Req 9 |
| Búsqueda local con IndexedDB | feature/search-local-indexeddb |
Req 21 |
| UI de resultados de búsqueda | feature/search-ui-results |
Req 21 |
| Búsqueda de contactos en servidor | feature/search-contacts-server |
Req 21 |
| Autodestrucción de mensajes (TTL) | feature/messages-autodestruct |
Extra |
| Paginación cursor-based | feature/messages-pagination |
Req 7 |
| Tests de mensajería | feature/messaging-tests |
Seguridad |
| Diagramas de secuencia | docs/messaging-sequence-diagrams |
Docs |
Estimación: 26-32 horas
Responsabilidades transversales:
- Dueño del flujo de triple cifrado de mensajes
- Asegura que el texto plano NUNCA toque BD, logs, console.log ni red
Rama de integración: integration/multimedia
Áreas de código:
src/lib/crypto/file-encrypt.tssrc/app/api/attachments/src/components/chat/Attachment*src/components/chat/VoicePlayer.tsxsrc/hooks/useAttachments.tssrc/hooks/useVoiceRecorder.ts
Tareas asignadas:
| Tarea | Rama feature | Requerimiento |
|---|---|---|
| Subida de imágenes cifradas | feature/attachments-image-upload |
Req 10 |
| Subida de archivos cifrados | feature/attachments-file-upload |
Req 10 |
| Thumbnails cifrados | feature/attachments-thumbnails |
Req 10 |
| Visor fullscreen de imágenes | feature/attachments-image-viewer |
Req 10 |
| Grabación de mensajes de voz | feature/voice-messages-record |
Req 15 |
| Reproductor custom de voz | feature/voice-messages-player |
Req 15 |
| Validación real de MIME types | feature/multimedia-mime-validation |
Seguridad |
| Logs de auditoría multimedia | feature/multimedia-audit-logs |
Seguridad |
| Tests de multimedia | feature/multimedia-tests |
Seguridad |
| Documentación multimedia | docs/multimedia-encryption |
Docs |
Estimación: 26-34 horas
Responsabilidades transversales:
- Dueño del cifrado de archivos y audio
- Validación de tipos de archivo con magic numbers (no solo extensión)
- Prevención de subida de ejecutables
Rama de integración: integration/calls-push
Áreas de código:
src/lib/webrtc/src/components/calls/src/hooks/useVoiceCall.tssrc/hooks/useVideoCall.tssrc/hooks/useGroupCall.tspublic/sw.jssrc/lib/push/src/app/api/notifications/src/app/api/calls/
Tareas asignadas:
| Tarea | Rama feature | Requerimiento |
|---|---|---|
| Llamadas 1-a-1 completas | feature/calls-one-to-one-complete |
Req 13, 14 |
| Cifrado E2E con Insertable Streams | feature/calls-insertable-streams |
Seguridad |
| Llamadas grupales en topología mesh | feature/calls-group-mesh |
Extensión |
| Detección de speaker activo | feature/calls-active-speaker-detection |
UX |
| Service Worker para Web Push | feature/push-service-worker |
Req 19 |
| API de notificaciones push | feature/push-notifications-api |
Req 19 |
| Análisis con Burp Suite | feature/security-burp-suite |
Análisis |
| Documentación de llamadas | docs/calls-webrtc |
Docs |
Estimación: 32-42 horas (la carga más grande)
Responsabilidades transversales:
- Coordinadora de Burp Suite para pentesting manual
- Testing de llamadas con 2 máquinas en redes distintas
- Documentación de limitaciones de WebRTC por navegador
Semana 1 — Cerrar lo base pendiente Cada uno trabaja las primeras 2-3 tareas de su lista.
Semana 2 — Features avanzadas Llamadas grupales, push, búsqueda local, mensajes de voz.
Semana 3 — Seguridad defensiva y testing OWASP ZAP, Burp Suite, tests, documentación.
Últimos días — Pulido y defensa Testing manual E2E, videos de respaldo, ensayo de defensa.
Este README sirve como referencia viva del proyecto. Se actualiza al cierre de cada fase. Última actualización: 2026-04-23