خرابی پر ختم ہونے والا ہینڈ شیک اس وقت تک حملہ لگتا ہے جب تک پیغام نہ دیکھیں، اور زیادہ تر یہ حساب ہے: کوئی مشترکہ تجویز نہیں، میعاد ختم شدہ سرٹیفکیٹ، یا ایسا پیکٹ جو کبھی نہ پہنچا۔ ڈاؤن گریڈ حملہ ایک مخصوص چیز ہے: مخالف دونوں سروں کو ان کی منتخب کردہ سے کمزور رویے کی طرف دھکیلتا ہے، اور یہ مختلف شہادتیں چھوڑتا ہے۔ ہر ناکامی کو بددیانتی سمجھنا آپ کو ایسے متاثر کی تلاش میں بھیجتا ہے جو شاید موجود ہی نہ ہو، جبکہ حقیقی ڈاؤن گریڈ کو کنفیگریشن بگ سمجھنا کمزور نتیجہ اپنی جگہ پر چھوڑ دیتا ہے۔ دونوں غلطیوں کی قیمت مختلف ہے، اور صرف ایک ہی سستے میں درست کی جا سکتی ہے۔

ڈاؤن گریڈ حملہ واقعی کیا بدلتا ہے

مقصد سائفر توڑنا نہیں اور نہ کلید کا اندازہ لگانا۔ مقصد گفت و شنید پر اثر ڈالنا ہے تاکہ دونوں فریق کسی پرانے ورژن یا کمزور الگورتھم پر رک جائیں جسے حملہ آور سنبھال سکے، یا ایک فریق یہ مان لے کہ دوسرا صرف اسی کی حمایت کرتا ہے۔

جو بدلتا ہے وہ معاہدہ ہے، تصدیق نہیں۔ اگر حملہ آور پکڑے بغیر پیشکش بدل سکتا ہے، تو فریق اب بھی ہینڈ شیک مکمل کر سکتے ہیں اور ایک دوسرے کی تصدیق کر سکتے ہیں، مگر ان پیرامیٹرز کے ساتھ جو حملہ آور کو پسند ہیں۔ اسی لیے دلچسپ سوال یہ ہے کہ کیا گفت و شنید بذات خود سالمیت کے تحفظ میں ہے۔

گفت و شنید کو خود تصدیق کیوں درکار ہے

TLS 1.3 اس تحفظ کو واضح کرتا ہے۔ نئے ورژن کی پیشکش کرنے والا کلائنٹ خاموشی سے پیچھے ہٹے سرور کو پہچان سکتا ہے، کیونکہ سرور کی بے ترتیب قدر 1.2 یا اس سے کم پر بات چیت کرتے وقت ایک مقررہ نمونہ رکھتی ہے، اور کلائنٹ کو یہ دیکھ کر رکنا لازم ہے۔ پوری ٹرانسکرپٹ بھی آخری پیغامات سے ڈھکی ہے، اس لیے گفت و شنید میں کہیں بھی تبدیلی بعد میں ناکام ہوتی ہے، خاموشی سے گزرتی نہیں۔

پرانے پروٹوکول ورژنوں کی کہانیاں کمزور تھیں، اور اسی لیے فال بیک قواعد اہم ہیں۔ اسی کنفیگریشن میں TLS 1.0 اینڈ پوائنٹ ڈاؤن گریڈ حملہ نہیں؛ یہ ایک اجازت شدہ نتیجہ ہے جسے آپ نے خود اجازت دینا چنا۔ فرق یہ ہے کہ کمزور نتیجہ کسی محفوظ فیصلے سے آیا یا کسی غیر محفوظ راستے سے جسے کوئی بیچوان متاثر کر سکتا تھا۔ ایک بار ایسے کہنے پر زیادہ تر واقعات کنفیگریشن کے سوال میں بدل جاتے ہیں۔

IKEv2 مختلف رویہ رکھتا ہے مگر اسی خیال پر کھڑا ہے۔ تجویز اس تبادلے میں جاتی ہے جو بعد میں دونوں فریقوں کی تصدیق کرتا ہے، اس لیے الگورتھم دوبارہ لکھنے والا درمیانی بکس تصدیق کو ہدایت دینے کے بجائے توڑ دیتا ہے۔ OpenVPN کا کنٹرول چینل TLS سے اپنی گفت و شنید کی حفاظت کرتا ہے اور پھر اسی چینل سے ڈیٹا چینل کے سائفر طے کرتا ہے، اسی لیے کنٹرول چینل کی لاگ سطر دلچسپ ہے۔

