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