საჯარო გასაღების გაცვლის მნიშვნელობის ხელის ჩამორთმევაში ტარება არ არის იგივე მოვლენა, რაც კლიენტის შესვლა. ერთი ამყარებს კრიპტოგრაფიულ მდგომარეობას კავშირისთვის; მეორე ამბობს, ვინ არის კლიენტი, და ეს ხდება მხოლოდ მაშინ, როცა სერვერი ითხოვს და გაცვლა ამას უჭერს მხარს. პირველის მეორედ მიჩნევა იწვევს არასწორ დასკვნებს იმის შესახებ, თუ რას მალავს VPN და რას არა. წაიკითხეთ შეტყობინებები, შემდეგ გადაწყვიტეთ, ოთხი თვისებიდან რომელი დააკვირდით სინამდვილეში.

ორი ობიექტი, რომლებიც ჩანაწერში ერთნაირად გამოიყურება

TLS 1.3-ის კლიენტს შეუძლია გასაღების გაცვლის მასალა პირველივე ფრენაზე მიაწოდოს ყოველგვარი სერტიფიკატის წარდგენის გარეშე. ეს წვლილი დიზაინით საჯაროა, რადგან სერვერს ის სჭირდება საერთო საიდუმლოს გამოსაყვანად. კლიენტის სერტიფიკატი სხვა შეტყობინებაა და იგზავნება მხოლოდ მას შემდეგ, რაც სერვერი მოითხოვს მას. ის ატარებს იდენტობას, რომელსაც სერვერი შემდეგ ამოწმებს, ხოლო ურთიერთ ავთენტიფიკაცია სერვერის გადაწყვეტილებაა და არა თვისება, რომელსაც შიფრის კრებული გულისხმობს. აპლიკაციის იდენტობა სრულიად მესამე რამაა: შესვლის ფორმა, მატარებელი ტოკენი, ქუქი. არც ერთი მათგანი არ ჩანს ხელის ჩამორთმევაში და ყველა მათგანი უძლებს ქსელის გზის ცვლილებას.

Object in playWhat it establishes
Key-exchange shareCryptographic state for this connection
Server certificateWhich server the client reached
Client certificateClient authentication, when requested
Application sessionAccount identity inside the application

ოთხი სტრიქონი დამოუკიდებელია. კავშირს შეიძლება ჰქონდეს პირველი და მეორე სტრიქონი, გამოტოვოს მესამე და მაინც ატაროს მეოთხე ქუქის სათაურში.

გადაწყვიტეთ, რისი დამტკიცება შეუძლია დაჭერილ ხელის ჩამორთმევას

მხოლოდ ხელის ჩამორთმევიდან დამკვირვებელი იგებს მოლაპარაკებულ ვერსიას, შიფრის კრებულს, სერვერის სერტიფიკატს და საჯარო გასაღების გაცვლის მნიშვნელობებს. ეს საკმარისია კლიენტის იმპლემენტაციის თითის ანაბეჭდის ასაღებად და იმის სანახავად, რომელ სერვერთან დამყარდა კავშირი. რასაც ის არ იძლევა, არის კავშირის გაშიფვრისთვის საჭირო კერძო მდგომარეობა, რომლის საიდუმლოება ეფემერულ გაცვლაზეა დამოკიდებული და არა საჯარო წილზე. ის ასევე არ იძლევა ანგარიშის იდენტობას, რომელიც თავიდანვე არ იყო ხელის ჩამორთმევაში.

ამიტომ პატიოსანი დასკვნა ვიწროა: ამ გაცვლაში კლიენტის სერტიფიკატი არ წარდგენილა. საქმე იმაში არ არის, რომ კლიენტმა დასაკავშირებელი არაფერი გაგზავნა, და რა თქმა უნდა არა იმაში, რომ სესიას არავითარი იდენტიფიკატორი არ მიუტანია.

წაიკითხეთ შეტყობინებები და არა შიფრის სახელი

