Arquitectura técnica móvil
Esta página explica cómo la aplicación móvil de Crisis Connect establece confianza, transporta mensajes y llamadas cifrados de extremo a extremo mientras hay internet, sigue funcionando mediante Bluetooth directo cuando las redes caen y promueve al personal de respuesta a rutas seguras.
Código abiertoemirhan-duman/Crisis-ConnectResumen del sistema
Modelo operativo
Principios de diseño
Local antes que la nube
El sistema está diseñado para funcionar por completo sin internet. La capa en línea complementa la ruta de emergencia sin conexión en lugar de sustituirla; las cargas de emergencia por proximidad permanecen en rutas de radio de dispositivo a dispositivo.
Directo antes que malla
El comportamiento predeterminado es Bluetooth punto a punto. Los modos de mayor alcance solo se añaden bajo controles explícitos de rol, capacidad y operador.
Ejecución acotada
El diseño asume energía limitada y condiciones de campo inestables, por lo que los límites de cola, reintento, servicios en primer plano y alcance de una sola llamada de voz son intencionales.
La confianza es explícita
Los contactos solo se habilitan después de un inicio QR y una prueba criptográfica de actividad, y los flujos seguros del personal de respuesta requieren verificación respaldada por certificado.
Pila principal de radio
Extensiones controladas
Malla de personal de respuesta autorizado
Canal público GATT voluntario
Controles explícitos de activación
Controles acotados contra abuso
Inicio de confianza
Modelo de identidad y confianza
Ruta segura de contactos conocidos
Autenticación del personal de respuesta
Elegibilidad para malla
Ciclo de vida de claves y certificados
Ciclo de vida del mensaje
Ruta de voz
Perfil de voz
Secuencia de llamada
Política adaptativa
La implementación baja de WB a NB cuando aumentan los tiempos de escritura, se repiten insuficiencias o se vuelve inestable la profundidad de fluctuación; solo vuelve a subir tras una recuperación sostenida. Es una política de continuidad acotada, no una garantía universal de calidad de servicio.
Capa en línea
Mensajería cifrada de extremo a extremo
Llamadas de voz y video WebRTC
SOS por internet
Modo Rescate
Emisión de balizas SOS
- El SOS activado por la persona coloca el dispositivo en estado local de emergencia y emite anuncios BLE conectables para el servicio de rescate `0xCC00`.
- El contenido del anuncio se mantiene mínimo en la base: la señal de radio expone capacidad de descubrimiento a nivel de servicio, no una identidad autenticada completa.
- La difusión SOS está diseñada para mejorar el descubrimiento de personal de respuesta cercano durante barridos por sector cuando las redes de área amplia no funcionan.
- El costo de privacidad es explícito: la capacidad de descubrimiento aumenta en modo SOS, por lo que importan el consentimiento, un estado claro en la interfaz y controles de frecuencia.
Verificación del personal de respuesta
- Tras conectar, la persona de respuesta y la víctima intercambian desafío y respuesta de autenticación en `0xCC10` y `0xCC11`, y derivan una clave de sesión ECDH efímera.
- La prueba de rol cifrada llega en `0xCC20` y debe incluir referencia de certificado, ámbito de rol, hora de emisión y vencimiento.
- La validación comprueba firma, ancla de confianza, vinculación de transcripción, vencimiento y autorización de rol antes de permitir una promoción segura.
- Las pruebas vencidas, malformadas o de ámbito incorrecto se rechazan en la puerta en lugar de degradarse a chat de rescate.
Chat de rescate seguro
- Solo tras una verificación correcta la víctima emite `OK` en `0xCC21`, abriendo la ruta segura.
- El chat de rescate bidireccional cifrado continúa entonces en `0xCC30` y `0xCC31` con semántica ACK `DELIVERED` y `READ`.
- Las restricciones de la base actual incluyen tamaño acotado de paquete de prueba de rol, fragmentación consciente de MTU y una envolvente de paquetes de chat seguro grande pero finita.
- Los clientes no verificados nunca alcanzan el canal de escritura seguro; la puerta de promoción es un límite estricto, no una interfaz meramente orientativa.
Servicios en segundo plano
RfcommForegroundService
Mantiene el receptor de transporte clásico, la señalización de llamadas y los ciclos de vida de transferencia de multimedia o archivos para sesiones directas cercanas.
GattSOSServerService
Aloja el difusor SOS del Modo Rescate y el punto de interacción segura con personal de respuesta usado por víctimas en flujos de rescate BLE.
GattRescueClientService + MeshAwareService
Gestiona sesiones de rescate BLE del lado de personal de respuesta y, cuando se autoriza, descubrimiento y autenticación de malla Wi-Fi Aware con comportamiento de reconexión acotado.
CrisisLink, herramientas sin conexión y nota sobre iOS
CrisisLinkForegroundService vacía la telemetría en cola tras una recuperación de internet validada, OfflineDownloadService gestiona regiones de mapas sin conexión y el cliente iOS independiente es real, pero aún tiene sus propios controles de preparación pendientes.