تنطبق حقيقتان على SSTP وتُدمجان في معظم الشروحات، وهذا الدمج هو ما يجعل عمليات الالتقاط محيّرة. تظل حزمة التطبيق محفوظة داخل القناة المحمية، ويحتفظ اتصال TCP الذي يحمل تلك القناة بعناوينه الخاصة طوال الوقت. ما ينتقل على السلك هو ناقل مع حمولته، وليس بديلاً عن أي منهما. امشِ في المكدس من الخارج نحو الداخل وسمِّ كل حدّ عند عبوره.

ابدأ من الناقل الخارجي

أول ما يظهر على السلك هو اتصال TCP عادي على المنفذ 443، بعناوين حقيقية تمرّرها الموجّهات. ذلك الاتصال هو ما ينجو من ترجمة عناوين الشبكة وما يمكن لمزوّد الوصول أن يعدّه. وحماية الحمولة لا تُزيل الناقل، و لا تُخفي الحجم ولا التوقيت.

كل شيء بعد هذه النقطة يُحمَل بدلاً من أن يُوجَّه. يستمر الناقل في العمل حتى عندما يفشل التبادل الداخلي.

اتبع التغليف نحو الداخل

داخل القناة المحمية يجلس تبادل تحكّم 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"

مقالات ذات صلة