# نظام مراسلة آمن للمؤسسات
**نظام تواصل داخلي مُدار عبر MDM ومعزول عن الإنترنت – Proof of Concept (POC)**
## نبذة عن المشروع
نظام مراسلة داخلي **Self-Hosted** مصمم للمؤسسات التي تحتاج إلى إبقاء جميع الاتصالات والبيانات داخل شبكتها الخاصة دون الاعتماد على خدمات سحابية خارجية.
يعتمد المشروع على خادم **Go WebSocket** عالي الأداء لدعم عدد كبير من الاتصالات المتزامنة، مع تطبيق عميل مبني باستخدام **Flutter**. كما تتم إدارة الأجهزة وتأمينها بالكامل من خلال **Headwind MDM**، لتحويل الهواتف والأجهزة إلى أجهزة مخصصة للمراسلة فقط ومقاومة لمحاولات العبث أو تجاوز القيود.
## المشكلة التي يعالجها المشروع
بعض المؤسسات والبيئات الحساسة، مثل البيئات **المُنظمة أو المعزولة عن الإنترنت (Air-Gapped)**، تحتاج إلى نظام مراسلة داخلي يضمن:
* بقاء البيانات والاتصالات داخل الشبكة الخاصة.
* عدم الاعتماد على خدمات المراسلة السحابية الخارجية.
* منع المستخدمين من تثبيت تطبيقات غير مصرح بها.
* تقليل احتمالية تسريب أو استخراج البيانات من الأجهزة.
* التحكم المركزي في الأجهزة والتطبيقات المستخدمة عليها.
## البنية التقنية
تم بناء النظام باستخدام:
* **Go + Gorilla WebSockets** لإنشاء خادم WebSocket عالي التزامن.
* **PostgreSQL** لتخزين البيانات بشكل دائم.
* **JWT Authentication** للمصادقة بدون الاعتماد على جلسات خادمية.
* **Docker Compose** لتشغيل كامل النظام ونشره بأمر واحد.
* **Flutter** لبناء تطبيق المراسلة.
* **Headwind MDM** لتسجيل الأجهزة وإدارتها وتثبيت التطبيق بشكل صامت وتفعيل وضع Kiosk.
كما تم استخدام `--dart-define` لحقن إعدادات عنوان الخادم أثناء عملية البناء، مما يسمح باستخدام نفس تطبيق Flutter مع بيئات ونشرات مختلفة.
## التقنيات المستخدمة
**Go – Gorilla WebSockets – Flutter – PostgreSQL – Docker Compose – JWT Authentication – Headwind MDM**
## أهم المميزات
* خادم WebSocket عالي التزامن باستخدام Go.
* تطبيق مراسلة مبني باستخدام Flutter.
* واجهة مستخدم بطابع تقني داكن.
* مصادقة Stateless باستخدام JWT.
* دعم آليات Passkeys المُدارة.
* نشر كامل النظام باستخدام Docker Compose بأمر واحد.
* تسجيل الأجهزة وإدارتها مركزيًا من خلال MDM.
* توزيع التطبيق على الأجهزة بشكل صامت.
* تفعيل **Kiosk Mode** لتحويل الجهاز إلى جهاز مخصص للمراسلة فقط.
* جاهزية للعمل في بيئات **Air-Gapped** بدون الحاجة إلى اتصال بالإنترنت.
## الجوانب الأمنية
تم تصميم النظام مع التركيز على حماية البيئة التشغيلية والبيانات، ومن أبرز الإجراءات:
* تفعيل **Kiosk Lockdown** لمنع تثبيت التطبيقات أو استخدام طرق Side-Loading غير مصرح بها.
* إبقاء جميع الاتصالات داخل الشبكة الخاصة بالمؤسسة.
* عدم الاعتماد على خدمات Cloud خارجية.
* توفير سيطرة مركزية على الأجهزة والتطبيقات من خلال MDM.
* تحقيق مستوى مرتفع من **Data Sovereignty** بحيث تظل البيانات تحت سيطرة المؤسسة.
## التحديات التقنية
من أبرز التحديات التي تم التعامل معها:
* تنسيق إعدادات البناء والتشغيل بين الخادم وتطبيق Flutter ونظام إدارة الأجهزة MDM.
* تصميم طبقة WebSocket قادرة على الحفاظ على سرعة الاستجابة مع وجود عدد كبير من العملاء المتصلين في الوقت نفسه.
* إنشاء آلية نشر موحدة تجمع بين Docker وMDM.
* تقييد الأجهزة بحيث لا يستطيع المستخدم تجاوز القيود الأمنية المفروضة.
## النتيجة
تم الوصول إلى نظام مراسلة داخلي متكامل يوفر:
* أجهزة مقيدة ومخصصة للمراسلة بدون إمكانية تجاوز القيود بسهولة.
* تشغيل كامل داخل الشبكة الخاصة بالمؤسسة.
* عدم الحاجة إلى خدمات مراسلة خارجية.
* نشر وإدارة آلية للتطبيقات والأجهزة من خلال Docker وMDM.
* بنية قابلة للتوسع لدعم عدد كبير من الأجهزة والعملاء المتزامنين.