کنفیگر شدہ مطابقت حملہ نہیں ہے

منتظم دستاویزی کلائنٹ کی حمایت کے لیے جان بوجھ کر پرانے اختیارات کی اجازت دے سکتا ہے، اور وہ فیصلہ کنفیگریشن میں نظر آتا ہے۔ حملہ آور وہ کنفیگریشن نہیں بنا سکتا؛ وہ صرف ایسے راستے سے فائدہ اٹھا سکتا ہے جو اسے پیشکش پر اثر ڈالنے دے۔

خطرناک مرمت وہ ہے جو فرق کا ثبوت ہٹا دے۔ ہر پرانے اختیار کو فعال کرنا، سرٹیفکیٹ کی تصدیق بند کرنا یا خرابی مٹانے کے لیے کوئی بھی سائفر قبول کرنا اس دائرے کو وسیع کرتا ہے جس پر اینڈ پوائنٹ راضی ہوگا، اور ان جانچوں کو ہٹا دیتا ہے جو کمزور نتیجے کی اطلاع دیتیں۔

اگر ایک پرانا اختیار رکھنا ہی ہو، تو کنفیگریشن تبصرے میں وجہ اور کلائنٹ لکھیں، پھر اختیار کو اسی پروفائل تک محدود کریں جسے اس کی ضرورت ہے۔ ایک سننے والے تک محدود مطابقت استثنا قابلِ آڈٹ ہے؛ عالمی طور پر لاگو کیا گیا محض کمزور ڈیفالٹ ہے جسے کسی کو یاد نہیں کہ اس نے چنا تھا۔

وجہ کا نام دینے سے پہلے ناکامی پڑھیں

کسی بھی تبدیلی سے پہلے درست خرابی کی سطر، کلائنٹ اور سرور ورژن اور وقت محفوظ رکھیں۔ پھر درجہ بندی کریں: کیا فریق تجویز پر متفق نہیں تھے، پیکٹ کا راستہ ناکام ہوا، یا ایک فریق نے وہ پیرامیٹر رد کیا جو پہلے قبول کرتا تھا؟

تجویز کا عدم مطابق عام طور پر قصوروار ورژن یا الگورتھم کا نام لیتا ہے اور ہر بار اسی مقام پر ناکام ہوتا ہے۔ روٹنگ یا MTU کا مسئلہ رک جاتا ہے یا وقت ختم ہو جاتا ہے، اور یہ اکثر نیٹ ورک کے مطابق بدلتا ہے۔ میعاد ختم شدہ سرٹیفکیٹ گفت و شنید کی نہیں، تصدیق کی خرابی دیتا ہے۔

ان میں سے کوئی بھی حملہ آور کا ثبوت نہیں ہے۔ پہلی ناکامی پر بدنیتی پر مبنی وجہ مان لینا ہی غلطی ہے، کیونکہ یہ اس قطعی بگ کو چھپا دیتا ہے جو کل پھر ناکام ہوگا۔

تصدیق کریں کہ واقعی کیا منتخب ہوا

کسی بھی اصلاح کے بعد، کنکشن آ گیا ماننے کے بجائے طے شدہ نتیجہ پڑھیں۔ تصدیق ہٹائے جانے کے باعث کامیاب ہونے والا کنکشن وہی نتیجہ ہے جس سے آپ بچنا چاہتے تھے۔ نیچے دیے گئے دو کمانڈ TLS کے سامنے اینڈ پوائنٹ کے لیے منتخب ورژن اور سائفر، اور OpenVPN سرور لاگ کی کنٹرول چینل سطر دکھاتے ہیں۔

openssl s_client -connect 198.51.100.30:443 -servername vpn.example.net -brief </dev/null
grep -iE 'Control Channel|Data Channel' /var/log/openvpn.log | tail -5

نتیجے کا موازنہ اُس کنفیگریشن سے کریں جو آپ کا ارادہ تھا، اب جو جڑ رہا ہے اس سے نہیں۔ اگر منتخب ورژن اجازت شدہ کم از کم سے پرانا ہے، تو پروفائل یا فال بیک فہرست دیکھنے کی جگہ ہے، اور جواب اُس فہرست کو درست کرنا ہے، حملہ اعلان کر کے ارد گرد سب کچھ دوبارہ بنانا نہیں۔

متعلقہ مضامین