لماذا لا يُلغي المفتاح الأكبر في OpenVPN مؤقّت إعادة توليد المفاتيح
قوة التشفير وعمر المفتاح قراران منفصلان. تحقّق من محفّزات البايت والحزمة والوقت، ثم اختبر إعادة توليد المفاتيح مقابل مسار تسجيل الدخول الفعلي.
اختيار AES-256 أو مفتاح أطول لا يقول شيئًا عن المدة التي يجوز فيها استخدام ذلك المفتاح. قوة المفتاح تصف الخوارزمية؛ سياسة إعادة توليد المفاتيح هي التي تحدّد متى تستمدّ الجلسة مادة مفتاح جديدة. يمكن أن يختار النشر أقوى شيفرة متاحة ويظل مخطئًا في شأن التجديد، لأن القرارين يُتخذان في مكانين مختلفين. والخلط بينهما يُنتج إمّا تغييرًا غير ضروري للشيفرة وإمّا جلسة تتجاوز سياستها بصمت.
اقرأ إعدادات إعادة توليد المفاتيح قبل أن تمسّ الشيفرة، واقرأ الطرفين معًا عند فعل ذلك.
قوة المفتاح وعمر المفتاح يجيبان عن سؤالين مختلفين
تحدّد الشيفرة وحجم المفتاح كم تكون تكلفة الهجوم على حركة مرور ملتقطة. أمّا فاصل إعادة التوليد فيحدّد مقدار حركة المرور التي يحميها مفتاح واحد وكم يبقى المفتاح المكشوف صالحًا. هذان مِقبضان مستقلان، والشيفرة الأقوى لا تمدّد العمر الآمن للجلسة. ومعظم الإرشادات التي تقول «استخدم AES-256» تصمت عن التجديد، لأن التجديد مسألة سياسة لا اختيار خوارزمية.
سجّل الأمرين في ملاحظات النشر: ما الذي يحمي قناة البيانات، وما الذي يُطلق استبدال مفاتيحها.
لإعادة التوليد ثلاثة محفّزات، وأي من الطرفين يمكنه إطلاقها
OpenVPN 2.6 يوثّق محفّزات منفصلة لإعادة التفاوض تقوم على البايتات والحزم والوقت المنقضي. محفّز الوقت هو الذي يتركه معظم عمليات النشر على قيمته الافتراضية، ما يعني أن النفق الصامت يعيد التوليد في موعده. وأي من الطرفين يمكنه بدء التبادل، ويتبعه الطرف الذي لم يبدأه. لذا فإن تغيير المؤقّت على طرف واحد لا يحدّد سلوك الجلسة؛ القيمة الفعّالة هي قيمة الطرف الذي يبدأ أولًا.
محفّزا البايت والحزمة يهمّان لأحمال العمل ذات الصبيب العالي أو الحزم الصغيرة، حيث تتيح سياسة الوقت وحدها لمفتاح واحد حماية بيانات أكثر بكثير مما هو مقصود. وإذا بقيت تلك العدّادات معطّلة، فاذكر ذلك عن قصد في الملاحظات بدلًا من ترك القيمة الافتراضية دون فحص.
إعادة توليد المفاتيح تكشف مسار المصادقة
إعادة التفاوض مصافحة TLS جديدة، أي أن مسار المصادقة يُنفَّذ من جديد. وعمليات النشر التي تستخدم رموزًا لمرة واحدة أو رموزًا عتادية أو تحدّي RADIUS تكتشف ذلك بالطريقة الصعبة: يعمل الاتصال الأول ثم تموت الجلسة بعد ساعة عندما تطلب المصافحة الثانية رمزًا سبق استخدامه. auth-gen-token موجود لسدّ تلك الفجوة بأن يتيح للخادم إصدار رمز قصير العمر لإعادة التفاوض بدلًا من طلب تسجيل دخول تفاعلي جديد.
تعامل مع ذلك كمشكلة في مسار العمل تُحلّ مع المشغّل، لا كدليل على وجوب إيقاف التجديد.
اختبر التجديد تحت الحمل، لا في جلسة دقيقة واحدة
اختبار القبول الذي يتّصل ويرسل نبضة واحدة ثم يقطع الاتصال لا يبلغ إعادة التوليد أبدًا. شغّل جلسة طويلة بما يكفي لتجاوز المحفّز المضبوط، وأبقِ نقلًا جاريًا خلالها، وراقب سجلات الطرفين بحثًا عن المصافحة الجديدة. ثم اختبر مسار الفشل: ما يفعله العميل إذا تعذّر إتمام إعادة التفاوض. النفق الذي ينقطع بنظافة أسهل في التشخيص من نفق يواصل الإرسال في جلسة ميتة.
لا تقرأ نقلًا كبيرًا ناجحًا كدليل على حدّ تشفيري. فهو لا يُظهر إلا أن المسار والعدّادات صمدا لذلك القدر من حركة المرور.
وثّق الخيارين
يحتاج السجل إلى سطرين: كيف تُحمى الحزم، ومتى تُستبدل تلك الحماية. أضف مصدر كل قيمة، لأن الشيفرة قد تأتي من إعداد توزيع افتراضي بينما يأتي المؤقّت من سياسة داخلية. ولا ينبغي أن يضطر مشغّل مستقبلي إلى استنتاج أي منهما من ملف إعداد.
إذا فرضت التوافق استثناءً، فاحصره في إصدار وتاريخ انتهاء. والاستثناء الذي يعيش أطول من سببه يصبح السياسة التي لا يتذكّر أحد أنه اختارها.