الخلاصة

  • تحمل Version Negotiation قائمة غير محمية تشفيرياً بالإصدارات التي يعلن المرسل استعداده لقبولها.
  • يمنح تكرار معرّفات الاتصال قرينة محدودة على أن المرسل شاهد Initial، لكنه لا يصادق على هوية الخادم المسمّى أو سياسة تشغيله.
  • يربط السجل التشغيلي المفيد الحزمة الخام بالاختيار التالي وبـ Version Information الموثّقة داخل المصافحة.

تعرض لوحة توافق ثلاثة إصدارات من QUIC بجوار عنوان طرفي. مصدرها التقاط واحد: جرّب العميل إصداراً، وتلقى Version Negotiation، وقرأ ثلاثة بدائل. عند تحويل تلك القيم فوراً إلى «قدرات الخادم» تصبح اللوحة أكثر يقيناً من الدليل.

توضح RFC 9000 §6.1 أن الخادم يرسل الرد حين لا يقبل الإصدار الذي اختاره العميل، ويضمّن إصدارات سيقبلها. يمكن توليد الرد من دون الاحتفاظ بحالة، ويجوز للخادم تحديد عدد الردود. لذلك لا يعني غياب الحزمة قائمة كاملة بما لا يدعمه الخادم.

يوفر التنسيق ارتباطاً ضيقاً. وفق RFC 9000 §17.2.1، تكون قيمة Version صفراً، وينسخ DCID في الرد SCID الخاص بالعميل، بينما ينسخ SCID قيمة DCID من Initial. تقول المواصفة إن هذا يمنح بعض الثقة بأن المرسل شاهد Initial. ثم تأتي قائمة من قيم إصدار بطول 32 بت.

مشاهدة Initial لا تعني التوثيق بوصف المرسل هو الخدمة المقصودة. تنص RFC 9000 §12.1 على أن حزم Version Negotiation لا تحظى بحماية تشفيرية. يستطيع جهاز على المسار رؤية المعرّفات المطلوب تكرارها. ولا تحمل الحزمة شهادة TLS أو تحقق Finished أو معلمات نقل موثّقة تربط القائمة بالنظير.

تزيل قواعد العميل بعض الالتباس السهل من دون رفع مستوى الإثبات. تفرض RFC 9000 §6.2 على العميل الذي لا يدعم سوى QUIC v1 أن يتخلى عن محاولة الاتصال عند تلقي حزمة تنطبق عليها القاعدة. وهناك استثناءان: إسقاط الحزمة إذا عولجت حزمة أخرى بنجاح، وإسقاطها إذا تضمنت القائمة الإصدار الذي اختاره العميل أولاً. تقلل هذه الشروط الحقن الواضح أو الرد القديم، لكنها لا تجعل القائمة وثيقة سياسة موقعة.

يصل الدليل الأقوى داخل المصافحة. تعرف RFC 9368 §3 Version Information التي تضم Chosen Version وAvailable Versions، وتوجب تبادلها بآلية موثّقة. في QUIC v1 تحملها معلمة version_information. وتصرّح RFC 9368 §9 بأن أمن الآلية يعتمد على صحة هذه المعلومات، التي توفرها معلمات النقل الموثّقة في QUIC v1.

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

يفيد هذا السلم في تفسير إعادة محاولة أو إيقاف محددين. لكنه لا يثبت أن كل أطراف anycast تعرض القائمة نفسها، أو أن الخيارات لا تزال مفعلة، أو أن التطبيق نجح على كل منها، أو أن الخدمة المسماة أرسلت الرد الأول. يحتاج جرد النشر إلى اختبارات مأذونة عبر أطراف ومسارات متعددة، وهوية TLS، وVersion Information موثّقة، وهوية البرنامج والإعداد، وتبادل تطبيقي مكتمل.

يجب حفظ الإصدار المعروض، والوقت، وخماسية الاتصال المكوّنة من عنواني IP ورقمي المنفذ والبروتوكول، وDCID وSCID في Initial، والبايتات الخام، والمعرّفات المكررة، وترتيب القائمة، ونتيجة قواعد الإسقاط، والإصدار التالي، والإصدار المتفاوض عليه، وversion_information، وهوية النظير التي صادقت عليها TLS، والطرف أو الإصدار البرمجي، والنتيجة. كما أن الانتقال المرصود إلى إصدار أدنى لا يثبت وحده حدوث خفض للإصدار؛ يلزم سجل مصافحة موثّق ومجموعات الإصدارات الفعلية وقواعد الاختيار.

قيمة الحزمة في حدودها الدقيقة: فهي تسجل تفرع توافق في محاولة واحدة. وليست شهادة خادم أو بيان نشر أو وعداً على مستوى الأسطول.