tls-auth და tls-crypt: რას იცავს თითოეული OpenVPN-ში
tls-auth აწერს ხელს საკონტროლო პაკეტებს, tls-crypt ასევე მალავს მათ. არც ერთი არ ცვლის სერტიფიკატების შემოწმებას ან მონაცემთა შიფრს, და შეუთანხმებლობა სიჩუმეს ჰგავს.
ორივე პარამეტრი იყენებს საერთო გასაღების ფაილს და ორივე ართულებს ხელის ჩამორთმევის ტრაფიკის გაყალბებას, ამიტომ მათ ერთი და იმავე ფუნქციის ორ სახელად განიხილავენ. ეს ასე არ არის. ერთი აწერს ხელს საკონტროლო პაკეტებს, მეორე მათ შიფრავსაც, და არც ერთს არაფერი აქვს საერთო იმ შიფრთან, რომელიც თქვენს მონაცემებს იცავს.
ეს განსხვავება მნიშვნელოვანია, როცა პროფილი ვერ უკავშირდება, როცა უსაფრთხოების შემოწმება კითხულობს, რისგან იცავს გასაღები, და როცა ვინმე ფიქრობს, რომ დამატებითი ფაილი გვირაბს რაღაც განუსაზღვრელი გზით შიფრავს.
რისგან იცავს სინამდვილეში საერთო გასაღები
ამ პარამეტრების მიერ გამოყენებული გასაღები საკონტროლო არხს ეკუთვნის: იმ გაცვლას, რომელიც პარამეტრებზე მოლაპარაკებას აწარმოებს, იდენტობებს ამტკიცებს და მონაცემთა გასაღებებს გამოიმუშავებს. ეს არის წინასწარ გაზიარებული საიდუმლო, რომელიც ორივე მხარეს უნდა ჰქონდეს, სანამ ხელის ჩამორთმევა გაგრძელდება. რადგან ის იდენტობის შემოწმებამდე დგას, არასწორი გასაღები საუბარს უფრო ადრე წყვეტს, ვიდრე ამას არასწორი პაროლი გააკეთებდა. ეს თანმიმდევრობა ხსნის, თუ რატომ არის წარუმატებლობის რეჟიმი ასეთი ჩუმი.
tls-auth იყენებს ამ საიდუმლოს HMAC-ის გამოსათვლელად საკონტროლო პაკეტებზე. პაკეტი მოქმედი ხელმოწერის გარეშე უგულებელყოფილია უფრო ძვირ TLS დამუშავებამდე მისვლამდე, ამიტომ ამ პარამეტრს ხშირად პირველ ფილტრად აღწერენ და არა TLS-ის შემცვლელად.
tls-crypt უფრო შორს მიდის და დაცულ საკონტროლო ტრაფიკს ავთენტიფიკაციის გარდა შიფრავსაც. სერტიფიკატების შიგთავსი, შეთანხმებული შიფრების სახელები და ხელის ჩამორთმევის სხვა დეტალები ქსელში აღარ ჩანს, და გასაღების არმქონე დამკვირვებელს იმის დანახვაც კი არ შეუძლია, რომელი TLS ვერსია სინჯება. იმ განლაგებისთვის, რომელსაც ეშინია თავისი VPN-ის ანაბეჭდის გამჟღავნება, ეს თვისებაა არჩევის მთავარი მიზეზი. ის მაინც ჯგუფური საიდუმლოა და არა თითოეული მომხმარებლის სერტიფიკატი.
არც ერთი მექანიზმი იდენტობებს არ გასცემს. საერთო გასაღები ჯგუფური საიდუმლოა და ყველას, ვისაც ის აქვს, შეუძლია შემოწმების ეს ფენა დააკმაყოფილოს.
სად განსხვავდება ორი პარამეტრი
დაკვირვებადი განსხვავება ის არის, რასაც დამკვირვებელი ხედავს. tls-auth-ით ხელის ჩამორთმევა ჩანს, მაგრამ გასაღების გარეშე შემოწმებადი არ არის. tls-crypt-ით ხელის ჩამორთმევა გაუმჭვირვალეა ყველასთვის, ვისაც გასაღები არ აქვს.
კონფიგურაციაც განსხვავდება. tls-auth გამოიყენება მიმართულების მნიშვნელობასთან, ასე რომ ერთი მხარე გასაღების მასალის ერთ ნახევარს იყენებს, მეორე კი მეორე ნახევარს. tls-crypt ერთ გასაღებს იყენებს ორივე მიმართულებით, ამიტომ მიმართულების ინსტრუქცია მისი აგებულების ნაწილი არ არის.
თანამედროვე გამოშვებებში ორი პარამეტრი ერთმანეთს გამორიცხავს. პროფილს ერთი უნდა ჰქონდეს, და არა ორივე, და სერვერმა და კლიენტმა უნდა შეთანხმდნენ, რომელი, იდენტური გასაღების მასალით. ძველი ინსტრუქციის ახლის გვერდით შენახვა გავრცელებული მიგრაციის ნარჩენია. წაშალეთ არააქტიური, რომ შემდეგმა მკითხველმა იცოდეს, რომელი ფენაა რეალურად ძალაში.
უფრო ახალი ვარიანტი, tls-crypt-v2, ყოველ კლიენტს მის საკუთარ შეფუთულ გასაღებზე აბამს, რათა ერთი კლიენტის გაუქმება ჯგუფური გასაღების ხელახლა გაცემას არ მოითხოვდეს. ღირს ამის ცოდნა, მაგრამ ეს სხვა პარამეტრია და აქ მოცემული ორიდან არც ერთის სინონიმი არ არის.
რატომ ჰგავს შეუთანხმებლობა იმას, თითქოს არაფერი ხდება
როცა საერთო მასალა არ ემთხვევა, მეორე მხარე პაკეტებს აგდებს და გამომგზავნს არ ეუბნება, რატომ. წასაკითხი ავთენტიფიკაციის შეცდომა არ არსებობს, რადგან პაკეტი არასოდეს მიუღწევია იმ ფენას, რომელიც მას შექმნიდა.
კლიენტი ხელახლა ცდილობს, სერვერი არაფერს ამბობს, და სიმპტომი ქსელის პრობლემას ჰგავს. შემდეგ ადამიანები სერვისს ხელახლა უშვებენ, ანგარიშის პაროლს ხელახლა აკრეფენ, ან «გასატესტად» იღებენ დაცვის ინსტრუქციას, რაც დიაგნოსტიკის ნაცვლად განლაგებას ცვლის.
სერვერის ჟურნალში წაიკითხეთ პირველი საჩივარი პაკეტის დონეზე და არა ხელახალი ცდის ბოლო ხაზი. დაადასტურეთ, რომ ორივე მხარეს ერთი და იგივე პარამეტრი აქვს იდენტური გასაღების მასალით და რომ გასაღების ფაილი მხოლოდ ერთ მხარეს არ აღდგა.
ინსტრუქციის წაშლა უსაფრთხო შეკეთება არ არის. ის თითოეული კლიენტისთვის დაცვის ფენას თიშავს, და ამის შემდეგ მომუშავე გვირაბი მხოლოდ იმას ამტკიცებს, რომ სწორედ ის ფენა იყო შეუთანხმებლობა.
რა უნდა დაკონფიგურირდეს ჯერ კიდევ ცალკე
ეს პარამეტრები არ ამოწმებს, ვინ არის მეორე მხარე. სერტიფიკატების ვალიდაცია, ნდობის საყრდენი და მოსალოდნელი სერვერის სახელი ცალკე მოთხოვნებად რჩება, და არც ერთი მათგანი არ ხდება არასავალდებულო საერთო გასაღების არსებობის გამო.
ისინი მონაცემთა შიფრსაც არ ირჩევენ. ეს ცალკე მოლაპარაკებაა, რომელსაც ორივე მხარის მონაცემთა არხის პარამეტრები მართავს, და tls-crypt-ით დაცულ გვირაბს მაინც შეუძლია გამოიყენოს შიფრი, რომელიც თქვენ არ გიფიქრიათ.
და ბოლოს, თავად საერთო გასაღები მოვლას მოითხოვს. მოეპყარით მას როგორც საიდუმლოს, გაავრცელეთ დამტკიცებული არხით და შეცვალეთ, როცა წავა ვინმე, ვისაც ის ჰქონდა. რადგან ის საერთოა, მისი გამჟღავნება ყოველი მისი მომხმარებელი ბოლო წერტილის გამჟღავნებაა.