Architecture technique mobile
Cette page explique comment l'application mobile Crisis Connect établit la confiance, transmet des messages et des appels chiffrés bout à bout lorsque l'internet est disponible, continue de fonctionner via Bluetooth direct lorsque les réseaux tombent en panne, et dirige les intervenants vers des chemins sécurisés.
Code source ouvertemirhan-duman/Crisis-ConnectRésumé du système
Mode de fonctionnement
Principes de conception
Local avant le cloud
Le système est conçu pour fonctionner entièrement sans connexion Internet. La couche en ligne ajoute à la voie d'urgence hors ligne plutôt que de la remplacer ; les communications d'urgence locales restent sur les chemins radio entre les appareils.
Directement Avant le Réseau
Le comportement par défaut est le Bluetooth point-à-point. Les modes à portée plus importante sont ajoutés uniquement sous le contrôle explicite du rôle, des capacités et de l'opérateur.
Durée d'exécution limitée
La conception suppose une alimentation limitée et des conditions de terrain instables, de sorte que les limites de file d'attente, les limites de tentatives, les services en premier plan et la portée vocale unique sont intentionnelles.
La confiance est explicite
Les contacts ne deviennent opérationnels qu'après un démarrage par QR plus une vérification cryptographique de l'activité, et les flux sécurisés pour les répondants nécessitent une vérification basée sur les certificats.
Pile radio principale
Extensions Contrôlées
Réseau de Réponses Autorisé
Canal GATT Public Opt-in
Activation explicite
Contrôles d'abus limités
Démarrage de confiance
Modèle d'identité et de confiance
Chemin sécurisé pour les contacts connus
Authentification de l'intervenant
Éligibilité au réseau
Cycle de vie des clés et des certificats
Cycle de vie des messages
Chemin de voix
Profil de voix
Séquence d'appel
Politique adaptative
L'implémentation passe du WB au NB lorsque les temps d'écriture augmentent, que les sous-débits réapparaissent ou que la profondeur de jitter devient instable; elle revient à passer au WB uniquement après une récupération durable. Il s'agit d'une politique de continuité limitée, et non d'une garantie QoS universelle.
Couche en ligne
Messagerie chiffrée de bout en bout
Appels vocaux et vidéo WebRTC
SOS sur Internet
Mode de sauvetage
Beacon SOS
- Un signal SOS déclenché par l'utilisateur place l'appareil dans un état de détresse local et émet des publicités BLE connectables pour le service `0xCC00`.
- Le contenu de la publicité reste minimal dans la base : le signal radio expose la découverte au niveau du service plutôt qu'une identité authentifiée complète.
- La diffusion SOS est conçue pour améliorer la découverte des intervenants à proximité lors des opérations de balayage sectoriel lorsque les réseaux étendus sont hors service.
- Le coût de confidentialité est explicite : la découverte augmente en mode SOS, il est donc important le consentement, l'état UI clair et les contrôles de débit.
Vérification des intervenants
- Après la connexion, les intervenant et la victime échangent un défi d'authentification et une réponse sur `0xCC10` et `0xCC11` et dérivent une clé de session ECDH éphémère.
- La preuve de rôle chiffrée arrive sur `0xCC20` et doit inclure une référence de certificat, la portée du rôle, l'heure d'émission et la date d'expiration.
- Les vérifications de validation signent, confiance, liaison de transcript, expiration et autorisation de rôle avant qu'une promotion sécurisée ne soit autorisée.
- Les preuves invalides, malformées ou hors de portée sont rejetées à la porte plutôt que d'être dégradées dans le chat de secours.
Chat de secours sécurisé
- Seulement après une vérification réussie, la victime émet `OK` sur `0xCC21`, ouvrant ainsi le chemin sécurisé.
- Le chat de secours bidirectionnel chiffré se poursuit ensuite sur `0xCC30` et `0xCC31` avec des mécanismes d'accusé de réception `DELIVERED` et `READ`.
- Les contraintes de base actuelles comprennent une taille de paquet de preuve de rôle limitée, un découpage conscient de MTU et une enveloppe de paquet de chat sécurisé de grande mais finie.
- Les clients non vérifiés n'atteignent jamais le canal d'écriture sécurisé ; la porte de promotion est une limite rigide, et non une interface utilisateur consultative.
Services en arrière-plan
RfcommForegroundService
Maintient l'écouteur de transport classique, la signalisation d'appel et les cycles de vie de transfert de médias ou de fichiers pour les sessions locales.
GattSOSServerService
Héberge le transmetteur SOS du mode de secours et le point d'extrémité d'interaction sécurisé avec le répondant utilisé par les victimes dans les flux de secours BLE.
GattRescueClientService + MeshAwareService
Gère les sessions de secours BLE côté répondant et, lorsqu'elles sont autorisées, la découverte Wi-Fi Aware et l'authentification du réseau avec un comportement de reconnexion limité.
CrisisLink, Outils hors ligne et Note iOS
Le service CrisisLinkForegroundService vide la télémétrie en attente après une récupération Internet validée, le OfflineDownloadService gère les régions de carte hors ligne et le client iOS distinct reste réel mais se trouve toujours derrière ses propres portes de préparation.