ჰკითხეთ სერვერს, რას ითხოვს, ნაცვლად იმისა, რომ შიფრის კრებულიდან ივარაუდოთ. სერტიფიკატის მოთხოვნის შემცველი TLS 1.3 ხელის ჩამორთმევა ჩანს ჩანაწერში, და მისი არქონაც ისევე ჩანს.

openssl s_client -connect app.example.net:443 -tls1_3 -msg < /dev/null 2>&1 | grep -i -E 'key_share|CertificateRequest'

შემდეგ გაიმეორეთ კონფიგურირებული კლიენტის სერტიფიკატით და შეადარეთ. მეორე გაშვებამ უნდა აჩვენოს სერტიფიკატის გაგზავნა და მიღება; პირველმა არაფერი უნდა აჩვენოს, და სწორედ ეს არის კამათის საგანი კონკრეტული განსხვავება.

openssl s_client -connect app.example.net:443 -tls1_3 -cert client.pem -key client.key -quiet

თუ მხოლოდ ჩვეულებრივი დათვალიერების შემთხვევა გჭირდებათ, კლიენტის დეტალური გამოტანა საკმარისია პროტოკოლის ვერსიის, შემოწმების შედეგის და იმის სანახავად, იყო თუ არა შემოთავაზებული კლიენტის სერტიფიკატი. სერვერი, რომელიც არასდროს აგზავნის სერტიფიკატის მოთხოვნას, ვერ მიიღებდა მას.

სად ცვლის განახლება პასუხს

TLS 1.3-ის განახლება იყენებს საიდუმლო მდგომარეობასთან დაკავშირებულ ბილეთებს, ამიტომ შემდგომი კავშირი შეიძლება დასრულდეს სერტიფიკატების სრული გაცვლის გარეშე. ეს ამცირებს იმას, რასაც დამკვირვებელი ხედავს, და ცვლის იმას, რასაც ჩანაწერი ამტკიცებს. ის არ ქმნის იდენტობას იქ, სადაც არ იყო. განახლებული სესია კვლავ იმავე აპლიკაციის სესიას ეკუთვნის, და ამ სესიის ნებისმიერი ქუქი ან ტოკენი რჩება მნიშვნელოვან იდენტიფიკატორად.

ამიტომ კონფიდენციალურობის მიმოხილვა, რომელიც „კლიენტის სერტიფიკატი არ არის“-ზე ჩერდება, ხელიდან უშვებს საინტერესო ნაწილს. საკითხავია, რომელ მხარეს აქვს სტაბილური იდენტიფიკატორი და არა ის, თუ რომელი შეტყობინება აკლდა ერთ ხელის ჩამორთმევას.

ჩაწერეთ ოთხი თვისება და არა ერთი განაჩენი

ჩაწერეთ გასაღების შეთანხმება, სერვერის შემოწმება, კლიენტის ავთენტიფიკაცია და აპლიკაციის იდენტობა ოთხ ცალკე სტრიქონად, თითოეულის მტკიცებულებით. ეს ნუსხა უძლებს პროტოკოლის ვერსიის ცვლილებებს და კონფიდენციალურობის შესახებ არგუმენტს სხვისთვის შესამოწმებელს ხდის. შემდეგ დაამატეთ, რას აძლევს ქსელის გზა. VPN ცვლის წყაროს მისამართს, რომელსაც სერვისი ხედავს; ის არ შლის შესვლას, ქუქის ან მოწყობილობის თითის ანაბეჭდს, რაც აპლიკაციას უკვე აქვს.

ჩაწერეთ კავშირის მოლაპარაკებული ვერსია და სერტიფიკატის მოთხოვნის შედეგი ერთად, რადგან სწორედ ეს წყვილი სჭირდება მიმომხილველს თქვენი დასკვნის გასამეორებლად საკუთარი ჩანაწერის გარეშე.

დაკავშირებული სტატიები