وثائق الامتثال للتنصت ANSSI R226
الغرض من الوثيقة: توفر هذه الوثيقة المواصفات الفنية المطلوبة للحصول على تفويض ANSSI R226 بموجب المواد R226-3 و R226-7 من قانون العقوبات الفرنسي لمركز خدمات الرسائل القصيرة OmniMessage (SMSc).
التصنيف: وثائق الامتثال التنظيمي
السلطة المستهدفة: الوكالة الوطنية لأمن نظم المعلومات (ANSSI)
التنظيم: R226 - حماية خصوصية المراسلات والتنصت القانوني
1. المواصفات الفنية التفصيلية
1.1 ورقة البيانات الفنية التجارية
اسم المنتج: مركز خدمات الرسائل القصيرة OmniMessage (SMSc)
نوع المنتج: مركز رسائل الاتصالات
الوظيفة الأساسية: توجيه الرسائل القصيرة، التخزين، والتسليم
بروتوكولات الشبكة: REST API (HTTPS)، بروتوكولات الرسائل القصيرة (SMPP، IMS، SS7/MAP عبر الواجهات الخارجية)
نموذج النشر: تطبيق خادم محلي
تكنولوجيا المكدس: Elixir/Erlang، إطار عمل Phoenix، Mnesia، MySQL/PostgreSQL
القدرات الأساسية
معالجة الرسائل:
- قائمة انتظار رسائل قصيرة مركزية مع REST API
- تصميم غير مرتبط بالبروتوكول يدعم واجهات SMPP، IMS، SS7/MAP
- محرك توجيه ديناميكي مع توجيه قائم على البادئات
- منطق إعادة المحاولة مع زيادة زمن الانتظار
- معالجة انتهاء صلاحية الرسائل وقائمة الرسائل الميتة
- توليد سجلات تفاصيل المكالمات (CDR) وأرشفتها
- الأداء: ~1,750 رسالة/ثانية معدل الإدخال، سعة 150 مليون رسالة/يوم
تخزين الرسائل:
- قائمة انتظار الرسائل النشطة: قاعدة بيانات Mnesia في الذاكرة مع إمكانية الاستمرارية على القرص
- التخزين الأساسي: RAM للوصول السريع للغاية (زمن تأخير أقل من مللي ثانية)
- النسخ الاحتياطي على القرص: ��ضع
disc_copiesيكتب إلى القرص لاستعادة النظام بعد التعطل - الاستعادة التلقائية: تبقى الرسائل بعد إعادة تشغيل النظام
- الاحتفاظ: قابل للتكوين (الإعداد الافتراضي 24 ساعة)، ثم تنظيف تلقائي
- أرشيف CDR طويل الأجل: قاعدة بيانات MySQL/PostgreSQL (منفصلة عن قائمة انتظار الرسائل)
- يتم كتابة CDRs عند تسليم الرسائل، انتهاء صلاحيتها، فشلها، أو رفضها
- قاعدة البيانات SQL تستخدم فقط لتصدير/أرشفة CDR، وليس لعمليات الرسائل النشطة
- لا تأثير على الأداء في توجيه الرسائل (كتابة غير متزامنة)
- فوائد العمارة ذات الطبقتين:
- قائمة الانتظار النشطة: سريعة للغاية (1,750 رسالة/ثانية) بدون عنق زجاجة SQL
- أرشيف CDR: احتفاظ طويل الأجل (أشهر/سنوات) للفوترة والتنصت القانوني
- فصل نظيف: عمليات الرسائل لا تلمس SQL أبداً
- دعم العنقود للتوافر العالي (تكرار Mnesia عبر العقد)
واجهات الشبكة:
- REST API: HTTPS (المنفذ 8443) للتواصل مع الواجهات الخارجية
- لوحة التحكم: HTTPS (المنفذ 8086) للإدارة عبر الويب
- بروتوكولات الواجهة: SMPP، IMS، SS7/MAP (عبر تطبيقات البوابة الخارجية)
- قاعدة البيانات: MySQL/PostgreSQL لتخزين CDR
التوجيه والمعالجة:
- توجيه ديناميكي للرسائل القصيرة مع تحديثات تكوين في وقت التشغيل
- مطابقة قائمة على البادئات (أرقام الاتصال/المتصل)
- تصفية مصدر SMSc ونوع الرسائل
- توازن الحمل القائم على الأولوية والوزن
- ترجمة الأرقام وتطبيعها
- دعم استعلام DNS ENUM (تعيين رقم E.164)
- قدرات الرد التلقائي وإسقاط الرسائل
- التحكم في الشحن لكل مسار (تكامل CGRates)
📖 تم توثيق العمارة والميزات الكاملة في README.md
1.2 قدرات التنصت
1.2.1 اكتساب الرسائل
التقاط الرسائل القصيرة:
- يقوم مركز خدمات الرسائل القصيرة OmniMessage بمعالجة جميع الرسائل القصيرة بين المشتركين والشبكات الخارجية
- الوصول الكامل إلى بيانات التعريف ومحتوى الرسائل بما في ذلك:
- MSISDN المصدر (رقم الهاتف المحمول)
- MSISDN الوجهة (رقم الهاتف المحمول)
- IMSI المصدر (معرف المشترك الدولي للهاتف المحمول)
- IMSI الوجهة
- نص الرسالة (محتوى النص)
- بيانات PDU الخام (وحدة البيانات البروتوكولية)
- معلومات TP-DCS (نظام ترميز البيانات)
- ترميز الرسالة (GSM7، UCS-2، 8-bit، Latin-1)
- مؤشرات الرسائل متعددة الأجزاء وبيانات إعادة التجميع
- معلومات رأس بيانات المستخدم (UDH)
اكتساب بيانات التعريف للرسائل:
- سجلات تفاصيل المكالمات الكاملة (CDR) المخزنة في قاعدة البيانات مع:
- معرف الرسالة (معرف فريد)
- رقم الاتصال (MSISDN المصدر)
- رقم المتصل (MSISDN الوجهة)
- الطابع الزمني للإرسال (عندما دخلت الرسالة النظام)
- الطابع الزمني للتسليم (عندما تم تسليم الرسالة)
- الطابع الزمن�� لانتهاء الصلاحية (عندما انتهت الرسالة إذا لم يتم تسليمها)
- الحالة (تم التسليم، انتهت صلاحيتها، فشلت، رُفضت)
- عدد محاولات التسليم
- أجزاء الرسالة (لرسائل SMS المجمعة/متعددة الأجزاء)
- معرف SMSc المصدر
- معرف SMSc الوجهة
- العقدة الأصلية (اسم عقدة مجموعة Erlang)
- العقدة الوجهة (للنشر الموزع)
- علامة الرسالة الميتة (مؤشر استنفاد إعادة المحاولة)
📖 تم توثيق مخطط CDR الكامل في CDR_SCHEMA.md
الوصول إلى قائمة انتظار الرسائل:
- مراقبة قائمة انتظار الرسائل في الوقت الحقيقي
- نقاط نهاية REST API لاسترجاع الرسائل
- استعلامات قاعدة البيانات للبحث التاريخي عن الرسائل
- قدرات التصفية بواسطة:
- رقم الهاتف (المصدر/الوجهة)
- بوابة SMSc
- نطاق الوقت
- حالة الرسالة
- محاولات التسليم
📖 تم توثيق API الكامل في API_REFERENCE.md
1.2.2 قدرات معالجة ا��بيانات
عمارة تخزين الرسائل (نظام ذو طبقتين):
يستخدم SMSc عمارة تخزين متطورة ذات طبقتين تفصل بين معالجة الرسائل التشغيلية وأرشفة طويلة الأجل:
الطبقة 1: قائمة انتظار الرسائل النشطة (Mnesia)
- الغرض: عمليات توجيه وتسليم الرسائل في الوقت الحقيقي
- التكنولوجيا: قاعدة بيانات Mnesia الموزعة Erlang
- وضع التخزين: في الذاكرة مع نسخ احتياطية على القرص
- التخزين الأساسي في RAM لأقصى سرعة
- مزامنة تلقائية للقرص لاستعادة النظام بعد التعطل
- تبقى الرسائل عبر إعادة تشغيل النظام
- الأداء: عمليات القراءة/الكتابة أقل من مللي ثانية
- الاحتفاظ: قصير الأجل (الإعداد الافتراضي 24 ساعة)، قابل للتكوين
- التنظيف: أرشفة تلقائية إلى قاعدة بيانات CDR، ثم حذف من Mnesia
- العمليات: جميع عمليات قائمة انتظار الرسائل (إدراج، تحديث، حالة التسليم، توجيه)
- الميزة الحرجة: لا يتم استعلام قاعدة البيانات SQL أبداً أثناء توجيه/تسليم الرسائل
الطبقة 2: أرشيف CDR (MySQL/PostgreSQL)
- الغرض: التخزين طويل الأجل للفوترة، التحليلات، والتنصت القانوني
- التكنولوجيا: قاعدة بيانات SQL التقليدية (MySQL أو PostgreSQL)
- محفز الكتابة: يتم كتابة CDRs فقط عندما تصل الرسائل إلى الحالة النهائية:
- تم تسليم الرسالة بنجاح
- انتهت صلاحية الرسالة (تجاوزت فترة الصلاحية)
- فشلت الرسالة بشكل دائم
- رُفضت الرسالة بواسطة قواعد التوجيه
- وضع الكتابة: كتابة غير متزامنة (لا تأثير على أداء توجيه الرسائل)
- الاحتفاظ: طويل الأجل (أشهر إلى سنوات)، قابل للتكوين حسب المتطلبات التنظيمية
- العمليات: استعلامات تاريخية، تقارير، امتثال، تنصت قانوني
- الوصول: استعلامات SQL، REST API (مستقبلاً)، تصدير CSV/JSON
فوائد العمارة المعمارية الرئيسية:
- الأداء: عمليات التوجيه النشطة لا تلمس SQL (لا عنق زجاجة قاعدة البيانات)
- القابلية للتوسع: تتعامل Mnesia مع 1,750+ رسالة/ثانية بدون عبء SQL
- الموثوقية: يضمن وضع
disc_copiesعدم فقدان الرسائل عند التعطل - الامتثال: توفر قاعدة بيانات CDR مسار تدقيق دائم
- فصل الاهتمامات: البيانات التشغيلية مقابل البيانات الأرشيفية مفصولة بوضوح
دورة حياة الرسالة:
1. تم تقديم الرسالة → تم تخزينها في Mnesia (RAM + نسخ احتياطية على القرص)
2. تم توجيه الرسالة → استعلام Mnesia (سريع للغاية)
3. تم تسليم الرسالة/انتهت صلاحيتها → تم كتابة CDR إلى SQL (غير متزامن)
4. بعد 24 ساعة → تم حذف الرسالة من Mnesia (عامل التنظيف)
5. تبقى CDR في SQL → متاحة لاستعلامات التنصت القانوني (سنوات)
الاحتفاظ واسترجاع البيانات:
- الاحتفاظ القابل للتكوين بجسم الرسالة أو حذفه من أجل الخصوصية
- الحفاظ على البيانات الثنائية (تخزين PDU الخام في كل من Mnesia وCDR)
- القدرة على البحث النصي الكامل (إذا تم تمكينه على قاعدة بيانات CDR)
- حقول CDR المفهرسة لاستعلامات التنصت القانوني السريعة
تتبع الواجهة الأمامية:
- تتبع في الوقت الحقيقي لواجهات SMSC الخارجية (SMPP، IMS، بوابات MAP)
- تسجيل الواجهة الأمامية مع مراقبة نبضات القلب
- تتبع حالة الصحة (نشط/منتهي)
- تاريخ التشغيل/التوقف
- تتبع عنوان IP واسم المضيف
- تسجيل تكوين محدد للواجهة الأمامية
1.2.3 قدرات التحليل
المراقبة في الوقت الحقيقي:
- لوحة معلومات واجهة المستخدم على الويب تظهر:
- قائمة انتظار الرسائل النشطة
- تقديم الرسائل وتسليمها
- قرارات التوجيه واختيار البوابة
- حالة بوابة الواجهة الأمامية
- استخدام موارد النظام
- تكامل مقاييس Prometheus للمراقبة التشغيلية
- مقاييس الأداء (معدل النقل، زمن التأخير، معدلات النجاح)
📖 دليل المراقبة الكامل في OPERATIONS_GUIDE.md
📖 توثيق المقاييس في METRICS.md
التحليل التاريخي:
- قاعدة بيانات CDR قابلة للاستعلام بواسطة:
- نطاق الوقت
- رقم الطرف المتصل/المتصل به
- حالة الرسالة
- بوابة SMSC
- محاولات التسليم
- محتوى الرسالة (بحث نصي كامل إذا تم تمكينه)
- قدرات التحليل الإحصائي:
- حجم الرسائل حسب الساعة/اليوم/الشهر
- معدلات النجاح/الفشل حسب المسار
- متوسط أوقات التسليم
- تحليل الرسائل متعددة الأجزاء
- أنماط التسليم الفاشلة
تتبع المشتركين:
- تاريخ الرسائل حسب رقم الهاتف (MSISDN)
- تتبع قائم على IMSI (عند توفره من واجهات IMS/MAP)
- تحليل أنماط المكالمات
- ارتباط الأطراف المتواصلة
- التحليل الزمني (تكرار الرسائل، أنماط التوقيت)
تحليلات الشبكة:
- مقاييس أداء المسار
- توفر وصحة البوابة
- تصور تدفق الرسائل
- توزيع عقد العنقود (نشر متعدد العقد)
- تحليل محاولات التسليم
- تحليل أنماط إعادة المحاولة
ذكاء الأرقام:
- تطبيع رقم E.164
- تحديد البلد/المنطقة من بادئة الرقم
- قواعد ترجمة وإعادة كتابة الأرقام
- استعلام DNS ENUM لذكاء التوجيه
- قرارات التوجيه القائمة على البادئات
📖 دليل ترجمة الأرقام في number_translation_guide.md
📖 دليل التوجيه في sms_routing_guide.md
1.3 قدرات التدابير المضادة
1.3.1 آليات حماية الخصوصية
سرية الاتصالات:
- HTTPS/TLS لتواصل REST API
- مصادقة قائمة على الشهادات
- تشفير اتصال قاعدة البيانات (دعم TLS)
- خيار حذف جسم الرسالة بعد التسليم
التحكم في الوصول:
- التحكم في الوصول إلى واجهة المستخدم على الويب
- آليات مصادقة API
- ضوابط وصول قاعدة البيانات
- مصادقة تسجيل الواجهة الأمامية
تسجي�� التدقيق:
- تسجيل كامل لأحداث النظام
- تسجيل تقديم/تسليم الرسائل
- تتبع تغييرات التكوين
- تسجيل الإجراءات الإدارية
- تسجيل منظم مع مستويات قابلة للتكوين
1.3.2 ميزات حماية البيانات
خصوصية الرسائل:
- خيار حذف جسم الرسالة بعد التسليم
- استبعاد جسم الرسالة من عرض واجهة المستخدم (اختياري)
- استبعاد جسم الرسالة من التصديرات (اختياري)
- يمكن تعيين حقل جسم الرسالة CDR إلى NULL من أجل الخصوصية
أمان قاعدة البيانات:
- دعم تشفير جداول MySQL (ENCRYPTION='Y')
- دعم تشفير البيانات الشفاف في PostgreSQL
- فصل أدوار الوصول إلى قاعدة البيانات
- حسابات مستخدمين للقراءة فقط للتحليلات
- وصول مقيد إلى محتوى الرسالة
تقوية النظام:
- الحد الأدنى من المنافذ الشبكية المكشوفة
- إدارة شهادات TLS
- تخزين تكوين آمن
- فصل التكوين بناءً على البيئة
- أمان العنقود مع بروتوكول توزيع Erlang
1.4 عمارة التخزين: تصميم ذو طبقتين Mnesia + SQL
نظرة عامة
يستخدم مركز خدمات الرسائل القصيرة OmniMessage عمارة تخزين فريدة ذات طبقتين مصممة خصيصًا لفصل معالجة الرسائل التشغيلية عالية الأداء عن التخزين طويل الأجل للامتثال والأرشفة.
الطبقة 1: قائمة انتظار الرسائل في الذاكرة Mnesia
ما هي Mnesia؟
- قاعدة بيانات موزعة مدمجة في وقت تشغيل Erlang/OTP
- تخزين هجين: أساسي في الذاكرة مع نسخ احتياطية تلقائية على القرص
- معاملات متوافقة مع ACID
- تكرار العنقود عبر عدة عقد
وضع التخزين: disc_copies
- في الذاكرة الأساسية: جميع الرسائل النشطة مخزنة في RAM
- عمليات القراءة/الكتابة سريعة للغاية (أقل من مللي ثانية)
- لا توجد عمليات إدخال/إخراج على القرص أثناء عمليات توجيه الرسائل العادية
- يمكّن من معدل نقل 1,750+ رسالة/ثانية
- نسخ احتياطي على القرص (تلقائي): تقوم Mnesia بمزامنة RAM مع القرص
- تتم الكتابات بشكل غير متزامن في الخلفية
- يتم تحديث النسخة على القرص مع كل التزام للمعاملة
- استعادة من التعطل: تعيد تشغيل النظام مع جميع الرسائل سليمة
- الموقع: دليل
Mnesia.*/في بيانات التطبيق
دورة حياة الرسالة في Mnesia:
- تصل الرسالة عبر REST API → يتم إدراجها في Mnesia RAM + النسخ الاحتياطية على القرص
- يستعلم محرك التوجيه Mnesia → استجابة فورية (الوصول إلى الذاكرة)
- تستعلم البوابة الخارجية عن الرسائل → استعلام Mnesia (الوصول إلى الذاكرة)
- تقوم البوابة بتحديث حالة التسليم → تحديث Mnesia (ذاكرة + قرص)
- بعد التسليم/انتهاء الصلاحية → يتم وضع علامة على الرسالة للتنظيف
- عامل التنظيف (الإعداد الافتراضي 24 ساعة) → يتم حذف الرسالة من Mnesia
الميزة الحرجة للأداء:
- لا استعلامات قاعدة بيانات SQL أثناء توجيه/تسليم الرسائل النشطة
- يتم تجاوز SQL تم��مًا لمعالجة الرسائل التشغيلية
- هذا يقضي على عنق الزجاجة التقليدي في SMS-C (إدخال/إخراج قاعدة البيانات)
الطبقة 2: قاعدة بيانات SQL لتصدير/أرشفة CDR
ما هو CDR (سجل تفاصيل المكالمات)؟
- سجل تدقيق دائم لبيانات التعريف ومحتوى الرسالة
- مكتوب إلى قاعدة بيانات MySQL أو PostgreSQL
- يستخدم للفوترة، التحليلات، الامتثال، والتنصت القانوني
متى يتم كتابة CDRs: يتم إنشاء سجلات CDR فقط عندما تصل الرسائل إلى حالة نهائية:
- ✅ تم تسليم الرسالة بنجاح
- ✅ انتهت صلاحية الرسالة (تجاوزت فترة الصلاحية دون تسليم)
- ✅ فشلت الرسالة بشكل دائم (رقم غير صالح، خطأ في التوجيه)
- ✅ تم رفض الرسالة (قواعد التوجيه، فشل التحقق)
كيف يتم كتابة CDRs:
- كتابة غير متزامنة: يتم كتابة CDRs في عملية عامل خلفية
- لا حظر: لا تنتظر توجيه الرسائل لكتابة SQL
- إدراج مجمع: يتم تجميع عدة CDRs (الإعداد الافتراضي 100) وكتابتها معًا
- فترة التفريغ: 100 مللي ثانية (قابل للتكوين)
- معالجة الأخطاء: يتم تسجيل الكتابات الفاشلة لـ CDR، وتستمر معالجة الرسالة
# التكوين في config/runtime.exs
config :sms_c,
batch_insert_batch_size: 100, # حجم الدفعة لكتابات CDR
batch_insert_flush_interval_ms: 100 # فترة التفريغ
الغرض من قاعدة بيانات SQL:
- ❌ لا تستخدم لـ: عمليات قائمة انتظار الرسائل النشطة
- ❌ لا تستخدم لـ: قرارات توجيه الرسائل
- ❌ لا تستخدم لـ: تسليم الرسائل في الوقت الحقيقي
- ✅ تستخدم فقط لـ: أرشفة CDR طويلة الأجل واستعلامات تاريخية
- ✅ تستخدم فقط لـ: استعلامات التنصت القانوني (شهور/سنوات من التاريخ)
- ✅ تستخدم فقط لـ: تقارير الفوترة والتحليلات
مخطط العمارة
الأسطورة:
- الخطوط الصلبة: عمليات متزامنة (في الوقت الحقيقي)
- الخطوط المتقطعة: عمليات غير متزامنة (في الخلفية)
- الأخضر: الطبقة عالية الأداء (في الذاكرة)
- الأزرق: الطبقة الأرشيفية (SQL المستمر)
تداعيات التنصت القانوني
الرسائل الحديثة (< 24 ساعة):
- متاحة عبر Mnesia (استعلامات REST API)
- ا��ترجاع سريع للغاية
- محتوى الرسالة الكامل متاح
- المراقبة في الوقت الحقيقي ممكنة
الرسائل التاريخية (> 24 ساعة):
- متاحة عبر قاعدة بيانات SQL (جدول CDR)
- أداء استعلام SQL القياسي
- بيانات التعريف الكاملة للرسالة متاحة دائمًا
- محتوى الرسالة متاح (ما لم يتم تمكين وضع الخصوصية)
فوائد الامتثال:
- لا فقدان للبيانات: يضمن وضع
disc_copiesبقاء الرسائل سليمة بعد الأعطال - مسار تدقيق دائم: يتم الاحتفاظ بـ CDRs لسنوات في قاعدة بيانات SQL
- الأداء: استعلامات التنصت القانوني لا تؤثر على توجيه الرسائل
- المرونة: الرسائل الحديثة (Mnesia) + الرسائل التاريخية (SQL) كلاهما متاح
1.5 عمارة تكامل الواجهة الأمامية متعددة البروتوكولات
يستخدم مركز خدمات الرسائل القصيرة OmniMessage تصميمًا أساسيًا غير مرتبط بالبروتوكول يتفاعل مع بوابات خارجية محددة بالبروتوكول (واجهات) عبر REST API موحد. تسمح هذه العمارة للتنصت القانوني بالتقاط الرسائل بغض النظر عن البروتوكول الذي تم استخدامه لإرسالها أو استلامها.
نظرة عامة على العمارة
تفاصيل تكامل بروتوكول الواجهة الأمامية
1. تكامل الواجهة الأمامية IMS/SIP
تستخدم شبكات IMS بروتوكول SIP لتبادل الرسائل القصيرة عبر IP. تقوم بوابة IMS بترجمة بين SIP وREST API لمركز خدمات الرسائل القصيرة.
بيانات التنصت الخاصة بـ IMS:
- IMSI المصدر/الوجهة (من تسجيل IMS)
- رؤوس SIP P-Asserted-Identity
- Call-ID SIP للتتبع
- موقع شبكة IMS (P-Access-Network-Info)
- ملفات تعريف المشتركين من HSS IMS
2. تكامل الواجهة الأمامية SMPP
SMPP هو البروتوكول القياسي الصناعي لمجمعي الرسائل القصيرة ومقدمي الخدمات. تقوم بوابة SMPP بترجمة الرسائل القائمة على PDU إلى استدعاءات REST API.
بيانات التنصت الخاصة بـ SMPP:
- PDU SMPP الكامل (تم الحفاظ على التنسيق الثنائي)
- تفاصيل نظام ترميز البيانات (DCS)
- رأس بيانات المستخدم (UDH) للرسائل المجمعة
- معرف نظام ESME (تحديد العميل)
- معلومات خطة ترقيم TON/NPI
- علامات التسليم المسجلة
3. تكامل الواجهة الأمامية SS7/MAP
تستخدم الشبكات القديمة المتبدلة بروتوكول SS7 MAP للرسائل القصيرة. تقوم ب��ابة MAP بترجمة بين الإشارات SS7 وREST API.
بيانات التنصت الخاصة بـ SS7/MAP:
- IMSI من رسائل MAP
- عناوين Global Title (GT)
- عنوان MSC/VLR (تحديد عنصر الشبكة)
- عناوين الأطراف المتصلة SCCP
- رموز العمليات MAP
- تنسيق TP-User-Data الثنائي
التنصت الموحد عبر جميع البروتوكولات
الفائدة الرئيسية للتنصت القانوني: بغض النظر عن البروتوكول الذي تم استخدامه (IMS/SIP، SMPP، أو SS7/MAP)، تتجمع جميع الرسائل في النواة SMSc مع هيكل بيانات موحد، مما يمكّن:
- المراقبة غير المرتبطة بالبروتوكول: نقطة تنصت واحدة تلتقط جميع أنواع الرسائل
- تنسيق CDR الموحد: جميع البروتوكولات تكتب إلى نفس مخطط CDR
- التتبع عبر البروتوكولات: تتبع الرسائل عبر حدود البروتوكول
- الحفاظ على البيانات الكاملة: يتم الحفاظ على الحقول الخا��ة بالبروتوكول في CDR
ملخص تدفق البيانات:
تحديد البروتوكول في CDR:
- يشير حقل
source_smscإلى بروتوكول الواجهة الأمامية (مثل "ims.gateway-01"، "smpp.customer123"، "map.msc-01") - يمكّن من التصفية والتحليل حسب نوع البروتوكول
- يمكن لاستعلامات التنصت القانوني استهداف بروتوكولات معينة أو جميع البروتوكولات
1.6 العمارة الفنية للتنصت القانوني
نقاط تكامل التنصت القانوني
توفر العمارة ذات الطبقتين نقاط وصول متعددة للتنصت القانوني، محسّنة لكل من المراقبة في الوقت الحقيقي (Mnesia) والتحليل التاريخي (SQL).
1. الوصول عبر REST API للرسائل الحديثة (Mnesia):
الوصول إلى الرسائل النشطة في قائمة انتظار Mnesia (عادةً آخر 24 ساعة):
نقاط نهاية API للتنصت في الوقت الحقيقي:
GET /api/messages- قائمة الرسائل النشطة مع التصفيةGET /api/messages/{id}- الحصول على تفاصيل رسالة معينة (من Mnesia)GET /api/messages/get_by_smsc?smsc=X- الحصول على الرسائل حسب البوابة- جميع الاستعلامات تضرب Mnesia (في الذاكرة) للحصول على استجابة فورية
ملاحظة: تستعلم هذه النقاط النهاية قائمة انتظار الرسائل النشطة في Mnesia، مما يوفر الوصول إلى الرسائل التي تتم معالجتها حاليًا أو تم تسليمها مؤخرًا (ضمن فترة الاحتفاظ).
معلمات الاستعلام:
- تصفية بواسطة MSISDN المصدر/الوجهة
- تصفية بواسطة نطاق الوقت
- تصفية بواسطة بوابة SMSC
- تصفية بواسطة حالة الرسالة
- دعم الفرز والترتيب
2. الوصول المباشر إلى قاعدة بيانات CDR للرسائل التاريخية (SQL):
الوصول إلى الرسائل المؤرشفة في قاعدة بيانات SQL (جميع الرسائل التي تم تسليمها/انتهت صلاحيتها/فشلت):
الوصول المباشر إلى SQL:
- بيانات اعتماد قاعدة بيانات للقراءة فقط للأنظمة المصرح بها
- الوصول إلى استعلام SQL إلى جدول
cdrs(مسار تدقيق دائم) - طريقة الوصول: عميل SQL قياسي (mysql، psql، DBeaver، إلخ)
- مصدر البيانات: فقط الرسائل المؤرشفة (ليس قائمة الانتظار النشطة)
- حقول مفهرسة للبحث الفعال:
calling_number(مفهرس) - رقم الهاتف المصدرcalled_number(مفهرس) - رقم الهاتف الوجهةmessage_id(مفهرس) - معرف الرسالة الفريدsubmission_time(مفهرس) - عندما دخلت الرسالة النظامstatus(مفهرس) - الحالة النهائية للتسليمdest_smsc(مفهرس) - البوابة المستخدمة للتسليم
ملاحظة: تحتوي قاعدة بيانات CDR على سجلات دائمة لجميع الرسائل المعالجة. هذا هو المصدر الرئيسي لاستعلامات التنصت القانوني التاريخية (شهور/سنوات من البيانات).
3. تغذية الرسائل في الوقت الحقيقي (PubSub):
- تكامل Phoenix PubSub للأحداث في الوقت الحقيقي
- إشعارات تقديم الرسائل
- إشعارات تسليم الرسائل
- أحداث تغيير حالة الرسالة
- تصفية الأحداث الق��بلة للتكوين حسب المعايير
- دعم WebSocket للمراقبة الحية
4. واجهة تصدير دفعي:
- تصدير CSV لسجلات CDR
- تصدير JSON للوصول البرمجي
- حقول تصدير قابلة للتكوين
- تصديرات قائمة على نطاق الوقت
- تصديرات واعية للخصوصية (استبعاد محتوى الرسالة الاختياري)
واجهات التنصت القانونية وفقًا لمعايير ETSI
يوفر مركز خدمات الرسائل القصيرة OmniMessage الأساس لتنفيذ واجهات التنصت القانونية المتوافقة مع ETSI. بينما لا تنفذ النواة SMSc واجهات X1/X2/X3 بشكل أصلي، فإنها توفر جميع نقاط الوصول اللازمة التي يمكن دمجها مع أنظمة وظيفة الوساطة للتنصت القانوني (LIMF) الخارجية.
واجهات LI القياسية ETSI:
وصف الواجهات:
واجهة X1 - وظيفة الإدارة:
- الغرض: توفير أوامر التنصت وتتبع الأهداف من تنفيذ القانون إلى نظام التنصت
- الاتجاه: LEMF → LIMF (ثنائي الاتجاه)
- الوظائف:
- تفعيل/إلغاء تفعيل التنصت لأهداف محددة (MSISDNs، IMSIs)
- تعيين مدة التنصت وفترة الصلاحية
- تكوين معايير التصفية (أرقام الهواتف، نوافذ الوقت)
- استرجاع حالة التنصت
- التكامل مع SMSc:
- يحتفظ LIMF بقائمة الأهداف (قاعدة بيانات الأوامر)
- يستعلم LIMF من SMSc CDR/API عن الرسائل المطابقة
- يقوم LIMF بالتصفية بناءً على المعايير المقدمة من X1
واجهة X2 - تسليم IRI (المعلومات المتعلقة بالتنصت):
- الغرض: تسليم بيانات التعريف المتعلقة بالرسالة إلى تنفيذ القانون
- الاتجاه: LIMF → LEMF (اتجاه واحد)
- تنسيق البيانات: متوافق مع ETSI TS 102 232-x XML/ASN.1
- المحتوى من SMSc CDR:
- معرف الرسالة
- رقم الاتصال (MSISDN المصدر)
- رقم المتصل (MSISDN الوجهة)
- IMSI (المصدر والوجهة، إذا كانت متاحة)
- الطابع الزمني للإرسال
- الطابع الزمني للتسليم
- حالة الرسالة (تم التسليم/فشل/انتهت صلاحيتها)
- محاولات التسليم
- معلومات بوابة SMSC (المصدر/الوجهة)
- موقع الشبكة (إذا كان متاحًا)
- التكامل مع SMSc:
- يستعلم LIMF من قاعدة بيانات CDR عن أرقام الهواتف المستهدفة
- يقوم LIMF بتحويل سجلات CDR إلى تنسيق IRI متوافق مع ETSI
- يسلم LIMF IRI إلى LEMF عبر X2
واجهة X3 - تسليم CC (محتوى الاتصال):
- الغرض: تسليم محتوى الرسالة الفعلي إلى تنفيذ القانون
- الاتجاه: LIMF → LEMF (اتجاه واحد)
- تنسيق البيانات: متوافق مع ETSI TS 102 232-x
- المحتوى من SMSc:
- جسم الرسالة (محتوى النص)
- PDU الخام (بيانات SMS الثنائية)
- معلومات الترميز
- أجزاء الرسائل متعددة الأجزاء
- معلومات TP-DCS
- التكامل مع SMSc:
- يسترجع LIMF محتوى الرسالة من حقل
message_bodyفي CDR - يسترجع LIMF بيانات PDU الخام إذا كانت متاحة
- يقوم LIMF بتعبئة المحتوى في تنسيق CC متوافق مع ETSI
- يسلم LIMF CC إلى LEMF عبر X3
- يسترجع LIMF محتوى الرسالة من حقل
عمارة التنفيذ:
تعيين بيانات SMSc إلى واجهات LI:
| حقل بيانات SMSc | X2 (IRI) | X3 (CC) | عمود جدول CDR |
|---|---|---|---|
| معرف الرسالة | ✅ معرف الارتباط | ✅ مرجع | message_id |
| رقم الاتصال | ✅ الطرف A | - | calling_number |
| رقم المتصل | ✅ الطرف B | - | called_number |
| وقت الإرسال | ✅ الطابع الزمني | - | submission_time |
| وقت التسليم | ✅ الاكتمال | - | delivery_time |
| الحالة | ✅ النتيجة | - | status |
| جسم الرسالة | - | ✅ المحتوى | message_body |
| PDU الخام | - | ✅ ثنائي | (Mnesia/CDR) |
| SMSC المصدر | ✅ عنصر الشبكة | - | source_smsc |
| SMSC الوجهة | ✅ عنصر الشبكة | - | dest_smsc |
| IMSI | ✅ معرف المشترك | - | (عبر الواجهات) |
خيارات تكامل LIMF:
الخيار 1: عمارة الاستعلام
- يستعلم LIMF دوريًا من قاعدة بيانات CDR (كل 1-60 ثانية)
- استعلام SQL يصفّي حسب أرقام الهواتف المستهدفة من قائمة الأوامر X1
- تعقيد منخفض، سهل التنفيذ
- تأخير طفيف بين تسليم الرسالة وتسليم LI
الخيار 2: عمارة التغذية في الوقت الحقيقي
- ينشر SMSc أحداث الرسائل
- يشترك LIMF في تدفق الرسائل في الوقت الحقيقي
- يقوم LIMF بالتصفية بناءً على قائمة الأهداف
- زمن تأخير قريب من الصفر للتنصت القانوني
- يتطلب تطوير تكامل مخصص
الخيار 3: ��لعمارة الهجينة
- الرسائل الحديثة: تدفق PubSub في الوقت الحقيقي (< 24 ساعة)
- الرسائل التاريخية: استعلام قاعدة بيانات CDR
- توازن مثالي بين زمن التأخير والموثوقية
آليات تحفيز التنصت
التنصت القائم على الهدف:
- مطابقة رقم الهاتف (MSISDN)
- استهداف قائم على IMSI (عند توفره)
- قوائم مراقبة قابلة للتكوين
- وجهات نظر قاعدة البيانات لعزل الأهداف
- تصفية API بواسطة معرفات الأهداف
التنصت القائم على الحدث:
- جميع الرسائل إلى/من أرقام محددة
- الرسائل عبر بوابات SMSC محددة
- الرسائل ذات الخصائص المحددة (متعددة الأجزاء، تسليم فاشل، إلخ)
- التوجيه الجغرافي (عبر ENUM أو مطابقة البادئات)
التنصت القائم على الوقت:
- تصفية نطاق التاريخ/الوقت في استعلامات CDR
- فرض فترة الاحتفاظ
- الأرشفة التلقائية للرسائل القديمة
- سياسات احتفاظ بالبيانات قابلة للتكوين
أمثلة استعلام SQL للتنصت القانوني:
-- الحصول على جميع الرسائل للرقم المستهدف
SELECT * FROM cdrs
WHERE calling_number = '+33612345678'
OR called_number = '+33612345678'
ORDER BY submission_time DESC;
-- الحصول على الرسائل في نافذة زمنية محددة
SELECT * FROM cdrs
WHERE (calling_number = '+33612345678' OR called_number = '+33612345678')
AND submission_time BETWEEN '2025-11-01 00:00:00' AND '2025-11-30 23:59:59'
ORDER BY submission_time;
-- الحصول على المحادثة بين طرفين
SELECT * FROM cdrs
WHERE (calling_number = '+33612345678' AND called_number = '+33687654321')
OR (calling_number = '+33687654321' AND called_number = '+33612345678')
ORDER BY submission_time;
2. قدرات التشفير والتحليل
2.1 نظرة عامة على القدرات التشفيرية
يطبق مركز خدمات الرسائل القصيرة OmniMessage آليات تشفير لتأمين الاتصالات وحماية البيانات الحساسة. توثق هذه القسم جميع القدرات التشفيرية وفقًا لمتطلبات ANSSI.
2.2 تشفير طبقة النقل
2.2.1 تنفيذ TLS/SSL
البروتوكولات المدعومة:
- TLS 1.2 (RFC 5246)
- TLS 1.3 (RFC 8446) - موصى به
- SSL 2.0/3.0: غير مدعوم (ثغرات معروفة)
- TLS 1.0/1.1: ملغى (غير موصى به)
التنفيذ:
- مكتبة SSL/TLS Erlang/OTP (تم التحقق منها تشفيرياً)
- خادم الويب Cowboy مع دعم TLS
- نقاط نهاية HTTPS لإطار عمل Phoenix
أطقم التشفير:
يستخدم النظام اختيار مجموعة التشفير الآمن الافتراضي لـ Erlang/OTP، والتي تشمل:
المفضل - TLS 1.3:
- TLS_AES_256_GCM_SHA384
- TLS_AES_128_GCM_SHA256
- TLS_CHACHA20_POLY1305_SHA256
المدعوم - TLS 1.2:
- ECDHE-RSA-AES256-GCM-SHA384
- ECDHE-RSA-AES128-GCM-SHA256
- DHE-RSA-AES256-GCM-SHA384
- DHE-RSA-AES128-GCM-SHA256
ميزات الأمان:
- سرية التقدم المثالي (PFS) عبر تبادل المفاتيح ECDHE/DHE
- مجموعات Diffie-Hellman قوية (2048 بت كحد أدنى)
- دعم تشفير المنحنى البيضاوي
- دعم إشارة اسم الخادم (SNI)
إدارة الشهادات:
- دعم الشهادات X.509
- أحجام مفاتيح RSA: 2048 بت كحد أدنى، 4096 بت موصى بها
- دعم ECDSA
- التحقق من سلسلة الشهادات
- شهادات موقعة ذاتيًا (للتطوير فقط)
- تكام�� CA الخارجي
موقع تكوين TLS:
# config/runtime.exs
config :api_ex,
api: %{
enable_tls: true,
tls_cert_path: "priv/cert/omnitouch.crt",
tls_key_path: "priv/cert/omnitouch.pem"
}
📖 مرجع التكوين الكامل في CONFIGURATION.md
التطبيقات:
- HTTPS لـ REST API (المنفذ 8443)
- HTTPS للوحة التحكم على الويب (المنفذ 8086)
- اتصالات قاعدة البيانات (MySQL/PostgreSQL عبر TLS)
2.3 تشفير البيانات في حالة السكون
2.3.1 تشفير قاعدة البيانات
تشفير MySQL/MariaDB:
- دعم التشفير على مستوى الجدول
- خوارزمية التشفير AES-256
- تشفير البيانات الشفاف (TDE)
-- تمكين التشفير لجدول CDR
ALTER TABLE cdrs ENCRYPTION='Y';
تشفير PostgreSQL:
- دعم التشفير الشفاف للبيانات
- تشفير على مستوى نظام الملفات
- تشفير على مستوى العمود (امتداد pgcrypto)
2.3.2 تخزين القرص Mnesia
قاعدة بيانات Mnesia:
- تخزين نسخ القرص لاستمرارية الرسائل
- يوصى بتشفير مستوى نظام الملفات (LUKS، dm-crypt)
- حماية الذاكرة عبر عزل VM Erlang
2.3.3 تشفير نظام الملفات
تخزين البيانات الحساسة:
- ملفات التكوين: يوصى بتشفير نظام الملفات
- المفاتيح الخاصة: أذونات الملفات (0600) + تشفير نظام الملفات
- ملفات السجل: تشفير قابل للتكوين لسجلات الأرشفة
- تصديرات CDR: تخزين مشفر للتصديرات الحساسة
تخزين المفاتيح:
- يتم تخزين شهادات TLS والمفاتيح في
priv/cert/ - مخازن المفاتيح المعتمدة على الملفات مع أذونات مقيدة
- إجراءات دوران المفاتيح الآمنة
2.4 المصادقة والتحكم في الوصول
2.4.1 مصادقة API
أمان REST API:
- تشفير النقل عبر HTTPS/TLS إلزامي
- مصادقة قائمة على الرؤوس (رأس SMSc لتحديد الواجهة الأمامية)
- التحكم في الوصول بناءً على IP (على مستوى جدار الحماية)
- مصادقة العميل المعتمدة على الشهادات (اختياري)
تسجيل الواجهة الأمامية:
- تحديد فريد للواجهة الأمامية (الاسم، النوع، IP، اسم المضيف)
- مصادقة قائمة على نبضات القلب
- إدارة جلسات قائمة على انتهاء الصلاحية (مهلة 90 ثانية)
- تتبع ومراقبة الواجهة الأمامية
2.4.2 مصادقة قاعدة البيانات
التحكم في الوصول إلى قاعدة البيانات:
- مصادقة اسم المستخدم/كلمة المرور
- دعم اتصال TLS/SSL
- قيود اتصال بناءً على IP
- التحكم في الوصول القائم على الدور (RBAC)
التكوين:
# config/runtime.exs
config :sms_c, SmsC.Repo,
username: "omnitouch",
password: "omnitouch2024", # يجب استخدام كلمات مرور قوية في الإنتاج
hostname: "localhost",
ssl: true # تمكين TLS لاتصالات قاعدة البيانات
توصيات التحكم في الوصول:
-- إنشاء مستخدم للقراءة فقط للوصول إلى تنفيذ القانون
CREATE USER 'li_readonly'@'%' IDENTIFIED BY 'secure_password';
GRANT SELECT ON sms_c.cdrs TO 'li_readonly'@'%';
-- إنشاء مستخدم محدود بدون وصول إلى محتوى الرسالة
CREATE USER 'analytics'@'%' IDENTIFIED BY 'secure_password';
GRANT SELECT (id, message_id, calling_number, called_number,
source_smsc, dest_smsc, submission_time, delivery_time,
status, delivery_attempts)
ON sms_c.cdrs TO 'analytics'@'%';
2.5 تفاصيل الخوارزميات التشفيرية
2.5.1 خوارزميات التجزئة
المتاحة في Erlang/OTP:
- SHA-256، SHA-384، SHA-512 (موصى بها)
- SHA-1 (ملغاة، فقط للتوافق مع الإصدارات القديمة)
- MD5 (ملغاة، لا تستخدم للأمان)
- BLAKE2 (متاحة في إصدارات OTP الحديثة)
الاستخدام:
- بصمات الرسائل (الكشف عن التكرار)
- التحقق من سلامة البيانات
- سلامة سجل التدقيق
2.5.2 التشفير المتماثل
الخوارزميات المتاحة:
- AES (معيار التشفير المتقدم)
- AES-128-GCM
- AES-256-GCM
- AES-128-CBC
- AES-256-CBC
- ChaCha20-Poly1305
أحجام المفاتيح:
- 128 بت (الحد الأدنى)
- 256 بت (موصى بها)
الاستخدام:
- تشفير جلسة TLS
- تشفير قاعدة البيانات في حالة السكون
- تشفير جسم الرسالة الاختياري
2.5.3 التشفير غير المتماثل
الخوارزميات المدعومة:
- RSA (2048 بت كحد أدنى، 4096 بت موصى بها)
- ECDSA (خوارزمية توقيع رقمي باس��خدام المنحنيات البيضاوية)
- P-256، P-384، P-521
- Ed25519 (EdDSA)
الاستخدام:
- مصادقة شهادة TLS
- التوقيعات الرقمية
- تبادل المفاتيح
2.6 أمان بروتوكول SMS
2.6.1 ترميز رسالة SMS
دعم ترميز الأحرف:
- GSM 7-bit (ترميز SMS القياسي)
- UCS-2 (Unicode، 16-bit)
- بيانات ثنائية 8-bit
- Latin-1
TP-DCS (نظام ترميز البيانات):
- إشارة فئة الرسالة
- علامات الضغط
- تحديد مجموعة الترميز
- تحديد مجموعة الأحرف
لا تشفير SMS أصلي:
- لا يوفر بروتوكول SMS تشفيرًا من طرف إلى طرف
- محتوى الرسالة متاح على مستوى SMSc
- يمكّن من التنصت القانوني كما هو مطلوب
2.6.2 اعتبارات أمان البروتوكول
بروتوكول SMPP (واجهة خارجية):
- مصادقة اسم المستخدم/كلمة المرور على مستوى SMPP
- دعم TLS متاح (SMPP عبر TLS)
- مصادقة الربط
بروتوكول IMS (واجهة خارجية):
- رسائل قائمة على SIP
- آليات مصادقة SIP
- التكامل مع أمان شبكة IMS الأساسية
بروتوكول SS7/MAP (واجهة خارجية):
- أمان شبكة SS7
- مصادقة بروتوكول MAP
- أمان طبقة SCCP/TCAP
ملاحظة: يتم تنفيذ الأمان الخاص بالبروتوكول في بوابات الواجهة الخارجية، وليس في النواة SMSc.
2.7 قدرات التحليل ومقاومة الثغرات الأمنية
2.7.1 أدوات تحليل البروتوكول
قدرات تصحيح الأخطاء المدمجة:
- نظام تسجيل شامل
- تتبع تدفق الرسائل
- تسجيل طلبات/استجابات API
- تسجيل استعلامات قاعدة البيانات
- تتبع الأخطاء والاستثناءات
التكامل الخارجي:
- إخراج تسجيل قياسي (stdout/ملفات)
- دعم التقاط PCAP لتحليل الشبكة
- تسجيل استعلامات قاعدة البيانات للأدلة
- تصدير مقاييس Prometheus
2.7.2 اعتبارات تقييم الثغرات الأمنية
القيود المعروفة:
- بروتوكول SMS غير مشفر بطبيعته (حسب التصميم، يمكّن من التنصت القانوني)
- بيانات اعتماد قاعدة البيانات في ملفات التكوين (يجب استخدام إدارة الأسرار)
- دعم الشهادات الموقعة ذاتيًا (للتطوير/الاختبار فقط)
توصيات تقوية الأمان:
- استخدام مجموعات تشفير TLS قوية
- تنفيذ تشفير اتصال قاعدة البيانات
- استخدام إدارة الأسرار الخارجية (Vault، AWS Secrets Manager)
- تحديثات أمان منتظمة لـ Erlang/OTP والاعتمادات
- قيود جدار الحماية على منافذ API
- قائمة بيضاء IP للوصول إلى الواجهة الأمامية
اختبار الأمان:
- مسح الثغرات الأمنية للاعتمادات بانتظام
- دعم اختبار الاختراق
- التحقق من تكوين TLS
- تدقيق أمان قاعدة البيانات
- مراجعة التحكم في الوصول
2.8 بنية إدارة المفاتيح
2.8.1 توليد المفاتيح
توليد شهادة TLS:
# توليد مفتاح خاص (RSA 4096-bit)
openssl genrsa -out omnitouch.pem 4096
# توليد طلب توقيع الشهادة
openssl req -new -key omnitouch.pem -out omnitouch.csr
# شهادة موقعة ذاتيًا (للتطوير)
openssl x509 -req -days 365 -in omnitouch.csr -signkey omnitouch.pem -out omnitouch.crt
# الإنتاج: الحصول على شهادة من CA موثوق
توليد الأرقام العشوائية:
- CSPRNG (مولد الأر��ام العشوائية الآمن تشفيرياً) في Erlang/OTP
- مجموعة الطاقة النظامية (/dev/urandom)
- عشوائية قوية لمفاتيح الجلسة، المعرفات، الرموز
2.8.2 تخزين المفاتيح وحمايتها
تخزين المفتاح الخاص:
- نظام الملفات مع أذونات مقيدة (0600)
- مخزنة في دليل
priv/cert/ - تنسيق PEM (مشفر اختياريًا)
- إجراءات النسخ الاحتياطي الآمنة
دوران المفاتيح:
- إجراءات تجديد شهادة TLS (موصى بها سنويًا)
- دوران بيانات اعتماد قاعدة البيانات
- دوران رموز API (إذا تم تنفيذها)
2.8.3 توزيع المفاتيح
توزيع الشهادات:
- التثبيت اليدوي في
priv/cert/ - مراجع ملفات التكوين
- دعم بروتوكول ACME ممكن (Let's Encrypt)
توزيع المفاتيح المتماثلة:
- تبادل المفاتيح خارج النطاق لبيانات اعتماد قاعدة البيانات
- اتفاقية مفاتيح Diffie-Hellman في TLS
- عدم نقل المفاتيح في نص واضح
2.9 الامتثال والمعايير
توثق هذه القسم الامتثال للمعايير الدولية للاتصالات، والأطر التنظيمية، والمواصفات الأمنية المعمول بها لمعالجة SMS عبر جميع البروتوكولات المدعومة.
2.9.1 الامتثال لـ SMS عبر بروتوكول SS7/MAP
معايير 3GPP وETSI:
- 3GPP TS 23.040: التنفيذ الفني لخدمة الرسائل القصيرة (SMS) - مواصفة بروتوكول SMS الأساسية
- 3GPP TS 23.038: الأبجديات والمعلومات الخاصة باللغة - ترميز الأحرف (GSM7، UCS-2)
- 3GPP TS 29.002: مواصفة جزء التطبيق المحمول (MAP) - الإشارات SS7 لـ SMS
- 3GPP TS 23.003: الترقيم، العناوين والتعريف - تنسيقات MSISDN، IMSI
- ETSI TS 100 901: مواصفة خدمة الرسائل القصيرة من نقطة إلى نقطة
- ETSI TS 100 902: مواصفة خدمة الرسائل القصيرة للبث الخلوي
معايير إشارات SS7:
- ITU-T Q.711-Q.716: جزء التحكم في اتصال الإشارات (SCCP)
- ITU-T Q.771-Q.775: جزء قدرات المعاملات (TCAP)
- ITU-T Q.701-Q.710: جزء نقل الرسائل (MTP) المستويات 1-3
- ETSI EN 300 356: نظام الإشارات رقم 7 - جزء المستخدم ISDN (ISUP)
معايير الأمان لـ SS7/MAP:
- GSMA FS.07: أمان إشارات SS7 وDiameter - ضوابط الأمان الأساسية
- GSMA FS.11: إرشادات مراقبة أمان SS7
- 3GPP TS 33.117: كتالوج متطلبات ضمان الأمان العامة
- ETSI TS 133 210: أمان نطاق الشبكة - أمان طبقة الشبكة IP
التنصت القانوني لـ SS7/MAP:
- ETSI TS 101 671: التنصت القانوني (LI)؛ واجهة التسليم للتنصت القانوني على حركة المرور في الاتصالات
- ETSI TS 102 232-1: التنصت القانوني (LI)؛ مواصفة التسليم - الجزء 1: واجهة التسليم لإدارة LI
- 3GPP TS 33.107: بنية ووظائف التنصت القانوني لشبكات 3G
2.9.2 الامتثال لـ SMS عبر بروتوكول IMS
معايير IMS 3GPP:
- 3GPP TS 23.228: نظام الوسائط المتعددة IP (IMS) - بنية المرحلة 2
- 3GPP TS 24.229: بروتوكول التحكم في المكالمات متعددة الوسائط IP - إجراءات SIP وSDP
- 3GPP TS 24.341: دعم SMS عبر الشبكات IP - مواصفة المرحلة 3
- 3GPP TS 23.204: دعم خدمة الرسائل القصيرة (SMS) عبر الوصول IP العام 3GPP - المرحلة 2
- 3GPP TS 29.228: واجهات Cx وDx لنظام الوسائط المتعددة (IM)
معايير أمان IMS:
- 3GPP TS 33.203: أمان 3G؛ أمان الوصول للخدمات القائمة على IP (IMS AKA)
- 3GPP TS 33.210: أمان 3G؛ أمان نطاق الشبكة (NDS)؛ أمان طبقة الشبكة IP (IPsec)
- 3GPP TS 33.310: أمان نطاق الشبكة (NDS)؛ إطار المصادقة (AF)
- ETSI TS 133 203: أمان الوصول للخدمات القائمة على IP
معايير بروتوكول SIP:
- RFC 3261: SIP: بروتوكول بدء الجلسات - المواصفة الأساسية
- RFC 3428: تمديد SIP للرسائل الفورية - طريقة MESSAGE
- RFC 3325: الامتدادات الخاصة بـ SIP للهوية المؤكدة
- RFC 5765: قضايا الأمان والحلول في أنظمة الند للند
التنصت القانوني لـ IMS:
- ETSI TS 102 232-5: التنصت القانوني (LI)؛ مواصفة التسليم - الجزء 5: LI المستقل عن الخدمة لـ خدمات نظام الوسائط المتعددة
- 3GPP TS 33.107: متطلبات بنية التنصت القانوني
2.9.3 الامتثال لبروتوكول SMPP
مواصفة SMPP:
- SMPP v3.4: مواصفة بروتوكول الرسائل القصيرة من نظير إلى نظير - معيار صناعي
- SMPP v5.0: بروتوكول SMPP الموسع مع ميزات محسّنة
إرشادات أمان SMPP:
- TLS عبر SMPP: أمان طبقة النقل لاتصالات SMPP (SMPP عبر TLS)
- مصادقة الربط SMPP: مصادقة معرف النظام وكلمة المرور
- التحكم في الوصول بناءً على IP: قيود على مستوى الشبكة لاتصالات SMPP
معايير التوافق:
- GSM 03.40 (ETSI TS 100 901): التنفيذ الفني لـ SMS من نقطة إلى نقطة (PP)
- GSM 03.38 (ETSI TS 100 900): الأبجديات والمعلومات الخاصة باللغة
- GSM 04.11 (ETSI TS 100 942): دعم SMS من نقطة إلى نقطة على واجهة الراديو المحمول
امتثال ترميز الرسائل:
- ITU-T T.50: الأبجدية الدولية رقم 5 (IA5)
- ISO/IEC 8859-1: ترميز الأحرف Latin-1
- ISO/IEC 10646: مجموعة الأحرف العالمية (UCS-2/UTF-16)
2.9.4 الامتثال لمعايير التشفير
TLS وأمان الشبكة:
- NIST SP 800-52: إرشادات لاختيار وتكوين واستخدام تنفيذات TLS
- NIST SP 800-131A: الانتقال إلى استخدام خوارزميات التشفير وأطوال المفاتيح
- RFC 7525: توصيات للاستخدام الآمن لـ TLS وDTLS
- RFC 8446: بروتوكول أمان طبقة النقل (TLS) الإصدار 1.3
معايير خوارزميات التشفير:
- FIPS 197: معيار التشفير المتقدم (AES)
- FIPS 180-4: معيار التجزئة الآمن (عائلة SHA-2)
- NIST SP 800-38D: توصية لأساليب تشغيل خوارزميات التشفير: وضع GCM
- RFC 7539: ChaCha20 وPoly1305 لبروتوكولات IETF
إدارة المفاتيح:
- NIST SP 800-57: توصية لإدارة المفاتيح
- RFC 5280: بنية مفتاح البنية العامة X.509 لشهادات الإنترنت وملفات CRL
2.10 مقاومة التحليل
2.10.1 مبادئ التصميم
الدفاع ضد التحليل:
- لا خوارزميات تشفير مخصصة/ملكية
- خوارزميات معيارية، تمت مراجعتها من قبل الأقران فقط
- تحديثات أمان منتظمة لمكتبات التشفير
- إلغاء خوارزميات ضعيفة
- استخدام التشفير المعتمد (GCM، Poly1305)
2.10.2 الأمان التشغيلي
دوران المفاتيح:
- إجراءات تجديد شهادة TLS
- دوران مفاتيح الجلسة (لكل جلسة لـ TLS)
- سياسات دوران بيانات اعتما�� قاعدة البيانات
المراقبة والكشف:
- تسجيل محاولات المصادقة الفاشلة
- مراقبة انتهاء صلاحية الشهادات
- تسجيل فشل عملية المصافحة TLS
- اكتشاف الشذوذ لفشل التشفير
- تنبيه أحداث الأمان
3. التحكم في التنصت والتفويض
3.1 التحكم في الوصول للتنصت القانوني
تفويض إداري:
- الوصول إلى مسؤول النظام مطلوب للتكوين
- ضوابط وصول على مستوى قاعدة البيانات لاستعلامات CDR
- الوصول إلى API مقيد بواسطة IP/المصادقة
- تسجيل تدقيق لجميع الوصول
تكامل الإطار القانوني:
- تتبع أوامر التنصت (تكامل النظام الخارجي)
- قوائم تفويض معرفات الأهداف (وجهات نظر قاعدة البيانات)
- استعلامات محدودة زمنياً (عبارات WHERE SQL)
- فرض تلقائي عبر سياسات الوصول
3.2 الاحتفاظ بالبيانات والخصوصية
سياسات الاحتفاظ:
- الاحتفاظ بالرسائل النشطة: قابل للتكوين (الإعداد الافتراضي 24 ساعة في Mnesia)
- احتفاظ CDR: قابل للتكوين (6 أشهر إلى 2 سنوات نموذجية)
- الأرشفة التلقائية من Mnesia إلى SQL
- الحذف التلقائي لـ CDRs القديمة (استنادًا إلى cron)
حماية الخصوصية:
- خيار حذف جسم الرسالة بعد التسليم
- استبعاد جسم الرسالة من واجهة المستخدم/التصديرات
- تشفير قاعدة البيانات في حالة السكون
- تسجيل الوصول والمراقبة
- مبدأ الحد الأدنى من جمع البيانات
التكوين:
# config/runtime.exs
config :sms_c,
# الاحتفاظ برسالة Mnesia قبل الأرشفة
message_retention_hours: 24,
# حذف جسم الرسالة بعد التسليم من أجل الخصوصية
delete_message_body_after_delivery: false, # تعيين true لوضع الخصوصية
# التحكم في كتابة CDR
cdr_enabled: true,
# إعدادات الأرشفة الدفعة
batch_insert_batch_size: 100,
batch_insert_flush_interval_ms: 100
📖 انظر CONFIGURATION.md لجميع إعدادات الاحتفاظ
3.3 واجهات التسليم لجهات تنفيذ القانون
الواجهات القياسية:
1. الوصول عبر REST API:
- نقاط نهاية HTTPS لاسترجاع الرسائل
- تبادل البيانات بتنسيق JSON
- المصادقة