بروتوكول Station-to-Station (STS)
ادرسوا STS بوصفه بروتوكولًا مصححًا لتبادل المفاتيح الموثّق، واستخدامه في SSH وIKE.
بروتوكول Station-to-Station (STS) درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
الدافع وراء STS
صُمم بروتوكول Station-to-Station (STS) (Diffie, van Oorschot, Wiener, 1992) لتوفير اتفاق موثّق على مفتاح من دون طرف ثالث موثوق. فتبادل مفاتيح Diffie-Hellman الخالص غير موثّق — إذ يستطيع مهاجم من الرجل في الوسط استبدال قيم DH الخاصة به، وإنشاء جلستين منفصلتين مع كل طرف يعتقد أنه يتشارك مفتاحًا معه. يجمع STS بين DH والتوقيعات الرقمية وشهادات المفاتيح العامة لتوفير مصادقة متبادلة. تصادق الأطراف على هويتيها من خلال توقيع سجل تبادل DH، ما يربط مفتاح الجلسة بهويتيهما. وقد أثر STS مباشرةً في تصميم IKE (Internet Key Exchange الخاص بـ IPsec) وSSH.
خطوات بروتوكول STS
يعمل بروتوكول STS كما يلي. تتفق Alice وBob على مجموعة DH، تتكون من عدد أولي p ومولّد g. (1) ترسل Alice g^a mod p إلى Bob. (2) يرسل Bob g^b mod p، وCert_B، وSig_B{g^b, g^a} إلى Alice. يوقّع Bob تسلسل قيمتي DH كلتيهما باستخدام مفتاحه الخاص. (3) تتحقق Alice من شهادة Bob وتوقيعه، ثم ترسل Cert_A، Sig_A{g^a, g^b} مشفّرتين باستخدام مفتاح الجلسة K = (g^ab mod p). تُشفَّر هوية Alice وتوقيعها، مما يوفر حماية لهوية Alice — فلا يستطيع المتنصتون السلبيون ربط Alice بهذه الجلسة. يحسب الطرفان K = g^ab mod p، وتتم مصادقتهما المتبادلة عبر التوقيعات.
STS مقابل DH غير الموثّق
توضح مقارنة STS مع DH غير الموثّق ما تضيفه المصادقة. في DH العادي، يعترض Mallory g^a وg^b، ويستبدل g^m مع Alice وg^m مع Bob، وينشئ K1 = g^am وK2 = g^bm. ويفك Mallory تشفير جميع البيانات المتبادلة. أما في STS، فيوقّع Bob {g^b, g^a} — ويكون هذا التوقيع على قيم DH الدقيقة في هذه الجلسة. حتى إذا استبدل Mallory g^b بـ g^m، فلا يستطيع تزوير توقيع صالح باستخدام مفتاح شهادة Bob. وترفض Alice الجلسة. والفكرة الأساسية هي أن المصادقة في تبادل المفاتيح يجب أن تغطي سجل تبادل DH، لا مجرد ادعاءات الهوية.
السرية الأمامية التامة في STS
يحقق STS السرية الأمامية التامة (PFS)، لأن مفتاح الجلسة مشتق من قيم DH مؤقتة (g^a، g^b) تُهمل بعد انتهاء الجلسة. حتى إذا اختُرق مفتاح توقيع Bob طويل الأمد لاحقًا، فلا يمكن فك تشفير جلسات STS المسجلة سابقًا — إذ يحتاج المهاجم إلى أسّي DH المؤقتين a وb، وهما لم يُخزّنا قط. وهذه هي الخاصية نفسها المقدّرة في TLS مع مجموعات التشفير ECDHE. أما من دون DH مؤقت، مثل استخدام نقل مفتاح RSA حيث يُشفَّر مفتاح الجلسة باستخدام مفتاح RSA الثابت للخادم، فإن اختراق المفتاح طويل الأمد يؤدي إلى فك تشفير جميع الجلسات السابقة.
حماية الهوية
يشفّر STS شهادة Alice وتوقيعها في الخطوة 3، مما يوفر حماية لهوية المستجيب في مواجهة المتنصتين السلبيين. لا يرى المراقب السلبي سوى قيمة DH الخاصة بـ Alice وشهادة Bob، التي يرسلها Bob بنص واضح في الخطوة 2. وهكذا تظل هوية Alice مخفية عن التنصت السلبي. أما المهاجمون النشطون الذين ينفذون هجوم MITM فيُكتشفون عند فشل التحقق من التوقيع. وهذا التباين، أي انكشاف هوية البادئ للمهاجم النشط وحماية هوية المستجيب من المتنصت السلبي، هو مفاضلة تصميم مقصودة — وتتطلب حماية الهوية بالكامل لكلا الطرفين في مواجهة المهاجمين النشطين تعقيدًا إضافيًا، مثل مشاركة قيم DH مسبقًا أو استخدام عناصر مجموعة مجهولة.
STS في IKEv1 وIKEv2
يُشتق IKE (Internet Key Exchange)، وهو بروتوكول إدارة المفاتيح الخاص بـ IPsec، مباشرةً من STS. نفّذ IKEv1 (RFC 2409) مصادقة بالتوقيعات على نمط STS في Main Mode الخاص به. أما IKEv2 (RFC 7296) فهو إعادة تصميم أبسط، ويتكون من أربعة تدفقات للرسائل: IKE_SA_INIT، لتبادل DH والقيم العشوائية، وIKE_AUTH، للهوية والشهادة والتوقيع على سجل تبادل IKE_SA_INIT. يكون تنسيق التوقيع AUTH = PRF(SK_pi, transcript) في حالة PSK، أو توقيعًا رقميًا على وحدات IKE_SA_INIT في حالة المصادقة بالشهادة. ويدعم IKEv2 أيضًا Extensible Authentication Protocol (EAP) للمصادقة القديمة القائمة على كلمات المرور، على نحو مماثل لدعم STS أساليب مصادقة متنوعة.
STS في SSH
تستخدم مصادقة مفاتيح SSH آلية مشابهة للخطوة 3 من STS. بعد تبادل مفاتيح DH، الذي تحتوي فيه SSH_MSG_KEXDH_REPLY على المفتاح العام للخادم وقيمة DH وتوقيع على تجزئة التبادل، يتحقق العميل من مفتاح مضيف الخادم. ولمصادقة العميل، يوقّع العميل {session_id, username, service, method, key_algo, public_key} باستخدام مفتاحه الخاص، وذلك عبر SSH_MSG_USERAUTH_REQUEST مع الطريقة publickey. ويُشتق session_id من سجل تبادل DH، ما يربط المصادقة بهذه الجلسة تحديدًا — ويمنع التزوير العابر للجلسات الذي ابتُلي به NS. لا يستخدم SSH الشهادات افتراضيًا، لكنه يدعمها عبر ssh-keygen -s، لتوقيع الشهادات، في عمليات النشر الكبيرة.
عائلة بروتوكولات SIGMA
يُعد STS عضوًا في عائلة SIGMA (SIGn-and-MAc) لبروتوكولات اتفاق المفاتيح الموثّق (AKE)، وقد صاغ إطارها رسميًا Hugo Krawczyk. تضيف SIGMA رمز MAC إلى STS: يوقّع كل طرف سجل التبادل ويُنشئ MAC لهويته باستخدام مفتاح الجلسة: MAC(K, identity). يربط MAC الهوية بمفتاح الجلسة، مما يمنع هجومًا محددًا يستطيع فيه خصم ما ربط توقيعات من جلسات مختلفة. وتوجد متغيرات SIGMA-I، لحماية هوية البادئ، وSIGMA-R، لحماية هوية المستجيب، وSIGMA-0، من دون حماية للهوية. ويُعد IKEv2 وX3DH الخاص بـ Signal بروتوكولين من عائلة SIGMA. وتوفر صياغة SIGMA برهان أمان صارمًا لتصميمات شبيهة بـ STS.
هجوم KCI ومتغيرات STS
يكون STS عرضة لهجوم Key Compromise Impersonation (KCI): إذا اختُرق مفتاح Alice طويل الأمد، يستطيع مهاجم انتحال هوية أي طرف أمام Alice في جلسة جديدة، لأن المهاجم يستطيع تزوير توقيع Alice على أي سجل تبادل. وهذا يعني أن اختراق مفتاح طرف واحد يتيح للخصم انتحال هوية أطراف أخرى أمام ذلك الطرف. ويُعد KCI متأصلًا في بروتوكولات AKE القائمة على التوقيعات — وتتطلب مقاومته أن يعتمد مفتاح الجلسة على مساهمتي الطرفين بطريقة تمنع الطرف المخترق من الاستبدال. ويوفر HMQV (Hashed Menezes-Qu-Vanstone) وNAXOS مقاومة لـ KCI على حساب تعقيد إضافي.
قابلية الإنكار والرسائل خارج السجل
يوفر STS عدم التنصل: إذ تثبت التوقيعات، بيقين تشفيري، من قال ماذا. وهذا أمر غير مرغوب فيه أحيانًا — ففي المحادثات الخاصة، قد لا يرغب المشاركون في إمكانية تقديم إثبات تشفيري لأقوالهم أمام المحكمة. توفر رسائل Off-the-Record (OTR) وDouble Ratchet في Signal قابلية الإنكار: فبدلًا من توقيع الرسائل، تستخدمان مفاتيح MAC يحتفظ بها كل من المرسل والمستلم. بعد المحادثة، يستطيع الطرفان الادعاء بأن الطرف الآخر اختلق الرسائل، لأن كل واحد منهما يملك المفتاح اللازم لإنشاء قيم MAC. والمفاضلة هي أن قابلية الإنكار تضحي بعدم التنصل. وتناسب التصميمات الشبيهة بـ STS الحالات التي تتطلب المساءلة، في حين تناسب OTR/Signal الحالات التي تكون فيها قابلية الإنكار ذات قيمة.
برهان أمان STS
حُلّل أمان STS بصورة غير رسمية في الورقة الأصلية، ثم أثبته Bellare وRogaway رسميًا (1993، 1994) في نموذج أمان AKE الرائد الخاص بهما. وقد حددا معنى أمان بروتوكول تبادل المفاتيح: عدم إمكانية تمييز مفاتيح الجلسات عن مفاتيح عشوائية، حتى عندما يستطيع الخصم تسجيل الأطراف، وكشف مفاتيح الجلسات، وكشف المفاتيح طويلة الأمد، باستثناء الجلسة المستهدفة، والتحكم في الشبكة. أصبح نموذج الأمان القائم على المحاكاة هذا، الذي وسّعه Canetti-Krawczyk ثم UC (Universal Composability)، معيارًا لإثبات أمان بروتوكولات AKE. ولدى TLS 1.3 وSignal وNoise جميعًا براهين شكلية في نسخ مختلفة من هذا النموذج.
اختبار ربط توقيع STS
لماذا يتطلب STS تضمين قيمتَي DH كلتيهما (g^a وg^b) في السجل الموقَّع؟
مراجعة بروتوكول STS
يجمع STS بين تبادل مفاتيح DH المؤقت والتواقيع الرقمية لتوفير اتفاق موثَّق على المفتاح من دون TTP. يوقّع الطرفان سجل DH، وبذلك يربطان المصادقة بالجلسة. يحقق STS السرية التامة إلى الأمام (بفضل DH المؤقت)، والمصادقة المتبادلة (بفضل التواقيع)، وحماية هوية المستجيب (إذ تُشفَّر بيانات Alice قبل إرسالها). وقد أثّر STS مباشرةً في IKEv2 وSSH للمصادقة بالمفتاح. ويضفي SIGMA طابعًا رسميًا على STS باستخدام MACs للهوية وبراهين الأمان. ويُعد KCI نقطة ضعف متأصلة في STS، وتخفف منها بروتوكولات HMQV/NAXOS. أما قابلية الإنكار (كما في Signal)، فتتطلب استبدال التواقيع بـ MACs لتحقيق أصالة على مستوى الرسائل.
تعلم Cryptology Academy مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 67
- الدروس
- 261
الأسئلة الشائعة
هل درس «بروتوكول Station-to-Station (STS)» مجاني؟
نعم — نص درس «بروتوكول Station-to-Station (STS)» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
ماذا ستتعلم في «بروتوكول Station-to-Station (STS)»؟
ادرسوا STS بوصفه بروتوكولًا مصححًا لتبادل المفاتيح الموثّق، واستخدامه في SSH وIKE. تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟
لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «بروتوكول Station-to-Station (STS)»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟
نعم. كل درس في Cryptology Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- بروتوكول Needham-Schroeder وهجماته
- بروتوكول Station-to-Station (STS)
- إطار عمل Noise Protocol
- مبادئ تصميم البروتوكولات الآمنة