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"