8192 بٹ کی چابیاں ہینڈ شیک روک دیتی ہیں؛ 1024 بٹ DH مسترد ہوتا ہے
متضاد اصلاحات والی دو سائز کی خرابیاں: زیادہ بڑی چابی ہینڈ شیک کا وقت جلاتی ہے جب تک دوسرا فریق وقت کی حد سے نہ گزر جائے، جبکہ چھوٹا DH گروپ شروع ہونے سے پہلے ہی مسترد ہو جاتا ہے۔
ایک سرور میں کلائنٹ کچھ دیر اٹک کر پھر دوبارہ جڑتے ہیں، اور دوسرا چابی کے سائز کے بارے میں پیغام کے ساتھ کنکشن فوراً مسترد کر دیتا ہے۔ یہ مختلف بگز لگتے ہیں اور یہ وہی بگ ہے جو مخالف سمتوں کی طرف اشارہ کرتا ہے۔ ہینڈ شیک کرپٹوگرافی کی لاگت پیرامیٹر کے سائز کے ساتھ بڑھتی ہے، اور اس کی ایک نچلی حد بھی ہے جس سے نیچے جدید لائبریریاں نہیں جاتیں۔ مواد کا سائز طے کرنا ہی چیک لسٹ ہے، اور پہلا نکتہ یہ فیصلہ کرنا ہے کہ دونوں خرابیوں میں سے کون سی واقعی آپ کے پاس ہے۔
کچھ بھی دوبارہ بنانے سے پہلے ناکامی پڑھیں
وقت آپ کو اس کا زیادہ تر حصہ بتا دیتا ہے۔ کچھ سیکنڈ لے کر پھر مرنے والا ہینڈ شیک عام طور پر یہ معنی رکھتا ہے کہ حساب دوسرے فریق کے صبر سے آگے نکل گیا، جو ہارڈویئر یا وقت کی حد کے لیے بہت بڑے پیرامیٹرز کی طرف اشارہ کرتا ہے۔ چابی یا گروپ کے سائز کا نام لینے والا فوری انکار دوسری سمت کی طرف، ایسے مواد کی طرف اشارہ کرتا ہے جسے لائبریری بالکل قبول نہیں کرے گی۔
ان دونوں کو متضاد اصلاحات درکار ہیں، اور یہیں زیادہ تر کوششیں غلط ہوتی ہیں۔ جس کلائنٹ نے پہلے ہی چھوٹا گروپ مسترد کر دیا ہے اس پر 8192 بٹ پیرامیٹرز دوبارہ بنانا سست کیس کو مزید خراب کرتا ہے اور تیز کیس کے لیے کچھ نہیں کرتا۔ کسی فائل کو چھونے سے پہلے لکھیں کہ آپ نے کون سی علامت دیکھی۔
پھر دیکھیں کہ دوسرے فریق سے کیا مانگا جا رہا ہے۔ بڑے محدود میدان کے گروپ کے لیے ترتیب دیا گیا سرور ہر کلائنٹ کو صرف جڑنے کے وقت ہی نہیں بلکہ ہر دوبارہ گفت و شنید میں بھی اتنا ہی CPU وقت خرچ کرنے پر مجبور کرتا ہے۔ اگر مسئلہ شروع میں نہیں بلکہ مقررہ وقفے پر ظاہر ہو تو وہ وقفہ اس بات کا مضبوط اشارہ ہے کہ کون سی سیٹنگ مہنگی ہے۔ دوبارہ گفت و شنید پورا حساب دہراتی ہے، اس لیے ہر گھنٹے واپس آنے والا رکاؤ عام طور پر وہی لاگت دوبارہ ادا کرنا ہے۔
سست کیس: وہ مواد جو ہارڈویئر برداشت نہیں کر سکتا
Diffie-Hellman اور RSA کا کام چابی کے سائز کے ساتھ تیزی سے بڑھتا ہے، اور یہ سب سرنگ میں کوئی ٹریفک بہنے سے پہلے ہی ہوتا ہے۔ چھوٹے روٹر یا کم طاقت والے کلائنٹ پر کافی بڑا گروپ تبادلے کو دوسرے فریق کی وقت کی حد سے آگے دھکیل سکتا ہے، جس سے کنکشن دوبارہ کوشش کرتا ہے یا بغیر کسی خرابی کے بس اٹکا ہوا دکھائی دیتا ہے۔
اصلاح یہ ہے کہ ایسے سائز پر آئیں جسے ہر فریق سپورٹ کرتا ہو اور ہر ڈیوائس آرام سے حساب کر سکے۔ 2048 بٹ RSA چابی اور 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 بٹ گروپ کے لیے بہت پرانا ڈیوائس بدلنے والا ڈیوائس ہے، کیونکہ سرور کو کمزور گروپ کی طرف موڑنا صرف مطابقت کی شکایت کو رکاوٹ میں بدلتا ہے۔ پائیدار اصلاحات پرانے پیرامیٹرز کی طرف نہیں، نئے سافٹ ویئر کی طرف جاتی ہیں۔ اس شعبے کی ہر عارضی استثنا مستقل کنفیگریشن بننے کا راستہ ڈھونڈ لیتی ہے۔
جہاں سرور کا CPU حد ہے، وہاں پالیسی سے نیچے اترنے کے بجائے الگورتھم بدلیں۔ X25519 جیسا بیضوی منحنی چابی کا تبادلہ بڑے محدود میدان گروپ سے نمایاں طور پر سستا ہے اور وسیع پیمانے پر معاونت یافتہ ہے، جو اسے چھوٹے RSA ماڈیولس کی نسبت کارکردگی کی شکایت کا بہتر جواب بناتا ہے۔
آپ جو بھی چنیں، ایک حقیقی کنکشن سے جانچیں اور دیکھیں کہ ہینڈ شیک میں کتنا وقت لگتا ہے، صرف یہ نہیں کہ آخر میں جڑتا ہے یا نہیں۔ بارہ سیکنڈ میں کامیاب ہونے والے کنکشن کی بنیادی وجہ وہی ہے جو پندرہ میں ناکام ہونے والے کی ہے۔
انتخاب محفوظ کریں تاکہ دوبارہ تعمیر اسے منسوخ نہ کر سکے
پیرامیٹر فائل کو کنفیگریشن انتظام کے تحت رکھیں اور اس کے ساتھ سائز، وجہ اور تاریخ لکھیں۔ اپنے ڈیفالٹ چپکے سے بنانے والا دوبارہ تعمیر شدہ سرور وہی راستہ ہے جس سے وہی خرابی چھ ماہ بعد واپس آتی ہے اور کوئی اصل فیصلہ نہیں سمجھا پاتا۔
وہی معلومات اینڈ پوائنٹ اور پروفائل کے ساتھ لکھیں، تاکہ جائزہ انہیں فائل کے سائز سے دوبارہ نہ بنانا پڑے۔ جب اگلا کنکشن اٹکے، تو وہ نوٹ پانچ منٹ کی جانچ اور نئی تحقیقات کے درمیان فرق ہے۔ یہ اگلے انجینئر کو تیز کیس کے لیے بنائی گئی اصلاح سے سست کیس حل کرنے سے بھی روکتا ہے۔