بروتوكول سيجنال

**بروتوكول الإشارة** (المعروف سابقًا باسم **بروتوكول TextSecure** ) هو بروتوكول تشفير غير اتحادي يوفر التشفير التام بين الطرفين للمُكالمات الصوتية والمُحادثات الفورية . تم تطوير البروتوكول بواسطة Open Whisper Systems في عام 2013 وتم تقديمه في تطبيق TextSecure مفتوح المصدر ، الذي أصبح لاحقًا تطبيق Signal . وقد قامت عدة تطبيقات مغلقة المصدر بتطبيق البروتوكول، مثل WhatsApp ، الذي يُقال إنه يُشفّر محادثات "أكثر من مليار شخص حول العالم"  أو Google الذي توفر التشفير التام افتراضيًا لجميع المحادثات القائمة على RCS بين مستخدمي تطبيق Google Messages لإجراء محادثات فردية.  وتقول خدمة فيسبوك ماسنجر أيضًا إنها تقدم البروتوكول الاختياري للمحادثات السرية، كما فعلت سكايب بالنسبة للمحادثات الخاصة.

يجمع البروتوكول بين خوارزمية Double Ratchet ، ومفاتيح مسبقة (أي مفاتيح عامة مؤقتة تُستخدم مرة واحدة وتم تحميلها مسبقًا إلى خادم مركزي)، ومصافحة Diffie–Hellman (3-DH) ذات المنحنى الإهليلجي الثلاثي،  ويستخدم Curve25519 ، و AES-256 ، و HMAC-SHA256 كبدائيات . 

## تاريخ
بَدأ تَطوير بروتوكول Signal بواسطة تريفور بيرين وموكسي مارلينسبايك (Open Whisper Systems) في عام 2013. كانت النسخة الأولى من البروتوكول، TextSecure v1، مبنية على المراسلة خارج السجل (OTR).  

في 24 فبراير 2014، قدمت Open Whisper Systems إصدار الثاني من TextSecure ،  والذي انتقل إلى استخدام خوارزمية Axolotl Ratchet.   يُستند تصميم Axolotl Ratchet إلى تبادل المفاتيح المؤقتة الذي تم تقديمه في OTR ويجمعه مع ratchet ذي المفتاح المتماثل المصمم على غرار بروتوكول الرسائل الفورية Silent Circle (SCIMP).  وقد جلب هذا التحديث دعمًاالاتصالات غير المتزامنة ("الرسائل غير المتصلة") كميزة رئيسية جديدة، بالإضافة إلى مرونة أفضل مع الترتيب المشوه للرسائل والدعم الأبسط للمحادثات مع المشاركين المتعددين.  تم تسمية Axolotl Ratchet على اسم السمندل المائي المهدد بالانقراض Axolotl ، والذي يتمتع بقدرات شفاء ذاتية غير عادية. يشير المطورون إلى هذه الخوارزمية باعتبارها ذاتية الشفاء لأنها تعمل تلقائيًا على تعطيل قدرة المهاجم على الوصول إلى النص العادي للرسائل اللاحقة بعد اختراق مفتاح الجلسة . 

الإصدار الثالث من البروتوكول، TextSecure v3، أجرى بعض التغييرات على البدائيات التشفيرية وبروتوكول النقل.  في أكتوبر 2014، نشر باحثون من جامعة رور في بوكوم تحليلاً لبروتوكول TextSecure v3.   ومن بين ما توصلوا إليه، عرضوا هجومًا من نوع" مشاركة مفتاح غير معروفة" على البروتوكول، لكنهم وجدوا بشكل عام أنه آمن. 

في مارس 2016، قام المطوّرون بإعادة تسمية البروتوكول ليصبح بروتوكول Signal. كما أعادوا تسمية خوارزمية Axolotl Ratchet إلى خوارزمية Double Ratchet من أجل التمييز بشكل أفضل بين ratchet والبروتوكول الكامل  لأن البعض كانوا يستخدمون اسم Axolotl عند الإشارة إلى البروتوكول بالكامل.  

اعتبارًا من أكتوبر 2016،أصبح بروتوكول Signal قائمًا على الإصدار الثالث من TextSecure، ولكن مع تغييرات تشفيرية إضافة. في أكتوبر 2016، نشر باحثون من جامعة أكسفورد في المملكة المتحدة، وجامعة مكماستر في كندا تحليلًا رسميًا للبروتوكول، وخلصوا إلى أن البروتوكول سليم من الناحية التشفيرية.

نُشرت مراجعة أخرى للبروتوكول في عام 2017. 

