อธิบายชั้นของ SSTP: แพ็กเก็ตชั้นในยังเผยอะไรอยู่
SSTP ห่อ PPP และแพ็กเก็ตชั้นในไว้ใน TLS แต่การเชื่อมต่อ TCP ชั้นนอกยังคงแสดงว่าใครคุยกับใคร ติดป้ายทุกชั้นก่อนอ่านแคปเจอร์
ในคำอธิบายส่วนใหญ่ ข้อเท็จจริงสองข้อเกี่ยวกับ 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"