अधिकांश व्याख्याओं में 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"

संबंधित लेख