کلیدهای 8192 بیتی دستدادن را متوقف میکنند؛ DH 1024 بیتی رد میشود
دو خطای اندازه با اصلاحهای متضاد: کلید بیشازحد بزرگ زمان دستدادن را میسوزاند تا مهلت طرف مقابل تمام شود، و یک گروه DH کوچک پیش از شروع رد میشود.
روی یک سرور، کلاینتها مدتی معلق میمانند و سپس دوباره وصل میشوند، و سرور دیگری اتصالها را بیدرنگ با پیامی درباره اندازه کلید رد میکند. اینها خطاهای متفاوتی به نظر میرسند و همان خطا هستند که در دو جهت مخالف اشاره میکند. رمزنگاری دستدادن هزینهای دارد که با اندازه پارامترها رشد میکند، و کف مشخصی هم دارد که کتابخانههای مدرن پایینتر از آن نمیروند. تعیین اندازه مواد همان چکلیست است، و اولین مورد تصمیمگیری درباره این است که واقعاً کدامیک از دو خطا را دارید.
پیش از بازتولید هر چیزی، شکست را بخوانید
زمانبندی بیشتر آن را به شما میگوید. دستدادنی که چند ثانیه طول میکشد و سپس میمیرد معمولاً یعنی محاسبه از صبر طرف مقابل گذشته است، که به پارامترهای بیشازحد بزرگ برای سختافزار یا برای مهلت اشاره میکند. رد بیدرنگ که اندازه کلید یا گروه را نام میبرد به جهت دیگر اشاره میکند، به موادی که کتابخانه اصلاً نخواهد پذیرفت.
این دو به اصلاحهای متضاد نیاز دارند، و بیشتر تلاشها همانجا اشتباه میرود. بازتولید پارامترهای 8192 بیتی روی کلاینتی که پیشتر یک گروه کوچک را رد کرده، حالت کند را بدتر میکند و برای حالت سریع هیچ کاری نمیکند. بنویسید کدام نشانه را دیدید، پیش از آنکه به فایلی دست بزنید.
سپس بررسی کنید از طرف مقابل چه خواسته میشود. سروری که برای گروه بزرگ میدان متناهی پیکربندی شده، هر کلاینت را مجبور میکند در هر مذاکره مجدد همان زمان پردازنده را خرج کند، نه فقط هنگام اتصال. اگر مشکل در فاصلههای منظم و نه هنگام راهاندازی ظاهر شود، آن فاصله سرنخ قویای است برای اینکه کدام تنظیم گران است. مذاکره مجدد کل محاسبه را تکرار میکند، پس توقفی که هر ساعت بازمیگردد معمولاً همان هزینهای است که دوباره پرداخت میشود.
حالت کند: موادی که سختافزار از عهده آن برنمیآید
کار Diffie-Hellman و RSA با اندازه کلید بهسرعت رشد میکند، و همه اینها پیش از جریان یافتن هر ترافیکی در تونل رخ میدهد. روی یک روتر کوچک یا کلاینت کمتوان، گروهی بهاندازه کافی بزرگ میتواند تبادل را از مهلت طرف دیگر فراتر ببرد، پس اتصال دوباره تلاش میکند یا بهسادگی بدون هیچ خطایی معلق به نظر میرسد.
راهحل پایین آمدن به اندازهای است که هر طرف مقابل پشتیبانی میکند و هر دستگاه میتواند راحت محاسبه کند. کلید RSA 2048 بیتی و گروه 2048 بیتی همچنان یک خط پایه گسترده سازگار میمانند؛ بزرگتر فقط وقتی کمک میکند که همه طرفها موافق باشند و پردازنده بتواند در هر مذاکره مجدد هزینهاش را بپردازد. هر چیزی بالاتر از این خط پایه یک معاوضه آگاهانه است، نه یک ارتقا.
اندازه یک امتیاز نیست، و بزرگترین عدد در جدول مقایسه بهطور خودکار انتخاب درست نیست. کوچکترین مقداری را انتخاب کنید که سیاستتان اجازه میدهد و همه طرفها میپذیرند، سپس دستدادن را اندازه بگیرید بهجای آنکه فرض کنید بهتر شده است. گروه کوچکتری که هنوز به مهلت میرسد به شما میگوید اندازه هرگز تمام ماجرا نبوده است.
حالت سریع: گروهی که کتابخانه رد میکند
نسخههای مدرن OpenSSL کوچکترین گروههای میدان متناهی را یکسره رد میکنند، و سطح امنیتی بالاتر کف را باز هم بالاتر میبرد. فرمافزار روتری که یک فایل پارامتر چند دههای را همراه دارد منبع معمول است، و نشانه، اتصالی است که بیدرنگ با پیامی که گروه یا اندازه کلید را نام میبرد شکست میخورد. هیچچیز در آن شکست تناوبی نیست، و همین شناساییاش را آسان میکند.
فایل را جایگزین کنید بهجای ویرایش پیکربندی برای دور زدن بررسی. یک گروه بهروز تولید کنید، آن را اعتبارسنجی کنید، سپس آن را همانجایی نصب کنید که دیمن واقعاً میخواند. فایل قدیمی را نگه دارید تا کلاینتی با موفقیت با فایل جدید متصل شود:
openssl dhparam -out /etc/openvpn/ffdhe2048.pem 2048
openssl dhparam -in /etc/openvpn/ffdhe2048.pem -check -noout
ls -l /etc/openvpn/ffdhe2048.pemدستور بررسی فایل را اعتبارسنجی میکند و وقتی قبول شود چیز مفیدی چاپ نمیکند؛ فهرست تأیید میکند که فایلی را جایگزین کردید که سرویس بارگذاری میکند، نه نسخهای کهنه در کنارش. پیکربندی را به آن مسیر اشاره دهید، دیمن را دوباره راهاندازی کنید و تأیید کنید کلاینتی که پیشتر شکست میخورد اکنون دستدادن را کامل میکند.
اگر سرور سطح امنیتی یا پروفایل گواهی هم تعیین میکند، پیش از نتیجهگیری درباره اشتباه بودن گروه آنها را بخوانید. پروفایلی که کلاس سختگیرانهتری میخواهد میتواند موادی را رد کند که پیشفرض میپذیرفت، و حذف آن تنظیم تغییری باریکتر از خاموش کردن سراسری بررسی است.
اندازهای برای طرف مقابل و سختافزار انتخاب کنید
پیش از تولید چیز عجیبی، بفهمید طرف دور چه چیزی را تحمل میکند. دستگاهی که برای گروه 2048 بیتی خیلی قدیمی است دستگاهی برای تعویض است، چون نشانه گرفتن سرور به گروهی ضعیفتر فقط شکایت سازگاری را به قطعی سرویس تبدیل میکند. اصلاحهای پایدار به سوی نرمافزار تازهتر حرکت میکنند، نه پارامترهای قدیمیتر. هر استثنای موقت در این زمینه راهی برای تبدیل شدن به پیکربندی دائمی پیدا میکند.
جایی که پردازنده سرور محدودیت است، الگوریتم را عوض کنید نه آنکه زیر سیاست پایین بیایید. تبادل کلید با منحنی بیضوی مانند X25519 بهشدت ارزانتر از یک گروه بزرگ میدان متناهی است و بهطور گسترده پشتیبانی میشود، که آن را پاسخ بهتری به شکایت کارایی از یک مدول RSA کوچکتر میکند.
هر چه انتخاب کنید، با یک اتصال واقعی آزمایش کنید و ببینید دستدادن چقدر طول میکشد، نه فقط اینکه در نهایت وصل میشود یا نه. اتصالی که در دوازده ثانیه موفق میشود همان ریشه علتی را دارد که در پانزده ثانیه شکست میخورد.
انتخاب را ثبت کنید تا بازسازی نتواند آن را باطل کند
فایل پارامتر را زیر مدیریت پیکربندی نگه دارید و اندازه، دلیل و تاریخ را کنارش بنویسید. سروری که دوباره ساخته شده و بیصدا پیشفرضهای خودش را تولید میکند، همان راهی است که همان خطا شش ماه بعد بازمیگردد و هیچکس نمیتواند تصمیم اولیه را توضیح دهد.
همان اطلاعات را کنار نقطه پایانی و پروفایل بنویسید، تا یک بازبینی مجبور نباشد آن را از اندازه فایل بازسازی کند. وقتی اتصال بعدی معلق شود، آن یادداشت تفاوت میان یک بررسی پنجدقیقهای و یک تحقیق تازه است. همچنین مانع میشود مهندس بعدی حالت کند را با اصلاحی حل کند که برای حالت سریع در نظر گرفته شده بود.