زیادہ تر وضاحتوں میں SSTP کے بارے میں دو حقائق مل کر ایک ہو جاتے ہیں، اور یہی ملاپ کیپچرز کو الجھا ہوا بناتا ہے۔ ایپلیکیشن کا پیکٹ محفوظ چینل کے اندر زندہ رہتا ہے، اور اس چینل کو لے جانے والا TCP کنکشن پورے سفر میں اپنے پتے برقرار رکھتا ہے۔ تار پر ایک حامل اور اس کا بوجھ گزرتا ہے، دونوں میں سے کسی کا متبادل کبھی نہیں۔ اسٹیک کو باہر سے اندر تک چلیں اور ہر اس حد کو لیبل کریں جسے عبور کرتے ہیں۔

بیرونی حامل سے شروع کریں

تار پر پہلی چیز پورٹ 443 پر ایک عام TCP کنکشن ہے، حقیقی پتوں کے ساتھ جنہیں روٹر آگے بھیجتے ہیں۔ یہی کنکشن نیٹ ورک پتے کی ترجمانی سے بچتا ہے اور یہی وہ چیز ہے جو رسائی فراہم کرنے والا گن سکتا ہے۔ پے لوڈ کی حفاظت حامل کو نہیں ہٹاتی، اور یہ حجم یا وقت بھی نہیں چھپاتی۔

اس نقطے کے بعد سب کچھ روٹ ہونے کے بجائے لے جایا جاتا ہے۔ اندرونی تبادلہ ناکام ہونے پر بھی حامل کام کرتا رہتا ہے۔

انکیپسولیشن کے اندر کی طرف چلیں

محفوظ چینل کے اندر SSTP کنٹرول تبادلہ بیٹھا ہے، پھر PPP سیشن، پھر وہ نیٹ ورک پیکٹ جسے گاہک پہنچانا چاہتا ہے۔ ہر تہہ کی اپنی بات چیت، اپنے غلطی کے پیغامات اور اپنی حالت کی مشین ہے۔ اسی لیے کوئی خرابی ایک زاویے سے TLS کی خرابی اور دوسرے سے PPP کی خرابی لگ سکتی ہے۔ تہوں کو ترتیب سے پڑھنا بتاتا ہے کہ کون سی حالت کی مشین رکی۔

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

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

outer IP header
  TCP to port 443
    TLS record layer
      SSTP control and data packets
        PPP frames
          inner IP packet
            application transport and payload

کیپچر پڑھنے سے پہلے مشاہدہ کرنے والے کو لیبل کریں

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

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

وہ جانچیں رکھیں جو خاکہ ثابت نہیں کر سکتا

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

انہیں خاکے سے اندازہ لگانے کے بجائے ایسے کلائنٹ سے جانچیں جو بتاتا ہے کہ اس نے کن باتوں پر بات چیت کی۔ TLS ہینڈ شیک سے شروع کریں، پھر SSTP تبادلہ، پھر PPP، اور غلطی بتانے والے پہلے مرحلے پر رکیں۔ پہلا حکم زنجیر اور طے شدہ ورژن چھاپتا ہے، اور دوسرا کیپچر میں موجود ہینڈ شیک کی فہرست دیتا ہے۔

openssl s_client -connect vpn.corp.internal:443 -servername vpn.corp.internal
tshark -r sstp.pcap -Y "tls.handshake.type == 1"

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