كيف يختار OpenVPN data-ciphers شفرة قناة البيانات
يقدم الخادم قائمة ويختار العميل أول تطابق۔ اقرأ سطري السجل، وقارن القائمتين، وأضف خيارًا احتياطيًا فقط حيث يحتاجه الطرف الآخر۔
يرتفع النفق، ويعرض السجل شفرة، ويستمر مراجعة الملف الشخصي۔ ثم يصل تحديث عند أحد الأطراف ويفشل الملف نفسه برسالة عن عدم وجود شفرة مشتركة، مما يدفع الناس للبحث عن توجيه يجب حذفه۔ الشيء المفيد للفهم أن data-ciphers يصف تفاوضًا لا إعدادًا۔ يقدم أحد الجانبين قائمة، ويختار الآخر منها، والنتيجة خوارزمية واحدة يدعمها الطرفان۔ قراءة هذا التبادل تفسر معظم هذه الإخفاقات قبل أن تغير سطرًا۔
قناتان، إعدادان
جلسة OpenVPN لها قناة تحكم وقناة بيانات۔ تنفذ قناة التحكم مصافحة TLS التي تصادق على الأطراف وتتفاوض على المفاتيح۔ وتشفّر قناة البيانات الحزم التي تحمل حركة المرور لديك۔
يضبط data-ciphers الثانية۔ لقناة التحكم خياراتها الخاصة، وفحوص هوية الملف مسألة ثالثة منفصلة۔ تغيير أحدها لا يصلح الآخر، ولهذا قد يبدو الملف صحيحًا ومع ذلك يفشل في مرحلة معينة۔
احتفظ بالثلاثة في صناديقها الخاصة عندما تقرأ ملف الإعداد۔
اقرأ التفاوض من السجل
يسمي سجل العميل النتيجتين عندما ينجح الاتصال۔ يبلغ سطر عن قناة التحكم وتفاصيل TLS الخاصة بها، ويبلغ سطر آخر عن الشفرة المختارة لقناة البيانات۔
اقرأ كليهما، لأنهما يجيبان عن أسئلة مختلفة۔ فشل قناة التحكم يوقف الاتصال قبل أن تصبح أي شفرة بيانات مهمة۔ يظهر عدم تطابق قناة البيانات بعد مصافحة ناجحة، برسالة عن عدم وجود شفرة مشتركة۔
ثم قارن القوائم المقدمة على الجانبين۔ الاسم الذي لا يوفره إصدار أحد الطرفين أو أساسه التشفيري لا يمكن اختياره، مهما ظهر مبكرًا في قائمة الطرف الآخر۔
كيف يحدث الاختيار فعليًا
يدفع الخادم قائمة data-ciphers الخاصة به إلى العميل أثناء المصافحة، ويختار العميل أول إدخال في تلك القائمة يدعمه هو أيضًا۔ لذلك ينتمي الترتيب إلى إعداد الخادم لا إلى إعداد العميل۔
هذه التفصيلة تفسر فئة من النتائج المربكة۔ إعادة ترتيب قائمة العميل لا تغير شيئًا ما دامت قائمة الخادم هي التي تقرر۔ وإضافة شفرة لا يستطيع العميل توفيرها لا تغير شيئًا أيضًا، لأن العميل يجب أن يكون قادرًا على استخدام الإدخال الذي يختاره۔
غيّرت الإصدارات الأحدث القائمة الافتراضية وأعادت تسمية الخيار الذي كان يحتفظ بها، لذا قد يختلف طرفان على إصدارين مختلفين دون أن يحرر أحد ملفًا شخصيًا۔ تحقق من الإصدار على كل جانب قبل أن تفترض خطأ مطبعيًا۔
القائمة ليست ترتيبًا للقوة بالمعنى المجرد۔ إنها مجموعة مرشحين، والمختار هو أول إدخال مدعوم من الطرفين في ترتيب الخادم۔ لهذا يمكن لقائمتين تبدوان مختلفتين أن تتفاوضا على الشفرة نفسها۔ ولهذا أيضًا يمكن لقائمتين تبدوان متطابقتين أن تفشلا۔
الأطراف الأقدم تحتاج إلى احتياطي متعمد
الطرف الذي لا يستطيع التفاوض إطلاقًا، لأنه أقدم من الآلية أو لأنه عطلها، يحتاج إلى ترتيب توافق موثق۔ يوجد خيار الاحتياطي تحديدًا لتلك الحالة وينطبق على الأطراف التي لا تشارك في التفاوض۔
هذا ليس مثل تمكين كل شفرة قديمة لتختفي رسالة۔ القائمة الواسعة تضعف الجلسة لكل طرف، بما في ذلك الأطراف التي كانت ستتفاوض على شيء قوي۔
نسّق بين الجانبين بدلًا من تحرير أسماء خوارزميات غير متصلة۔ إذا أزال تحديث الخادم خيارًا قديمًا، فإن الإصلاح ينتمي إلى خطة الإصدار، لا إلى تسرع عند العميل۔
احتفظ بالتحقق سليمًا
عدم تطابق قناة البيانات ليس سببًا لقبول خادم غير موثوق۔ التحقق من الشهادة واسم الخادم المتوقع وإعدادات حماية قناة التحكم منفصلة عن اختيار الشفرة، وينبغي أن تصمد أمام أي تغيير في التوافق۔
سجّل شفرة البيانات المتفاوض عليها وإصدار العميل وإصدار الخادم معًا، حتى تبدأ المقارنة التالية من الحقائق لا من ملف التعريف۔
بعد تصحيح مدعوم، اختبر الاتصال الأولي وإعادة التفاوض، لأن الجلسة التي تُنشأ مرة واحدة قد تفشل عند تجديد المفاتيح۔
إذا ارتفع النفق وظلت المواقع تفشل، فالشفرة لم تعد المشتبه بها۔ تابع مع التوجيه وDNS۔ ترتيب العمل: اقرأ سطري السجل، وقارن القائمتين، وافحص الإصدارات، وأضف احتياطيًا فقط لطرف يحتاجه، ثم أعد اختبار مسار التجديد۔