الخلاصة

  • ربط HASH(1) عرض المبادر وNi بحالة Phase 1، وربط HASH(2) اختيار المستجيب وNr بالتفاوض نفسه، وأثبت HASH(3) للمستجيب أن المبادر استلم nonce الثاني.
  • لم يحمل HASH إذن السياسة المحلي ولا نتيجة تثبيت SAD/SPD. كما لم يرسل Quick Mode الأساسي رسالة رابعة إلى المبادر تؤكد وصول الرسالة الأخيرة أو جاهزية نواتي النظام.

يمكن لبوابة أن تثبت هويتها في Phase 1 ثم تطلب في Phase 2 رابطة بين شبكتين داخليتين. إثبات البوابة لا يساوي الإذن بالمسارين. هذه الفجوة بين الهوية والسلطة ظلت موجودة حتى عندما كانت حسابات HASH صحيحة.

جمع RFC 2409 بين إطار ISAKMP في RFC 2408 ومفردات IPsec DOI في RFC 2407 وتقنيات من Oakley وSKEME. حدد IKE تبادلات فعلية للمصادقة واشتقاق المفاتيح، لكنه أبقى السياسة والتنفيذ المحليين خارج الرسالة المشتركة.

أنشأت Phase 1 رابطة ISAKMP موثقة ثنائية الاتجاه. كان دعم Main Mode إلزامياً، ودعم Aggressive Mode مستحباً. أنتج كلاهما مادة مفاتيح موثقة من Diffie-Hellman مؤقت، مع اختلاف ترتيب حماية الهوية.

استخدم Quick Mode في Phase 2 فقط. اعتمد على رابطة Phase 1 القائمة كي يتفاوض على روابط غير ISAKMP، مثل روابط AH وESP. أمكن بذلك توزيع تكلفة المصادقة الأولى على مفاوضات لاحقة متعددة.

فصلت الحقول حالة الأصل عن حالة الفرع. عرّف زوج ملفات الارتباط رابطة ISAKMP، وعرّف Message ID مثيلاً واحداً من Quick Mode. اشتق متجه التهيئة الأول من آخر كتلة CBC في Phase 1 ومن Message ID، فاستقلت المفاوضات المتزامنة في سلاسل التشفير.

لم يكن Message ID اعتماد هوية. كان مفتاح بحث يدخل أيضاً في حسابات HASH. أدى ذلك إلى ربط المفاوضة الصحيحة بالنص الموثق، لا إلى منح صاحبها صلاحية تشغيلية.

أرسل المبادر أولاً HASH(1) وعرض SA وNi. أمكنه إضافة KE وهويتي العميل IDci وIDcr. شُفرت كل الحمولات بعد رأس ISAKMP تحت رابطة Phase 1.

غطى HASH(1) Message ID وكل ما جاء بعد حمولة HASH، مع رؤوس الحمولات ومن دون حشو التشفير. استطاع المستجيب التأكد من أن مالك حالة Phase 1 قدّم هذه الخيارات وهذا nonce وهذه الهويات الاختيارية.

لكن العرض الموثق لم يكن قراراً. ظلت سياسة المستجيب تختار أو ترفض. ولم يكن هناك بعد دليل على كتابة رابطة IPsec في النواة.

أعاد المستجيب HASH(2) وSA المختارة وNr. أضاف الحساب Ni قبل بقية الرد. وصف RFC هذه الإضافة بأنها إثبات حياة: ربط الرد بتحدي المبادر الحالي.

بعد التحقق، عرف المبادر أن الطرف الذي يملك حالة Phase 1 رأى Ni واختار المعلمات وأنشأ Nr. امتلك الطرفان مدخلات اشتقاق مادة مفتاح متوافقة إن فسّرا العرض بالطريقة نفسها.

حملت الرسالة الثالثة HASH(3) فقط داخل الحماية. جمع الحساب بايتاً صفرياً وMessage ID وNi وNr. إذا تحقق المستجيب منه، عرف أن المبادر استلم nonce الخاص به وما زال يملك الحالة الموثقة.

كان المستجيب هو من تلقى الإثبات النهائي. أرسله المبادر ولم يتلق رسالة Quick Mode رابعة تقول إن الطرف الآخر استلمه وقبله. ولذلك كان ختم النص غير متماثل من زاوية الدليل.

هذه نتيجة محدودة من ترتيب الرسائل الثلاث، وليست اتهاماً بأن المواصفة وعدت بإيصال لم تقدمه. قد تضيف إعادة الإرسال أو حركة المرور المحمية أو آليات أخرى أدلة جديدة. لا تصبح هذه الأدلة جزءاً من HASH(3) بأثر رجعي.

وفّر RFC 2408 مسار Commit وCONNECTED لمزامنة أخرى، مع بقاء احتمال ضياع الرسالة الأخيرة. إنه سياق مجاور، بينما يملك هذا المقال حدود HASH الثلاثة وإيصال التثبيت الغائب.

حتى رسالة رابعة لا تستطيع وحدها إثبات حالتي نواتين. يتفاوض daemon IKE، بينما تثبت النواة أو المسرّع SPI والمفاتيح والتحويلات والأعمار والمحددات ونوافذ الإعادة والمسارات.