## ملكيات
يوفر البروتوكول السرية، والسلامة،والمصادقة، واتساق المشاركين، والتحقق من الوجهة والسرية التقدمية، والأمان بعد الاختراق (المعروف أيضًا بالسرية المستقبلية)، والحفاظ على السببية، وعدم ترابط الرسائل، ورفض الرسائل ورفض المشاركة وعدم التزامن.  إنه لا يوفر الحفاظ على عدم الكشف عن الهوية ويتطلب خوادم لنقل الرسائل وتخزين مادة المفتاح العام. 

يدعم بروتوكول Signal أيضًا المحادثات الجماعية المشفرة من طرف إلى طرف. يجمع بروتوكول المحادثة الجماعية بين عن مزيج من التشفير المزدوج الثنائي والتشفير المتعدد .  بالإضافة إلى الخصائص التي يوفرها البروتوكول الفردي، يوفر بروتوكول المحادثة الجماعية اتساق المتحدث، والمرونة في التعامل مع الأخطاء، والمرونة تجاه الرسائل المتساقطة، والمساواة الحسابية، والمساواة في الثقة، وإمكانية إرسال الرسائل إلى مجموعات فرعية، بالإضافة إلى قابلية العضوية للتقلص والتوسع. 

### المصادقة
للمصادقة، يمكن للمستخدمين مقارنة بصمات مفاتيحهم العامة يدويًا من خلال قناة خارجية.  يتيح ذلك للمستخدمين التحقق من هويات بعضهم البعض وتجنب هجوم الرجل في المنتصف .  ويمكن للتطبيق أيضًا أن يختار استخدام آلية الثقة عند اول استخدام الأول لإعلام المستخدمين إذا تغير مفتاح الطرف الآخر. 

### البيانات الوصفية
بروتوكول Signal لا يمنع الشركات من الاحتفاظ بمعلومات حول وقت ومع من يتواصل المستخدمون.   لذلك، قد تختلف خدمات المُراسلة في كيفية تعاملها مع هذه المعلومات. تنص سياسة الخصوصية الخاصة بـ Signal على أن معرفات المستلمين تُحفظ بها على خوادم Signal فقط طالما كان ذلك ضروريًا لإرسال كل رسالة.  في يونيو 2016، صرحت موكسي مارلينسبايك *[[ذا إنترسبت|لموقع The Intercept]]* : "إن أقرب قطعة من المعلومات إلى البيانات الوصفية التي يخزنها خادم Signal هي آخر مرة اتصل فيها كل مستخدم بالخادم، ويتم تقليص دقة هذه المعلومات إلى اليوم، وليس الساعة والدقيقة والثانية." 

في أكتوبر 2018، أعلنت Signal Messenger أنها نفذت ميزة "المرسل المختوم" في Signal، والتي تقلل من كمية بيانات التعريف التي يمكن لخوادم Signal الوصول إليها عن طريق إخفاء هوية المرسل.   يتم نقل هوية المرسل إلى المستلم في كل رسالة، لكنها تُشفّر باستخدام مفتاح لا تمتلكه الخوادم.  يتم تنفيذ ذلك تلقائيًا إذا كان المرسل ضمن جهات اتصال المستلم أو لديه حق الوصول إلى ملفه الشخصي في Signal.  يمكن للمستخدمين أيضًا تمكين خيار تلقي رسائل "المرسل المختوم" من الأشخاص غير المتصلين والأشخاص الذين ليس لديهم حق الوصول إلى ملفهم الشخصي على Signal.  قد يكشف التنصت المتزامن على جهاز المستخدم و/أو خوادم Signal أن عنوان IP الخاص بالجهاز قد استخدم خادم Signal لإرسال أو استقبال الرسائل في أوقات معينة. 

## الاستخدام
قدّمت شركة Open Whisper Systems البروتوكول لأول مرة في تطبيق *TextSecure* . لاحقًا، دمحت تطبيق المكالمات الصوتية المشفرة المسمى *RedPhone* في TextSecure وأعادوا تسميته إلى ''Signal'' .

في نوفمبر 2014، أعلنت شركة Open Whisper Systems عن شراكة مع WhatsApp لتوفير التشفير التام من خلال دمج بروتوكول Signal في كل منصة عميل WhatsApp.  وقالت Open Whisper Systems إنها قد دمجت بالفعل البروتوكول في أحدث عميل WhatsApp لنظام Android وأن الدعم لبقية المنصات، والرسائل الجماعية/الوسائط، والتحقق من المفتاح سيأتي قريبًا بعد ذلك.  في 5 أبريل 2016، أعلنت شركة WhatsApp وOpen Whisper Systems أنهما انتهيتا من إضافة التشفير التام بين الأطراف إلى "كل شكل من أشكال التواصل" على واتساب، وأن المستخدمين يمكنهم الآن التحقق من مفاتيح بعضهم البعض.   في فبراير 2017، أعلنت واتساب عن ميزة جديدة، وهي "حالة واتساب"، والتي تستخدم بروتوكول Signal لتأمين محتواها.  في أكتوبر 2016، نشرت الشركة فيسبوك، الشركة الأم لتطبيق واتساب، أيضًا وضعًا اختياريًا يُسمى المحادثات السرية في فيسبوك ماسنجر والذي يوفر تشفيرًا شاملاً باستخدام تنفيذ لبروتوكول الإشارة.    

