الأسئلة الشائعة حول تطبيقات ZRTP وSRTP وGNU ZRTP
İhtiyaç IP Üzerinden Ses (VoIP) ve diğer medya uygulamalarının sürekli artan kullanımı, Gerçek Zamanlı Aktarım Protokolünün (RTP) daha yaygın kullanımını tetikledi. Bu protokol, VoIP uygulamaları
يحتاج
الصوت عبر بروتوكول الإنترنت (VoIP)وتطبيقات الوسائط الأخرى، والاستخدام المتزايد باستمرار لبروتوكول البث في الوقت الحقيقي (RTP) أدى إلى استخدامه على نطاق أوسع. هذا البروتوكول هو العمود الفقري لتطبيقات VoIP. لسوء الحظ، ترسل العديد من تطبيقات VoIP بيانات RTP واضحة عبر الإنترنت العام. ولذلك، فإن البيانات ليست محمية ضد التنصت أو التعديل. ولذلك، تعتبر معظم تطبيقات VoIP اليوم غير آمنة. في السنوات الأخيرة، بدأت أنشطة مختلفة لتحسين أمان RTP.
- بروتوكول النقل الآمن في الوقت الحقيقي (SRTP)يعزز أمان RTP ويوفر السلامة والسرية لاتصالات وسائط RTP. ومع ذلك، لاستخدام SRTP بشكل فعال، يجب أن تكون تطبيقات VoIP قادرة على التفاوض على المفاتيح والمعلمات الأخرى بطريقة آلية.
- ZRTP هو بروتوكول يتعامل مع المفاتيح والمعلومات الأخرى المطلوبة لإنشاء جلسة صوت وفيديو SRTP.
في حين أنه من الضروري النظر إلى التكنولوجيا والبروتوكولات وما شابه، فمن الضروري أيضًا النظر إلى التأثيرات على تنفيذ ونشر وسهولة استخدام تقنية معينة. يعد التوفر أمرًا حيويًا لتطبيقات VoIP من نظير إلى نظير، والتي تستخدم في الغالب من قبل أطراف غير تكنولوجيا المعلومات. ولذلك، يجب أن تكون العملية بسيطة، وسهلة الاستخدام، ولا تتطلب بنية تحتية خاصة أو تسجيل.
ZRTP - ما هي الضجة حول هذا الموضوع؟
فيل زيمرمان، مخترع ZRTP، هو شخص معروف في مجال أمن الكمبيوتر. تشتهر ببرنامجها الشهير Pretty Good Privacy (PGP)، الذي يوفر تشفيرًا قويًا وأمنًا وخصوصية للجماهير. أحدث انقلاب لفيل، ZRTP يعمل على تحسين الأمان والخصوصية عندما نستخدم الإنترنت للتحدث مع بعضنا البعض باستخدام الصوت أو الفيديو، المعروف باسم الصوت عبر IP (VoIP). من وجهة نظر المستخدم، يعد ZRTP سهل الاستخدام للغاية ولا يتطلب أي بنية تحتية محددة بمجرد تنفيذه في برامج VoIP.ZRTPيمكنك العثور على المواصفات على صفحة Phil's Zfone.
ميزات ZRTP وغير الميزات
يوفر تطبيق ZRTP وGNU ZRTP ميزات لبرامج الاتصالات.
- إنشاء جلسات صوت وفيديو آمنة بدون بنية تحتية إضافية وبرامج خادم وتسجيل وعمليات مماثلة،
- إعلام المستخدم حول ما إذا كانت الجلسة آمنة أم لا، وتوفير معلومات حول المشاكل وخطورتها،
- وهو يوفر طريقة سهلة الاستخدام لاكتشاف ما إذا كان المتسللون قد عبثوا بالجلسة.
ما لا يقدمه ZRTP:
- لا يمكن لـ ZRTP مصادقة المستخدمين النهائيين تلقائيًا؛ هذه هي مهمة المستخدمين عندما يبدأون بالتحدث مع بعضهم البعض؛
- وأخيرًا، لا يمكن لـ ZRTP أن تحل محل المنطق السليم: تأكد من أنك تتحدث إلى الشخص المناسب، ثم تحقق من SAS.
ZRTP وبرامج الاتصال
لا يمكن لـ ZRTP العمل بشكل مستقل ولا يمكنه توفير اتصال آمن. بدلاً من ذلك، تستخدم برامج الاتصالات تطبيق ZRTP مع مكدسات RTP؛ توفر البرامج واجهة المستخدم والميزات الأخرى اللازمة لإعداد مكالمات الصوت/الفيديو وتمكين إمكانية التشغيل التفاعلي مع ZRTP.
كيف يعمل؟
من حيث المبدأ، يستخدم ZRTP ثلاث مراحل للتفاوض وتعيين مفاتيح SRTP الرئيسية والانتقال إلى وضع SRTP:
- مرحلة الاكتشاف - اكتشاف ما إذا كان أقرانهم يدعمون ZRTP؛
- مرحلة الصفقة الرئيسية - تبادل المواد الرئيسية؛
- المرحلة الآمنة – تأكيد بيانات التشفير والتحول إلى وضع SRTP.
في المرحلة الأولى، يقوم كلا نظيري ZRTP بتبادل المعلومات حول خوارزميات التشفير المتماثلة وخوارزميات الاتفاق الرئيسية وأنماط المصادقة التي يدعمونها.
في المرحلة التالية، يقوم الأقران بإنشاء قيم Diffie-Hellman الخاصة بهم وتبادل الجزء العام من زوج مفاتيح Diffie-Hellman. يتطلب ZRTP إنشاء أزواج مفاتيح Diffie-Hellman جديدة لكل جلسة. لا يستخدم ZRTP مفاتيح طويلة العمر. لمزيد من المعلومات حول هذه المواضيع، يرجى الاطلاع على إجابات الاستمرارية والاسترداد الأساسية.
ويمكن للأقران تبادل هذه القيم مع أسرار أخرى مثل الأسرار المحتجزة (RS) أو سر مثل كلمة مرور مختلفة (حسب تنفيذ برنامج الاتصال). يستخدم ZRTP جميع الأسرار المتاحة ويجمعها بذكاء لإنشاء واشتقاق مفاتيح SRTP الرئيسية. إن الجمع بين العديد من البيانات المهمة يجعل من الصعب جدًا على المهاجم تخمين القيم.
بعد قيام ZRTP بحساب بيانات مفتاح SRTP، يقوم ZRTP بتغيير بعض بيانات التأكيد للتحقق من نجاح اتفاقية المفتاح. في الخطوة الأخيرة، يقوم ZRTP بإنشاء سياق تشفير SRTP والتبديل من وضع RTP القياسي إلى وضع SRTP.
العلاقة بين RTP وSRTP وZRTP
RTPهو البروتوكول الأساسي لتبادل بيانات الوسائط، مثل تدفقات الصوت أو الفيديو، بين نظيرين. تتكون حزم بيانات RTP من جزء رأس ثابت، وجزء رأس متغير اختياري، وجزء رأس ملحق متغير اختياري، وجزء بيانات متغير الطول. تصف مواصفات RTP (RFC 3350) ومواصفات ملف تعريف RTP المصاحبة كيفية تعبئة أقسام الرأس والبيانات.
جلسة RTP التمهيدية هي في اتجاه واحد. ولذلك، إذا أراد اثنان من أقرانهما تبادل البيانات في كلا الاتجاهين، فيجب عليهما إعداد جلستي RTP. هذه حقيقة مهمة حول الأمان (انظر أدناه).
SRTPإنه ليس بروتوكولًا في حد ذاته، بل هو عبارة عن مواصفات لكيفية حماية وتشفير حزمة RTP. يحدد SRTP (RFC 3711).
- ما هي أجزاء حزمة RTP التي يجب تشفيرها للحماية من التنصت،
- ما هي الادعاءات التي يجب التحقق منها للكشف عن التلاعب بالبيانات،
- ما هي خوارزميات التشفير وأوضاع التشفير التي يجب استخدامها،
- كيفية إنشاء المفاتيح، وكيفية تجديد المفاتيح، وما إلى ذلك.
SRTPتحدد المواصفات أيضًا إنشاء وصيانة سياق التشفير. يحتوي هذا السياق على كافة البيانات اللازمة لتنفيذ العمليات الأمنية؛ على سبيل المثال، مفاتيح تشفير SRTP، وعدادات قائمة انتظار الحزم، ومفاتيح المصادقة، وما إلى ذلك. كل جلسة SRTP لها سياقها الخاص، وهو نفس سياق جلسة RTP. لذلك، يتطلب اتصال SRTP ثنائي الاتجاه سياقين مختلفين لتشفير SRTP.
ZRTP هو بروتوكول في حد ذاته يستخدم جلسات RTP لتبادل بياناته. الغرض الوحيد من ZRTP هو الاتفاق على المفاتيح وخوارزميات التشفير بين النظراء وإنشاء البيانات باستخدام هذه المفاتيح والخوارزميات لإنشاء سياق تشفير SRTP. مثلهZRTP ليس بديلاً عن SRTP، ولكنه أداة تمكين لاستخدام SRTP بسهولة.
SRTPبمجرد تعيين سياق التشفير، يتم التخلص من ZRTP ولا يتطلب عرض النطاق الترددي أو دورات وحدة المعالجة المركزية.
ماذا يحدث إذا كان برنامج الطرف الآخر لا يدعم ZRTP؟
سوف يكتشف ZRTP ذلك أثناء مرحلة الاكتشاف ويمكنه إبلاغ المستخدم بهذه الحقيقة. لا يمكن لـ ZRTP إنشاء جلسة RTP آمنة في هذه الحالة.
ولذلك، فمن الآمن تمكين ZRTP في جميع الأوقات. يبدأ ZRTP تلقائيًا المفاوضات الرئيسية وينشئ قنوات RTP آمنة بمجرد اكتشاف أن برنامج الاتصال الخاص بالطرف الآخر يدعم أيضًا ZRTP.
هل يدعم ZRTP استمرارية المفتاح؟
نعم. بعد أول اتفاقية مفتاح ناجحة بين اثنين من المستخدمين (والأجهزة)، يقوم ZRTP بحساب بعض البيانات (الأسرار المشتركة المحتفظ بها – RS) ويخزن هذه البيانات في ملف ذاكرة التخزين المؤقت على أجهزة المستخدمين. على الرغم من اسمها، فإن هذه البيانات ليست سرية، ولكنها تُستخدم لتنفيذ ثبات المفاتيح وتبسيط عملية التحقق من عمليات التبادل الرئيسية الأخرى. إذا اتصل المستخدمون مرة أخرى واستخدموا نفس الجهاز، فإن ZRTP يكتشف ذلك ويستخدم بيانات RS المخزنة مؤقتًا للتحقق من تبادل المفاتيح. إذا فشل هذا التحقق، يقوم ZRTP بالإبلاغ عن ذلك ويقوم المستخدمون بمقارنة سلسلة المصادقة القصيرة - راجع هذه الإجابة.
يمكن أن يحدث مثل هذا السلوك إذا قام المستخدم بحذف ملف ذاكرة التخزين المؤقت ZRTP أو إتلاف الجهاز. ولذلك، فهي ليست مشكلة أمنية حقيقية - بل هي مجرد إزعاج بسيط.
هل يمكنني أو أي شخص آخر استعادة المفتاح؟
هناك إجابة بسيطة على هذا: لا، إذا تأكد كلا المستخدمين من عدم حدوث هجوم Man in the Middle (MitM) أثناء مرحلة تفاوض ZRTP. إنه إجراء بسيط: قارن سلسلة المصادقة القصيرة - راجع SAS.
نظرًا لأن ZRTP يقوم بإنشاء المفاتيح والتفاوض بشأنها، فلا أحد يعرفها. لذلك حتى المستخدمين لا يمكنهم معرفة ذلك لأنهم لا يعرفون المفاتيح. لا يقوم تطبيق GNU ZRTP بتخزين المفاتيح التي تم إنشاؤها خارج ذاكرته الداخلية، وإذا لم تعد بيانات معينة قيد الاستخدام، فإنه يمسح الذاكرة في أقرب وقت ممكن.
هل يتطلب ZRTP أو SIP أو XMPP أو بروتوكولات الإشارة الأخرى؟
لا، يستخدم ZRTP جلسة RTP لتبادل بياناته. لإنشاء اتصال جلسة RTP، يمكن للبرامج استخدام أي آلية، بما في ذلك SIP أو XMPP، للأطراف لتبادل عناوين جلسة RTP والمعلومات الضرورية الأخرى.
يمكنك أيضًا استخدام برنامج اتصالات صغير يدعم تقنية ZRTP ويستخدم جلسات RTP بسيطة من نقطة إلى نقطة. لكن بالطبع في هذه الحالة تحتاج إلى جميع بيانات العنوان الضرورية للطرف المتصل.
هل يقوم ZRTP بتخزين بيانات عني؟ على سبيل المثال، هل يحتفظ بالمفاتيح المستخدمة؟
تحدد مواصفات بروتوكول ZRTP الميزات التي تتطلب تخزين البيانات. لا تحتوي هذه البيانات على مفاتيح؛ فهو لا يحدد هوية الشخص ولا يمكن استخدامه لاستعادة المفاتيح. غالبًا ما تسمى بيانات ZRTP بملف ذاكرة التخزين المؤقت ZRTP.
يقوم ZRTP بتخزين معلومات الحالة التي تتكون من معرف ZRTP وحالة مصادقة SAS والسر المشترك المخزن (RS) وغيرها.
يعتمد موقع هذا الملف على تنفيذ برنامج الاتصال.
ما هو معرف ZRTP؟
معرف ZRTP (ZID) هو رقم عشوائي يحدد مجموعة الجهاز ومثيل برنامج الاتصال. يستخدم ZRTP هذا المعرف لتحديد الجلسات التي تتضمن نفس الجهاز/برنامج الاتصالات ويخزن معلومات الحالة لهذه الجلسات.
ما هو السر المشترك المحتفظ به (RS)؟
في نهاية اتفاقية مفتاح ZRTP الأولية، يقوم GNU ZRTP بحساب وتخزين الأسرار المشتركة المحتجزة (RS)، والتي تمكنه من اكتشاف هجوم MitM والمشكلات الأخرى (مثل مشاكل الشبكة) خلال الجلسات اللاحقة. ومع ذلك، يستخدم ZRTP خوارزميات التجزئة لحساب RS. لذلك، من المستحيل استعادة المفاتيح أو المواد الأساسية الأخرى ذات الصلة عن طريق تحليل RS.
تقوم ZRTP بحساب وتحديث RS بعد كل مفاوضات رئيسية لضمان استمرارية المفاتيح والتعافي من الأخطاء المحتملة أثناء المفاوضات الرئيسية.
هل يستطيع ZRTP اكتشاف هجمات Man-in-the-Middle والإبلاغ عنها؟
في الجلسة الأولى لجهاز/برنامج اتصالات، لا تتوفر بيانات الحالة (انظر أيضًا هنا) ولا يستطيع ZRTP اكتشاف هجوم Man in the Middle (MitM). لذلك، يجب على المستخدمين دائمًا التحقق من SAS والتحقق من صحة اتفاقية المفتاح. يعرض برنامج الاتصالات رسالة تحذيرية مشابهة لهذه: لا توجد أسرار مشتركة مخزنة - يجب التحقق من SAS.
في نهاية اتفاقية مفتاح ZRTP الأولية، يقوم GNU ZRTP بحساب وتخزين الأسرار المشتركة المحتجزة (RS)، والتي تمكنه من اكتشاف هجوم MitM المحتمل والتحذير منه في جلسات لاحقة لنفس الجهاز/برنامج الاتصالات. إذا اكتشف ZRTP وجود MitM محتمل، فإنه يقوم بالإبلاغ عنه. بالإضافة إلى ذلك، غالبًا ما يُصدر برنامج الاتصالات رسالة تحذير مشابهة لهذه: الأسرار المشتركة الصالحة موجودة، ولكن لم يتم العثور على تطابق - يجب التحقق من SAS.
معلومات أساسية
يستخدم ZRTP اتفاقية Diffie-Hellman الرئيسية لتبادل البيانات الأساسية بين برنامجي اتصال. لسوء الحظ، فإن بروتوكول اتفاقية Diffie-Hellman الرئيسية عرضة لما يسمى بهجوم Man-in-the-Middle (MitM)، حيث يجلس رجل سيء بين الأخيار ويتحكم في مسارات الاتصال.
للتغلب على هذه المشكلة، تحدد ZRTP الإجراءات المضادة لضمان اكتشاف المستخدمين لـ MitM والتأكد من عدم تمكن أي شخص من التدخل في مصافحة ZRTP. تحدد ZRTP آليات بسيطة ولكنها قوية:
- سلسلة مصادقة قصيرة (SAS) و
- تم الاحتفاظ بالأسرار المشتركة (RS).
ما هو SAS وكيفية استخدامه؟
يستخدم ZRTP تسلسل المصادقة القصير (SAS) كآلية سهلة الاستخدام لاكتشاف ما إذا كان هناك شيء ما قد حدث أثناء التفاوض الرئيسي والسماح للمستخدمين بالتحقق من سلامة الجلسة.
تقوم تطبيقات ZRTP بحساب SAS، ويجب على برامج الاتصال تقديمها للمستخدم كمعلومات نصية قصيرة (يحدد ZRTP طول SAS الإلزامي بـ 4 أحرف).
الآن يمكن لكلا المستخدمين قراءة بيانات SAS والمقارنة عبر الاتصال الصوتي.
إحدى الطرق الممتازة للتحقق من SAS هي أن يقرأ المتصل أول حرفين من SAS وأن يقرأ المستدعى الحرفين الثانيين. إذا تطابقت القيم، فلن يتلاعب أحد بجلسة التفاوض على مفتاح ZRTP. يجب إجراء مقارنة الاتفاقات في بداية المحادثة وأثناء المحادثة العادية.
بعد التحقق من بيانات SAS، إذا قام كلا المستخدمين بتعيين SAS للمصادقة، فيمكن لكلا المستخدمين ضبط حالة SAS على المصادقة، وستقوم تطبيقات ZRTP بتخزين هذه المعلومات واستخدامها في جلسات ZRTP اللاحقة.
هل تم حذف ملف ذاكرة التخزين المؤقت ZRTP أم أنه تالف؟
هذه مشكلة بسيطة. يقوم GNU ZRTP بإنشاء ملف ذاكرة تخزين مؤقت فارغ جديد وتعريف ZRTP جديد (ZID) لمجموعة الجهاز/الاتصال هذه. ثم قم بإجراء المكالمات كالمعتاد. بالطبع، جميع معلومات SAS التي تم التحقق منها لم تعد موجودة وتحتاج إلى إعادة إنشائها (انظر SAS).
إذا بدأت بملف ذاكرة تخزين مؤقت ZRTP جديد أو اتصلت بشريك للمرة الأولى، فسيبلغ GNU ZRTP عن التحذير التالي: لا توجد أسرار مشتركة مخزنة متاحة - يجب التحقق من SAS.
هل تم نسخ ملف ذاكرة التخزين المؤقت ZRTP بواسطة أحد المتسللين؟
قد يكون هذا أكثر أهمية لأنه أكبر، لكنه ليس خطيرا. ينشئ GNU ZRTP أسرارًا مشتركة يتم الاحتفاظ بها بشكل مختلف حتى لو استخدم متصلان نفس ملف ذاكرة التخزين المؤقت ZRTP - في هذه الحالة، أنت والشخص السيئ الذي نسخ الملف. وهذا ممكن لأن ZRTP يستخدم بيانات مفاتيح عشوائية لحساب الأسرار المشتركة الموجودة.
ولذلك، فإن ملفي ذاكرة التخزين المؤقت ZRTP يخرجان عن المزامنة، مما يتسبب في ظهور رسائل تحذيرية للأطراف المتصلة حيث يرى ZRTP الأسرار التي يتم الاحتفاظ بها بشكل مختلف عن نفس معرف ZRTP. إذا رأيت مثل هذه الرسالة، فتأكد من التحقق من SAS وتحديد شريك الاتصال الخاص بك.
يقوم GNU ZRTP بالإبلاغ عن هذا الخطأ إذا كانت ملفات ذاكرة التخزين المؤقت ZRTP غير متزامنة: الأسرار المشتركة الصالحة موجودة ولكن لم يتم العثور على تطابق - يجب التحقق من SAS.