OpenVPN-ის TLS შიფრის შეცდომა: ჯერ ორივე მხარე შეადარეთ
შეცდომა „საერთო შიფრი არ არის“ TLS-ის მართვის არხს ეკუთვნის და არა data-ciphers-ს. ჯერ ვერსიები, შემდეგ კომპლექტების სიები და ბოლოს მოლაპარაკება დაამტკიცეთ.
შეცდომა „საერთო შიფრი არ არის“ ერთი პარამეტრის შეცვლას ჰგავს, და პარამეტრი, რომელსაც ადამიანების უმეტესობა ცვლის, არასწორია. OpenVPN ცალკე პოლიტიკებს ინახავს TLS ხელის ჩამორთმევის შემსრულებელი მართვის არხისთვის და გვირაბის შიგნით პაკეტების გადამტანი მონაცემთა არხისთვის, და შეცდომა პირველს ასახელებს, მაშინ როცა ადამიანები მეორეს არედაქტირებენ. იმის შედარება, თუ რას უშვებს თითოეული მხარე, სწორი თანმიმდევრობით, გამოცნობას ორ ან სამ გადაწყვეტილებად აქცევს: ვერსია, შემდეგ კომპლექტების სია, შემდეგ სერტიფიკატები.
ამ თანმიმდევრობის შეცდომა საათს დაგაკარგვინებთ AES-ის სახელის დამატებაზე სიაში, რომელიც არასდროს შემოწმებულა.
ორი შიფრის სია, და მხოლოდ ერთი ამტვრევს ხელის ჩამორთმევას
მართვის არხი TLS სესიაზე მოლაპარაკებას აწარმოებს, და მისი პოლიტიკა იწერება tls-cipher-ით TLS 1.2-ისთვის და tls-ciphersuites-ით TLS 1.3-ისთვის. მონაცემთა არხი ცალკე კონფიგურირდება data-ciphers-ით, სადაც შეუთავსებლობა ქმნის კავშირს, რომელიც მყარდება და შემდეგ ვერ ატარებს ტრაფიკს. ორივე იძლევა შეცდომებს, რომლებიც შიფრებს ახსენებს, ამიტომ მათ ერთმანეთში ურევენ. ხელის ჩამორთმევა, რომელიც არასდროს სრულდება, მართვის არხზე მიუთითებს, ხოლო დამყარებული გვირაბი, რომელიც პაკეტებს კარგავს, მონაცემთა არხზე.
წაიკითხეთ მთელი შეტყობინება და არა პირველი ხაზი. ვერსიების შეუთავსებლობა, დაკარგული კომპლექტი, სერტიფიკატის ხელმოწერის ალგორითმი, რომელსაც მხარე უარყოფს, და ჰოსტის სახელის შემოწმების წარუმატებლობა ყველა TLS შეცდომით მთავრდება, და მათგან მხოლოდ ერთი ეხება თქვენს კომპლექტების სიას. ამ კატეგორიების გამიჯვნა დიაგნოზის უდიდესი ნაწილია.
ვერსიები შეადარეთ კომპლექტებამდე
TLS 1.2-მდე შეზღუდული მხარე და 1.3-ის მომთხოვნი მხარე საერთო ვერსიას არ იზიარებენ, და ვერც ერთი შიფრის სტრიქონი ხიდავს ამას. ჩაწერეთ tls-version-min და tls-version-max ორივე მხარეს, ან გამოყენებული ბილდების ნაგულისხმევი მნიშვნელობები, რადგან დისტრიბუციის OpenSSL პოლიტიკამ შეიძლება აწიოს ქვედა ზღვარი ისე, რომ OpenVPN-ის არც ერთი ოპცია ამას არ ამბობდეს. თუ ერთი მხარე მოწყობილობაა ან მესამე მხარის კლიენტი, მისი ფანჯარა ის არის, რასაც მისი firmware უშვებს. კომპლექტების შედარებას აზრი მხოლოდ მაშინ აქვს, როცა ფანჯრები ერთმანეთს ემთხვევა.
ამ ჩანაწერებმა უნდა დაასახელოს ნამდვილი ბინარებიც. openvpn ბრძანების სტრიქონიდან თქვენს ლეპტოპზე სულაც არ არის ის კლიენტი, რომელიც იმპორტირებულ პროფილს ემსახურება.
TLS 1.2-ის და TLS 1.3-ის სიები არ ირევა
TLS 1.2-ის კომპლექტების სახელები ასე გამოიყურება: ECDHE-RSA-AES256-GCM-SHA384 და განეკუთვნება tls-cipher-ს, რომელიც OpenSSL-ის შიფრის სტრიქონს იღებს. TLS 1.3-ის კომპლექტები ასე ჰქვია: TLS_AES_256_GCM_SHA384 და განეკუთვნება tls-ciphersuites-ს; ერთის დამატება 1.2 სტრიქონში არ აყენებს 1.3 სიას, და პარსერმა შეიძლება მიიღოს ტექსტი ისე, რომ არასდროს შეადაროს. ერთი ვერსიისთვის სწორი ფილტრი მეორეზე არაფერს ამბობს. ჩაწერეთ, რომელი სია რომელი ვერსიისთვისაა.
openvpn --show-tls ბეჭდავს, რასაც ლოკალური ბილდი მხარს უჭერს, და ეს ინვენტარია და არა დაპირება: შორეულმა მხარემ შეიძლება არ დაუშვას ეს კომპლექტები, და აქტიურმა პროფილმა შეიძლება არ ჩართოს ისინი. გამოიყენეთ იგი ბილდის გამოსარიცხად, რომელსაც საერთოდ არ შეუძლია კომპლექტის შეთავაზება, შემდეგ შეადარეთ კონფიგურირებული სიები.
დაამტკიცეთ მოლაპარაკება ახალ კავშირზე
წარმატებული ხელის ჩამორთმევა ერთადერთი მტკიცებულებაა, რომელიც ითვლება, და ის უნდა მოვიდეს ნამდვილი კლიენტისგან ნამდვილი პროფილით. გაზარდეთ სერვერის დეტალურობა, დაუკავშირდით ერთხელ და წაიკითხეთ ჟურნალიდან მოლაპარაკებული პროტოკოლის ვერსია და კომპლექტი, ნაცვლად იმისა, რომ ჩათვალოთ, თითქოს პირველმა შეთავაზებულმა მნიშვნელობამ იმარჯვა. შემდეგ ცალკე დაადასტურეთ მონაცემთა არხი გვირაბში გამავალი ტრაფიკით, რადგან მომუშავე ხელის ჩამორთმევა და წარუმატებელი მონაცემთა არხი სხვადასხვა შეკეთებაა. გაიმეორეთ ნებისმიერი კონფიგურაციის ცვლილების შემდეგ, რადგან მოძველებული კლიენტის პროფილი ხშირი ცრუ უარყოფითი შედეგია.
თუ დამტკიცებული საერთო კონფიგურაცია არ არსებობს, პასუხი განახლება ან მიგრაციის გეგმაა და არა შესუსტებული პოლიტიკა. tls-version-min-ის დაწევა, შემოწმების გამორთვა ან ყველა ძველი კომპლექტის ჩართვა აუქმებს უარყოფას იმ უსაფრთხოების მოთხოვნის დაკმაყოფილების გარეშე, რომელმაც ის წარმოქმნა.
ცვლილების ბილეთში ჩაწერეთ მოლაპარაკებული ვერსია, კომპლექტი და მონაცემთა შიფრი. შემდეგი ადამიანი, ვინც TLS შეცდომას წააწყდება, დაიწყებს ამ ჩანაწერიდან და არა ფორუმის პოსტში ნაპოვნი შიფრის სტრიქონიდან.