في سبتمبر 2015، أطلقت شركة G Data Software تطبيق مُراسلة جديد يُدعى Secure Chat وَالذي كَان يستخدم بروتوكول Signal.   أوقفت شركة G Data الخدمة في مايو 2018. 

في سبتمبر 2016، أطلقت شركة جوجل تطبيق مراسلة جديدًا يُدعى Allo ، والذي تضمن وضع "التصفح المتخفي" الاختياري الذي يستخدم بروتوكول Signal للتشفير من الطرف إلى الطرف.   في مارس 2019، أوقفت Google تطبيق Allo لصالح تطبيق Google Messages على نظام Android.   في نوفمبر 2020، أعلنت Google أنها ستستخدم بروتوكول Signal لتوفير تشفير من الطرف إلى الطرف بشكل افتراضي لجميع المحادثات القائمة على RCS بين مستخدمي تطبيق Google Messages ، بدءًا من المحادثات الفردية.  

في يناير 2018، أعلنت شركتا Open Whisper Systems وشركة Microsoft عن إضافة دعم بروتوكول Signal إلى وضع اختياري في Skype يُدعى "المحادثات الخاصة".  

## تأثير
لقد كان لبروتوكول Signal تأثير على بروتوكولات التشفير الأخرى. في مايو 2016، قالت شركة Viber إن بروتوكول التشفير الخاص بها هو تنفيذ مخصص "يستخدم نفس المفاهيم" التي يستخدمها بروتوكول Signal.   وقد صرّح مطورو تطبيق Forsta أن تطبيقهم يستخدم تنفيذًا مخصصًا لبروتوكول Signal.   &#x5B; *[[ويكيبيديا:مصادر مستقلة|<span title="This claim needs a reference to an independent source. (February 2019)">مصدر مستقل مطلوب</span>]]* &#x5D;

تم أيضًا اعتماد خوارزمية Double Ratchet التي تم تقديمها كجزء من بروتوكول Signal من قبل بروتوكولات أخرى. OMEMO هو بروتوكول امتداد XMPP (XEP) تم تقديمه في تطبيق المراسلة Conversations وتمت الموافقة عليه من قبل مؤسسة معايير XMPP (XSF)، في ديسمبر 2016 باسم XEP-0384.  Matrix فهو بروتوكول اتصالات مفتوح يتضمن مكتبة Olm، التي توفر تشفيرًا من طرف إلى طرف اختياريًا على أساس كل غرفة باستخدام تنفيذًا مخصصًا لخوارزمية Double Ratchet. وقد صّرح مطورو تطبيق Wire أن تطبيقهم يستخدم تنفيذًا مخصصًا لخوارزمية Double Ratchet.   

يستخدم بروتوكول أمان طبقة الرسائل ، وهو مقترح من IETF ، *أشجار التدرج غير المتزامنة* لتحسين الكفاءة وضمانات الأمان مقارنةً بخوارزمية *Double Ratchet* الخاصة ببروتوكول بـ Signal. 

## التنفيذات
تحتفظ Signal Messenger بتنفيذ مرجعي لمكتبةبروتوكول Signal مكتوبة بلغة Rust وذلك بموجب رخصة AGPLv3 على GitHub . وهناك روابط إلى لغات ـ Swift وJava وTypeScript وC ولغات أخرى تستخدم تنفيذ Rust المرجعي.

حافظت Signal على المكتبات القديمة التالية:

* libsignal-protocol-c : مكتبة مكتوبة بلغة C مع أذونات ترخيص إضافية لمتجر تطبيقات Apple.
* libsignal-protocol-java : مكتبة مكتوبة بلغة Java .
* libsignal-protocol-javascript : مكتبة مكتوبة بلغة Javascript .

توجد أيضًا مكتبات بديلة مكتوبة من قبل أطراف ثالثة بلغات أخرى، مثل TypeScript . 

## انظر أيضًا

* مقارنة بروتوكولات المراسلة الفورية
* مقارنة مكتبات التشفير
* ديفي-هيلمان الممتد بعد الكم

## المراجع



## الأدب
 

## روابط خارجية

* 
* "TextSecure Protocol: Present and Future", talk by Trevor Perrin at NorthSec 2015 (video)

تصنيف:بروتوكولات تعمية
تصنيف:بروتوكولات طبقة التطبيق