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

ما لا يستطيع وضع المفتاح الثابت فعله

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

إن دليل OpenVPN 2.6 صريح في أن المفتاح يبقى حتى يُولَّد مفتاح جديد. وهذا مقبول لوصلة مختبرية أو لزوج ثابت من الأجهزة له إجراء تدوير موثّق، وغير مقبول حيثما كان السر طويل الأمد خطرًا حقيقيًا. إن استبدال ملف لا ينشئ مفتاحًا جديدًا لزوج قيد التشغيل؛ بل ينشئ نظيرين مختلفين. لذلك فإن استبدال الملف يضيف انقطاعًا دون أن يضيف تدويرًا.

كما لا توجد فكرة عن هوية النظير تتجاوز حيازة الملف. كل من يحمل المفتاح هو نظير، ولا شيء في النفق يسجّل أي جانب هو أي، لذا فإن الإلغاء إما كلي أو لا شيء.

الانتقال إلى TLS دون إعادة تصميم الوصلة

يضيف وضع TLS قناة تحكم، ومعها القدرة على التفاوض على مفاتيح قناة البيانات. في نشر من نقطة إلى نقطة، يأخذ أحد الطرفين دور الخادم ويأخذ الآخر دور العميل، لكن البنية تبقى وصلة بين نظيرين: يعرف كل طرف نقطة النهاية لدى الآخر، ولا يظهر أي مجمّع أو خدمة متعددة المستخدمين. الأدوار تفصيل من تفاصيل المصافحة، وليست بنية جديدة.

امنح كل جهاز هويته الخاصة. يحتاج كل طرف إلى شهادة ومفتاح خاص، وإلى مرساة الثقة التي تتحقق من الآخر، وإلى قاعدة تحقق من النظير تحدد من هو المتوقع. لا تعد استخدام المفتاح الخاص لنظير على الآخر لتوفير الوقت؛ فذلك يحوّل هويتين إلى واحدة ويزيل القدرة على إلغاء أي من الطرفين على حدة. التسجيل هو المكان المناسب لفعل ذلك بشكل صحيح، لأن إصلاحه لاحقًا يعني إعادة إصدار الشهادات.

أبقِ عقد الشبكة دون تغيير بينما تتغير الحماية. ينبغي أن تنطبق العناوين والمسارات والخدمات المسموح بها نفسها قبل التغيير وبعده، بحيث يكون أي فشل أثناء الترحيل مشكلة حماية لا مفاجأة توجيه متنكرة. اكتب العناوين والمسارات قبل التغيير؛ فمقارنتها بعد ذلك أسرع من إعادة بنائها من الذاكرة.

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

من يجدّد ماذا، ومتى

في وضع TLS، يُقاد التجديد بحدود مضبوطة: فاصل زمني، أو عدد بايتات، أو عدد حزم. الضابط الزمني الموثق هو ما تعتمد عليه معظم عمليات النشر، ويمكن للقيمة الفعلية الأقل بين النظيرين أن تبدأ الاستبدال، لذا فإن رفعها على جانب واحد فقط لن يؤخر الحدث. توجد حدود الحجم لأن وصلة مزدحمة قد تستنفد مفتاحًا قبل أن تفعل الساعة ذلك. ولا أحد من هذين الحدين فحصًا للحالة، ولا يخبرك أي منهما بأن تجديدًا نجح.

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

أبقِ الكائنات منفصلة في ذهنك. الشهادة تثبت الهوية طويلة الأمد وتُستبدل وفق جدول تتحكم فيه. أما مفتاح قناة البيانات فيُحدَّث تلقائيًا، وتبادل مصادقة منفصل، إن كانت النشرة تتطلبه، يتبع سياسة الحساب وقد يحتاج إلى ترتيبات خاصة به للتبادلات اللاحقة.

إن تعطيل التجديد كليًا، بضبط الفاصل على صفر، ليس حلًا لسجل مزعج. فهو يحوّل حدث دورة حياة سليمًا إلى مفتاح دائم، وهذا يعيدك إلى الخاصية التي كنت تحاول تركها خلفك.

قبول التغيير

ابنِ الإعداد الجديد من المثال المدعوم في الإصدار المثبَّت، لا من مقتطف أدنى قديم ورثت خوارزمياته ومسارات ملفاته من مكان آخر. نسّق التبديل بحيث يتغير النظيران معًا، واحتفظ بمسار استرداد معتمد في حال فشل أحد الجانبين في الإقلاع. أنزل الوصلة عمدًا بدلًا من انتظار انقطاع لاختبار الاسترجاع. فالاسترجاع الذي تدرّبت عليه أثمن من استرجاع وصفتَه.

اختبر ثلاثة أشياء: نجاح التحقق الأولي من الهوية، وعمل تدفق التطبيق المقصود، وحدوث تجديد مضبوط دون فقدان حركة المرور. ثم اقرأ الانتقال في السجل لما يثبته فعلًا: معرّف مفتاح جديد يعني أن النظيرين أكملا استبدالًا، لا أن النفق أعاد الاتصال. تعامل معه كدليل على خطوة واحدة، وافحص عدادات حركة المرور قبل اعتبار الترحيل منتهيًا.

ما الذي سيخفيه وعد بانعدام الانقطاع: الفشل الذي لم تره بعد. فالتجديد الذي يفشل، أو الشهادة التي تنتهي، أو عطل في المسار، كلها قد تزال تزعج الوصلة، ولا شيء منها يُستبعد بتشغيل اختبار نظيف. والخاصية التي تستحق التصميم من أجلها أضيق وأكثر فائدة: أن يتوقف استبدال المفاتيح الروتيني عن كونه تبديل ملف يدويًا.

مقالات ذات صلة