ما الذي يتحقق منه openssl dhparam -check وما الذي يفوته
اجتياز فحص المعاملات ليس مراجعة أمنية. اطّلع على ما يثبته عن ملف DH لديك، وكيف تقرأ حجم الزمرة، وكيف تتجنب إعادة التوليد.
اجتياز dhparam -check يبدو كحكم نهائي على إعداد Diffie-Hellman في شبكتك الافتراضية. وهو ليس كذلك. تقارن الأداة ملف معاملات واحد بالحساب الذي يدّعي أنه يحققه، ولا تقول شيئًا عن مطابقة حجم الزمرة لسياستك أو عن كون النفق يحمّل ذلك الملف أصلًا. قراءته كمراجعة أمنية هي الفرضية التي يجدر تصحيحها أولًا.
يحوي ملف المعاملات عددًا أوليًا ومولّدًا. الصلاحية خاصية لتلك الأعداد، أما القوة فهي حكم على نموذج تهديدك وأقرانك، والاثنان غير متبادلين.
ما الذي يؤكده فحص الصلاحية فعليًا
شغّل الفحص على الملف الذي لديك واقرأ الرد. ينفّذ openssl dhparam -in dh.pem -check -noout فحوص المعاملات ويكتم المخرجات المرمّزة. رسالة تفيد بأن المعاملات تبدو سليمة تعني أن القيم متسقة بنيويًا؛ ولا تعني أن زمرة قصيرة مقبولة في بيئتك.
التوليد بدون -dsaparam ينتج أعدادًا أولية آمنة، حيث يكون (p-1)/2 أوليًا أيضًا، ولهذا يستغرق وقتًا طويلًا. مسار نمط DSA يبني المعاملات بسرعة أكبر ويحوّلها إلى صيغة DH، ويضيف دليل OpenSSL متطلبات إضافية للمفاتيح الجديدة عند استخدامها. لا يُعد أي من التركيبين سرًا للجلسة: الملف مادة إعدادات عامة، وليس المفتاح الخاص للشهادة ولا السر المشترك لقناة التحكم.
اقرأ الحجم والمولّد قبل أن تحكم على الملف
تكتسب نتيجة الصلاحية معنى أكبر عندما تعرف ما جرى التحقق منه. اطبع المعاملات بالأمر openssl dhparam -in dh.pem -text -noout، ثم سجّل طول العدد الأولي وقيمة المولّد.
قارن ذلك الطول بسياسة مكتوبة لا بعادة. إذا كان شرطك زمرة مُسمّاة معتمدة من حزمة TLS حديثة، فقد يكون ملف مُولّد يدويًا أداة خاطئة تمامًا. سجّل الرقمين في سجل التغيير كي لا يضطر المراجع التالي إلى استنتاجهما من جديد.
لا تحوّل الفحص إلى إعادة توليد
نمط الفشل هنا أمر يبدو كفحص ويتصرف كمولّد. إضافة طول بالبتات، كما في openssl dhparam -check 2048، تطلب معاملات جديدة ويُتجاهل ملف الإدخال. ويمكن لخيار المولّد أن يفعل الشيء نفسه. إن كنت تقصد الفحص فقط، فمرّر -in ثم -check ولا شيء يصف حجمًا.
كتابة المخرجات فوق المسار الأصلي تستحق الشك نفسه، لأن الدليل يحذر من أن كتابة الملفات ليست ذرية. انهيار أثناء الكتابة يترك ملف معاملات مقطوعًا وخدمة لا تبدأ.
طابق الزمرة مع البروتوكول لا مع اتجاه سائد
سياسة الحجم قرار لا تستطيع الأداة قراءته نيابة عنك. زمرة حقل منتهٍ بطول 2048 بت هي حد أدنى شائع، والزمر الأكبر تكلّف وقتًا في المصافحة، فاختر الرقم الذي يسميه خط أساسك واكتبه. الزمر الشائعة الاستخدام ليست ضعيفة لأنها عامة؛ الغموض لا يضيف شيئًا هنا.
حيث تدعم الحزمة زمرًا مُسمّاة معتمدة، اتبع ذلك الترتيب الموثق بدلًا من توليد معاملات غير مألوفة لتبدو فريدة. الزمرة المُسمّاة شيء يستطيع القرين التعرف عليه ويستطيع المراجع البحث عنه، وهو أنفع من ملف مخصص لا يستطيع أحد تصنيفه.
تأكد من أن الشبكة الافتراضية تحمّل الملف أصلًا
ملف معاملات صحيح لا يقرأه أي عملية لا يغيّر شيئًا. في OpenVPN توجيه الخادم هو dh مع مسار، ويمكن للنشر الذي يعتمد على ECDH أو تبادل مفاتيح TLS 1.3 أن يضبط dh none بدلًا من ذلك. افحص الإعدادات الجارية لا قالبًا، ثم تأكد من أن العملاء والأقران يتفاوضون على التركيب نفسه.
أغلق الحلقة بالأدلة التي تحتاجها فعلًا: الزمرة التي تفاوض عليها النفق، وطول المعاملات في الملف، وسطر السياسة الذي يلبّيه ذلك الطول. الفحص الناجح بند واحد في تلك القائمة. التعامل معه كالجواب الكامل هو كيف تنجو زمرة قصيرة من تدقيق كان يفترض أن يلتقطها.