HTTPS Basic تصدیق بمقابلہ IPsec: ہر ایک کس چیز کی حفاظت کرتا ہے
ایک درخواست کو براؤزر سے ایپ تک لے کر چلیں: TLS مرحلہ، 401، اور ٹنل مختلف تعلقات کی حفاظت کرتے ہیں اور مختلف ثبوتوں کے ساتھ ناکام ہوتے ہیں۔
ڈویلپر ٹولز کھولیں، اندرونی ایپ لوڈ کریں، اور دیکھیں کہ صفحہ رینڈر ہونے سے پہلے ایک درخواست چار چوکیوں سے کیسے گزرتی ہے۔ پہلے نام حل ہوتا ہے، پھر TCP کنکشن کھلتا ہے، پھر TLS ہینڈ شیک طے کرتا ہے کہ سرور کون ہے، اور اسی کے بعد ایپ پوچھتی ہے کہ آپ کون ہیں۔ انہیں الگ واقعات سمجھیں، کیونکہ ہر ایک مختلف ثبوت کے ساتھ ناکام ہوتا ہے اور ہر ایک مختلف ٹیم کی ذمہ داری ہے۔ واقعات میں سب سے زیادہ الجھن یہ ہوتی ہے کہ 401 کو ٹنل کا مسئلہ سمجھا جائے، یا ٹنل کے مسئلے کو غلط پاس ورڈ سمجھا جائے۔
پہلی چوکی: کیا یہ وہی سرور ہے جس سے آپ بات کرنا چاہتے تھے
TLS ہینڈ شیک کوئی بھی اسناد بھیجنے سے پہلے اس سوال کا جواب دیتا ہے۔ آپ کا کلائنٹ سرٹیفکیٹ چین کو ٹرسٹ اسٹور کے خلاف جانچتا ہے اور دیکھتا ہے کہ سرٹیفکیٹ میں دیا گیا نام اسی ہوسٹ سے میل کھاتا ہے جو آپ نے لکھا۔ اگر یہ ناکام ہو تو براؤزر سرٹیفکیٹ کی خرابی دکھاتا ہے اور Authorization ہیڈر بالکل نہیں بھیجتا۔ اس لیے پاس ورڈ کا مطالبہ اس بات کا ثبوت نہیں کہ سرور اصل ہے؛ یہ ثبوت ہے کہ ایپ نے جواب دیا۔
یہاں پہلی حد سامنے آتی ہے۔ TLS کنکشن کو اس کے ختم ہونے کے مقام تک محفوظ رکھتا ہے۔ اگر لوڈ بیلنسر TLS ختم کرے اور ایپ کو سادہ HTTP بھیجے تو خفیہ کردہ حصہ بیلنسر پر ختم ہو جاتا ہے، اور اسناد صرف اسی پہلے مرحلے میں محفوظ رہتی ہیں۔
دوسری چوکی: 401 کے تبادلے میں اصل میں کیا سفر کرتا ہے
HTTP Basic تصدیق صارف کی شناخت اور پاس ورڈ کو ایک ہیڈر میں بھیجتی ہے، جو RFC 7617 میں بیان کردہ طریقے کے مطابق Base64 سے خفیہ کیا جاتا ہے۔ Authorization: Basic dXNlcjpwYXNz اس کی شکل ہے؛ خفیہ کاری کو کوئی بھی الٹا سکتا ہے جو درخواست پڑھ سکتا ہو، اس لیے ساری رازداری نیچے کی ترسیل سے آتی ہے۔ curl -v دونوں WWW-Authenticate: Basic چیلنج اور وہ ہیڈر دکھاتا ہے جو آپ واپس بھیجتے ہیں۔
وہ ہیڈر ایپ کو بتاتا ہے کہ کون پوچھ رہا ہے۔ یہ نیٹ ورک کو نہیں بتاتا کہ کون جڑ سکتا ہے، اور خود کچھ خفیہ نہیں کرتا۔ ایپ کو پھر بھی اسناد کو کسی اسٹور کے خلاف جانچنا اور فیصلہ کرنا ہوتا ہے کہ وہ اکاؤنٹ کیا کر سکتا ہے، اور یہی اجازت دینا ہے جو تصدیق کے بعد ہوتا ہے۔
اس راستے میں IPsec ٹنل کہاں بیٹھتا ہے
اب براؤزر سے باہر کی طرف چلیں۔ گیٹ وے سے گیٹ وے تک IPsec ٹنل دو سیکیورٹی گیٹ ویز کے درمیان منتخب ٹریفک کی حفاظت کرتا ہے، آپ کے لیپ ٹاپ اور ایپ کے عمل کے درمیان نہیں۔ ٹنل موڈ ESP اصل پیکٹ کو لپیٹتا ہے، گیٹ وے اسے خفیہ اور تصدیق شدہ کرتے ہیں، اور اندرونی پتے محفوظ رہتے ہیں تاکہ دوسرا فریق درخواست کو ایپ تک پہنچا سکے۔
انتخاب وہ حصہ ہے جو لوگوں کو ٹھوکر دیتا ہے۔ پالیسی پر مبنی ٹنل ٹریفک سلیکٹر استعمال کرتے ہیں، جو اکثر رسائی کنٹرول فہرستوں کی صورت میں لکھے جاتے ہیں، تاکہ طے ہو کہ کون سے پیکٹ ٹنل میں داخل ہوں۔ راستے پر مبنی ٹنل اس کے بجائے مجازی انٹرفیس اور روٹنگ ٹیبل استعمال کرتے ہیں۔ Linux پر ip xfrm policy سلیکٹر دکھاتا ہے اور ip xfrm state قائم شدہ سیکیورٹی تعلقات دکھاتا ہے؛ فائر وال آلے پر اس کا متبادل ٹنل کی SA ٹیبل اور ایک پیکٹ ٹریسر ہے۔
نتیجہ صاف الفاظ میں کہنا چاہیے۔ ایک پیکٹ مکمل طور پر صحت مند ٹنل کے اندر بیٹھ کر بھی ایسی HTTPS درخواست لے جا سکتا ہے جسے ایپ مسترد کر دیتی ہے، اور درست اسناد ایسی راہ سے بھی پہنچ سکتی ہیں جہاں کوئی ٹنل نہ ہو اگر روٹنگ اجازت دے۔
خرابی کو اسی پرت میں پڑھیں جس نے اس کی اطلاع دی
401 کا مطلب ہے کہ ایپ نے اسناد قبول نہیں کیں۔ 403 کا مطلب ہے کہ اس نے شناخت قبول کی اور عمل سے انکار کیا۔ TLS کی خرابی کا مطلب ہے کہ کلائنٹ نے سرور کو قبول نہیں کیا۔ راستہ نہ ہونا یا پالیسی کا میل نہ کھانا مطلب ہے کہ پیکٹ کبھی دور کے گیٹ وے تک نہیں پہنچا۔ چار مختلف ناکامیاں، چار مختلف ذمہ دار، اور ان میں سے کوئی بھی لاگ ان فارم کو گھور کر تشخیص نہیں ہوتی۔
ہر پرت جو ثبوت پیدا کرتی ہے اسے استعمال کریں: حیثیت اور ہیڈر کے لیے براؤزر کا نیٹ ورک پینل، سرٹیفکیٹ چین کے لیے openssl s_client -connect host:443، ٹنل ٹریفک کے لیے گیٹ وے کے SA کاؤنٹر اور لاگ، اور اکاؤنٹ کے فیصلے کے لیے ایپ کا لاگ۔ جب دو پرتیں بیک وقت خرابی کی اطلاع دیں تو پہلے نچلی پرت درست کریں، کیونکہ مردہ ٹنل تصدیق کی ناکامی کو آسانی سے چھپا سکتا ہے اور اس کے برعکس بھی۔
ایک سروس کا نقشہ شروع سے آخر تک بنائیں
جس سروس کی آپ خرابی تلاش کر رہے ہیں اس کے لیے پانچ سطریں لکھیں: ٹنل کون سے فریق جوڑتا ہے، سلیکٹر کون سے سب نیٹ اور پورٹ اجازت دیتے ہیں، TLS کہاں ختم ہوتا ہے اور سرٹیفکیٹ کون سی شناخت کا دعویٰ کرتا ہے، کون سا ایپ اکاؤنٹ اور کردار استعمال ہوتا ہے، اور ہر پرت کہاں لاگ کرتی ہے۔ انہیں ایک صفحے پر رکھیں، کیونکہ نقشے کا مقصد یہ دکھانا ہے کہ ایک پرت کی ذمہ داری کہاں ختم ہوتی ہے اور اگلی کہاں شروع ہوتی ہے۔
پھر ہر پرت کے لیے ایک منفی صورت آزمائیں۔ غلط پاس ورڈ استعمال کریں اور تصدیق کریں کہ آپ کو 401 ملتا ہے، ٹائم آؤٹ نہیں۔ سلیکٹر سے باہر کسی سب نیٹ سے جڑیں اور تصدیق کریں کہ پیکٹ ٹنل سے نہیں گزرتا۔ غلط نام کے لیے سرٹیفکیٹ پیش کریں اور تصدیق کریں کہ کلائنٹ اسناد بھیجنے سے پہلے انکار کرتا ہے۔ وہ تین نتائج آپ کو ڈیزائن کے بارے میں کسی بھی خانے والی تصویر سے زیادہ بتاتے ہیں۔
آخر میں، سوچ سمجھ کر فیصلہ کریں کہ ہر تعلق کو کون سی حفاظت چاہیے۔ TLS پر Basic تصدیق گیٹ وے کے پیچھے چھوٹے اندرونی ٹول کے لیے معقول ہے؛ یہ فی صارف اجازت یا TLS کے آخری مقام سے آگے ٹریفک کی حفاظت کا متبادل نہیں۔ ٹنل راستے کی حفاظت کرتا ہے، سرٹیفکیٹ مرحلے کی، اور 401 اکاؤنٹ کی، اور ان میں سے صرف آخری جانتا ہے کہ آپ کون ہیں۔