البنية التقنية للتطبيق المحمول
تشرح هذه الصفحة كيف ينشئ تطبيق Crisis Connect المحمول الثقة، وينقل الرسائل والمكالمات مشفرة من طرف إلى طرف أثناء توفر الإنترنت، ويستمر عبر Bluetooth المباشر عند تعطل الشبكات، ويرقي المستجيبين إلى مسارات آمنة.
مفتوح المصدرemirhan-duman/Crisis-Connectملخص النظام
نموذج التشغيل
مبادئ التصميم
المحلي قبل السحابة
صُمم النظام ليعمل كاملاً دون الإنترنت. تضيف الطبقة المتصلة إلى مسار الطوارئ المحلي بدلاً من استبداله؛ وتبقى حمولات الطوارئ القريبة على مسارات راديو جهاز إلى جهاز.
المباشر قبل الشبكة
السلوك الافتراضي هو Bluetooth من نقطة إلى نقطة. لا تُضاف أوضاع الوصول الأوسع إلا ضمن ضوابط صريحة للدور والقدرة والمشغل.
تشغيل محدود
يفترض التصميم طاقة محدودة وظروفاً ميدانية غير مستقرة، لذا فإن حدود الطابور وإعادة المحاولة وخدمات المقدمة ونطاق المكالمة الصوتية الواحدة مقصودة.
الثقة صريحة
لا تصبح جهات الاتصال جاهزة تشغيلياً إلا بعد تهيئة QR وإثبات حيوية تشفيري، وتتطلب تدفقات المستجيبين الآمنة تحققاً مدعوماً بشهادة.
حزمة الراديو الأساسية
توسعات منضبطة
شبكة المستجيبين المصرح لهم
قناة GATT عامة اختيارية
بوابات تفعيل صريحة
ضوابط إساءة محدودة
تهيئة الثقة
نموذج الهوية والثقة
المسار الآمن لجهة الاتصال المعروفة
مصادقة المستجيب
أهلية الشبكة
دورة حياة المفتاح والشهادة
دورة حياة الرسالة
مسار الصوت
ملف الصوت
تسلسل المكالمة
سياسة تكيفية
ينتقل التنفيذ من WB إلى NB عند ارتفاع أزمنة الكتابة أو تكرار نقص البيانات أو عدم استقرار عمق التذبذب؛ ولا يعود للترقية إلا بعد تعافٍ مستمر. هذه سياسة استمرارية محدودة وليست ضمان QoS عاماً.
الطبقة المتصلة
مراسلة مشفرة من طرف إلى طرف
مكالمات WebRTC الصوتية والمرئية
SOS عبر الإنترنت
وضع الإنقاذ
إشارات SOS
- تضع SOS التي يطلقها المستخدم الجهاز في حالة استغاثة محلية وتبث إعلانات BLE قابلة للاتصال لخدمة الإنقاذ `0xCC00`.
- يبقى محتوى الإعلان ضئيلاً في الأساس: تعرض إشارة الراديو قابلية اكتشاف مستوى الخدمة لا هوية موثقة كاملة.
- صُمم بث SOS لتحسين اكتشاف المستجيبين القريبين أثناء عمليات تمشيط القطاعات عند تعطل الشبكات واسعة النطاق.
- تكلفة الخصوصية صريحة: تزداد قابلية الاكتشاف في وضع SOS، لذلك تهم الموافقة وحالة الواجهة الواضحة وضوابط المعدل.
التحقق من المستجيب
- بعد الاتصال يتبادل المستجيب والضحية تحدي واستجابة المصادقة على `0xCC10` و`0xCC11` ويشتقان مفتاح جلسة ECDH عابراً.
- يصل إثبات الدور المشفر على `0xCC20` ويجب أن يشمل مرجع الشهادة ونطاق الدور ووقت الإصدار والانتهاء.
- يفحص التحقق التوقيع ومرتكز الثقة وربط النص وانتهاء الصلاحية وتفويض الدور قبل السماح بأي ترقية آمنة.
- تُرفض الإثباتات المنتهية أو المشوهة أو خاطئة النطاق عند البوابة بدلاً من تخفيضها إلى دردشة إنقاذ.
دردشة إنقاذ آمنة
- لا تبث الضحية `OK` على `0xCC21`، لفتح المسار الآمن، إلا بعد تحقق ناجح.
- تتابع بعدها دردشة الإنقاذ المشفرة ثنائية الاتجاه على `0xCC30` و`0xCC31` بدلالات ACK لـ `DELIVERED` و`READ`.
- تشمل قيود الأساس الحالية حجم حزمة إثبات دور محدوداً وتجزئة مدركة لـ MTU وغلاف حزمة دردشة آمنة كبيراً لكن منتهياً.
- لا يصل العملاء غير المتحقق منهم مطلقاً إلى قناة الكتابة الآمنة؛ بوابة الترقية حد صارم وليست واجهة إرشادية.
خدمات الخلفية
RfcommForegroundService
يحافظ على مستمع النقل الكلاسيكي وإشارات المكالمات ودورات حياة نقل الوسائط أو الملفات للجلسات المباشرة القريبة.
GattSOSServerService
يستضيف مذيع SOS لوضع الإنقاذ ونقطة نهاية تفاعل المستجيب الآمنة التي تستخدمها الضحايا في تدفقات إنقاذ BLE.
GattRescueClientService + MeshAwareService
يعالج جلسات إنقاذ BLE من جانب المستجيب، وعند التفويض اكتشاف ومصادقة شبكة Wi-Fi Aware بسلوك إعادة اتصال محدود.
CrisisLink والأدوات المحلية وملاحظة iOS
يفرغ CrisisLinkForegroundService القياس عن بعد في الطابور بعد استعادة إنترنت متحقق منها، ويدير OfflineDownloadService مناطق الخرائط المحلية، ويظل عميل iOS المنفصل فعلياً لكنه وراء بوابات الجاهزية الخاصة به.