استلام daemon ليس نجاح استدعاء النظام. نجاح الاستدعاء ليس توافق اتجاهي الدخول والخروج. التوافق ليس أول حزمة محمية. والحزمة ليست نتيجة التطبيق.

وفّر Ni وNr حداثة حقيقية. منعا إعادة الرسائل القديمة من إنشاء روابط زائفة وساهما في اشتقاق KEYMAT. من دون KE إضافي، دخل SKEYID_d والبروتوكول وSPI والرقمان في الاشتقاق.

جدّد ذلك المفاتيح لكنه لم يمنح مفاتيح Phase 2 سرية مستقبلية مثالية مستقلة عن أسّ Phase 1. عند إضافة KE، نفذ الطرفان Diffie-Hellman جديداً وأدخلا السر المشترك في KEYMAT، فحصلت المفاتيح على PFS.

كان استخدام KE اختيارياً ودعمه إلزامياً. وإذا استُخدم وجب أن يكون group متسقاً في كل transform لكل اقتراح. وإذا ظهرت هويات العملاء وجب أن تنطبق على جميع الروابط في التفاوض.

PFS خاصية عن أثر اختراق مستقبلي في مفاتيح ماضية. لا يثبت نجاح إدخال SAD أو ارتباط SPD أو برمجة العتاد أو مرور حزمة. قوة الضمان التشفيري لا توسع مجاله.

أظهرت IDci وIDcr مشكلة السلطة. قد تكون هوية Phase 1 بوابة، بينما تصف الهويات الاختيارية المضيفين أو الشبكات أو البروتوكولات التي تتفاوض البوابة نيابة عنها.

توثيق البوابة لا يمنحها حق فتح كل علاقة عملاء. يستطيع HASH إثبات أن حقول الهوية كانت داخل النص المحمي. وحدها السياسة المحلية تقرر إن كان هذا النظير يملك السلطة عليها.

اختار المستجيب transform وSPI وفق سياسته ووثّق الاختيار في HASH(2). أثبت المبادر أنه رآه عبر HASH(3). لم يدخل في الحساب نجاح كتابة لاحقة أو مطابقة selector أو عداد حزم.

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

جعلت قواعد IV هذا الفصل صريحاً. اشتق أول IV من Phase 1 وMessage ID، ثم استخدمت كل رسالة آخر كتلة مشفرة من سابقتها داخل المفاوضة نفسها.

نصح RFC ألا يحدث التطبيق IV الجاري بمجرد وصول ciphertext. يجب فك الرسالة وفحصها والتأكد من أنها تتقدم بآلة حالة IKE. إعادة إرسال صحيحة تشفيرياً ليست تقدماً جديداً.

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

جعل UDP فقد الرسالة الأخيرة ممكناً. قد يعيد المبادر HASH(3) إذا لم ير حركة محمية. يجب على المستجيب تمييز الإعادة من أمر جديد، وألا يكرر آثار التثبيت.

يلزم سجل من الطرفين. عند المبادر: التحقق من HASH(2)، إرسال HASH(3)، الاشتقاق، تثبيت SA في الاتجاهين، والعدادات. عند المستجيب: استلام HASH(3) والتحقق منه، التثبيت المكمل، والمحددات والعدادات.

توضح طبقات الواقع لدى Lu Heng المجال. Message ID للربط، وHASH للنص الموثق، وnonce وDiffie-Hellman للاشتقاق، والسياسة للسلطة، وSAD/SPD للحالة التنفيذية، والعداد للحزم، والتطبيق للنتيجة.

تظهر مشكلة الوكالة عند كل انتقال. جهة الاعتماد تربط هوية Phase 1، ومالك السياسة يسمح بمحددات Phase 2، وdaemon يتفاوض، والنواة أو المسرّع يثبت، والتشغيل يراقب الحزم، ومالك الخدمة يقيس الفائدة.

لا يحتاج الحد الأدنى من المواصفة المشتركة إلى توحيد كل سياسة ونواة. يحتاج إلى رسائل وحسابات مشتركة. تحتفظ الجهات المحلية بحرية القرار، ولذلك تتحمل واجب إيصالاتها.

تعني أولوية الكود الجاري حفظ السلسلة: ملفات الارتباط، بصمة اعتماد Phase 1 ونتيجة المصادقة، Message ID، Ni، Nr، KE، الاقتراحات، SPIs، نتائج HASH، نسخة السياسة، طلبات التثبيت وردودها، روابط التشغيل، المحددات، العدادات واختبار التطبيق.

بهذه السلسلة يمكن تحديد الفشل. غياب HASH(3) عند المستجيب يعني أن النص لم يغلق لديه. اتفاق daemonين مع غياب SA يعني فشل التثبيت. وجود عدادات مع فشل الخدمة يعني أن المشكلة بعد IPsec.

نشر RFC 2409 في نوفمبر 1998. حدّث RFC 4109 متطلبات خوارزميات IKEv1. استبدل RFC 4306 عائلة 2407/2408/2409 بـIKEv2، وصار RFC 7296 معيار الإنترنت لـIKEv2. في 2023 أصبح IKEv1 تاريخياً، وألغاه RFC 9395 وأغلق السجلات المرتبطة.

أثبت HASH الثالث أن المبادر رأى الاختيار. لم يمنح البوابة السلطة، ولم يثبت أن الطرفين نفذا النتيجة.

المصادر