OpenVPN پیکٹ کی HMAC توثیق ناکام: کون سی پرت؟
پیکٹ ٹیگ کا عدمِ مطابقت اکاؤنٹ کے بارے میں فیصلہ نہیں ہے۔ چابیاں چھونے سے پہلے وہ پروفائل موازنہ کریں جو عمل نے لوڈ کیا، پھر کنٹرول اور ڈیٹا چینل کی ترتیبات۔
دو ناکامیاں جنہیں ایک ہی الفاظ میں رپورٹ کیا جاتا ہے اور ان میں تقریباً کچھ مشترک نہیں۔ ایک وہ پیکٹ ہے جس کا توثیقی ٹیگ تصدیق نہیں ہوا؛ دوسرا وہ شخص ہے جس کے اسناد مسترد ہوئے۔ پہلے کو دوسرے کی طرح سمجھیں تو آپ ایسے پاس ورڈ کی تلاش میں نکلیں گے جو کبھی مسئلہ ہی نہ تھا۔
پیغام ایک پرت کا نام لیتا ہے، اور مفید کام یہ ہے کہ کوئی بھی مواد بدلنے سے پہلے طے کریں کہ کون سی پرت ہے۔ امیدواروں کا ساتھ ساتھ موازنہ فرق دیکھنے کا تیز ترین طریقہ ہے۔
دو ناکامیاں جو ایک لفظ بانٹتی ہیں
پیکٹ توثیق کی غلطی ٹریفک کی کارروائی کے دوران پیدا ہوتی ہے: موصولہ پیکٹ پر ٹیگ یا ڈائجسٹ وصول کنندہ کے حساب سے مطابقت نہیں رکھتا تھا۔ اکاؤنٹ کی مستردگی لاگ اِن کے تبادلے کی تجزیے کے بعد ہوتی ہے، اور یہ پیکٹ کے بجائے صارف کا نام لیتی ہے۔ آنے والے پیکٹ میں HMAC نہ ملنے کے بارے میں تیسرا پیغام پھر الگ ہے، کیونکہ وہاں پیکٹ متوقع توثیقی عنصر کے بغیر ہی پہنچا تھا۔ مکمل لاگ سابقہ بتاتا ہے کہ تینوں میں سے آپ کے پاس کون سا ہے، اور غلطی کو ٹکٹ میں چسپاں کرتے وقت عموماً سب سے پہلے یہی سابقہ ہٹایا جاتا ہے۔
یہ فرق مرمت کو بدل دیتا ہے۔ ایک کے لیے چینل کی ہم آہنگ ترتیبات چاہیے، دوسرے کے لیے اکاؤنٹ کی حالت، اور تیسرے کے لیے ایسا پروفائل جو اُس سننے والے سے مطابقت نہ رکھتا ہو جہاں تک یہ پہنچا۔
موازنہ کریں کہ چلتے عمل نے درحقیقت کیا لوڈ کیا
ڈسک پر موجود درست فائل کسی ایسے عمل کے بارے میں کچھ ثابت نہیں کرتی جو اس کی تدوین سے پہلے شروع ہوا تھا۔ منتخب پروفائل، جس اینڈ پوائنٹ سے رابطہ ہوا، اور تبدیلی کے بعد سروس دوبارہ لوڈ ہوئی یا نہیں، یہ سب جانچیں۔ یہ بھی تصدیق کریں کہ اینڈ پوائنٹ اسی پروفائل کا ہے، کیونکہ جہاں پرانی فائل کچھ اور توقع کرتی ہے وہاں کوئی دوسرا نمونہ یا دوسری سروس سن رہی ہو سکتی ہے۔
اسی ماخذ سے معاون پروفائل کو دوبارہ برآمد کرنا ایک سستا موازنہ ہے، کیونکہ یہ اُس بات میں فرق ختم کرتا ہے جو آپ سمجھتے ہیں ترتیب دی گئی ہے اور جو کلائنٹ واقعی بھیجتا ہے۔ نئے کلیدی مواد کی تخلیق کہیں بڑا قدم ہے، اور یہ صرف اُس وقت مدد دیتی ہے جب دونوں سرے اسے ساتھ اپنائیں۔ ایک طرف کو مقامی طور پر بدلنا وہی عدمِ مطابقت دوبارہ بنا دیتا ہے جسے آپ دور کرنے کی کوشش کر رہے تھے۔
کنٹرول چینل کا ڈیٹا چینل سے موازنہ کریں
دو میکانزم ایک کنکشن کے مختلف حصوں کی توثیق کرتے ہیں اور الگ الگ ترتیب دیے جاتے ہیں، جیسا کہ 2.6 اختیار کی حوالہ جاتی دستاویز بیان کرتی ہے۔ tls-auth کنٹرول چینل کے پیکٹوں میں HMAC شامل کرتا ہے اور سمت کا ایسا دلیل لیتا ہے جو دونوں سروں پر مخالف ہونا چاہیے، جبکہ tls-crypt اس کے بجائے مشترکہ کلید سے کنٹرول چینل کی حفاظت کرتا ہے۔ کوئی بھی ڈیٹا چینل کی اپنی سالمیت کی جانچ نہیں ہے۔ AEAD ڈیٹا سائفر کے ساتھ یہ جانچ سائفر کے اندر تعمیر شدہ ہوتی ہے، اس لیے الگ auth ڈائجسٹ اُس طرح استعمال نہیں ہوتا جیسے غیر AEAD سائفر کے ساتھ ہوتا ہے۔
یعنی غیر AEAD فعال تعیناتی سے نقل شدہ auth سطر AEAD تعیناتی میں غیر متعلق ہو سکتی ہے، اور اگر tls-auth کلید یا اس کی سمت غلط ہو تو AEAD تعیناتی بھی کنٹرول چینل پر ناکام ہو سکتی ہے۔ ہر ترتیب کا موازنہ یاد رکھی گئی تشکیل سے نہیں بلکہ دوسرے سرے سے کریں۔
مرمت کا موازنہ اُس خصوصیت سے کریں جو آپ ترک کرتے ہیں
پیکٹ توثیق بند کرنا انتباہ کو خاموش کرتا ہے اور وہ جانچ ہٹا دیتا ہے جس نے عدمِ مطابقت پائی، جو پروفائل کی مرمت کے برابر نہیں۔ پوچھیں کہ کون سی خصوصیت ترک کر رہے ہیں اور کیا اس کے بغیر ڈیزائن اب بھی قائم رہتا ہے۔
کچھ بھی بدلنے سے پہلے دونوں سروں پر پہلا متعلقہ واقعہ پڑھیں، پھر صرف اُس عدمِ مطابقت کو بدلیں جس کا وہ نام لیتا ہے۔
اگر اگلی کوشش سرٹیفکیٹ یا لاگ اِن کی غلطی تک پہنچتی ہے تو یہ بہتری ہے، تنزلی نہیں: پیکٹ کی پرت اب متفق ہے اور کنکشن آگے بڑھ گیا ہے۔ وہ ترتیبات لکھ لیں جنہوں نے یہ تبدیلی پیدا کی، تاکہ اگلا شخص معمے کی بجائے وضاحت ورثے میں پائے۔