O eroare „nicio cifrare comună“ sună ca o singură setare de schimbat, iar setarea pe care majoritatea o schimbă este cea greșită. OpenVPN ține politici separate pentru canalul de control care face strângerea de mână TLS și pentru canalul de date care transportă pachete în tunel, iar eroarea o numește pe prima în timp ce oamenii îl editează pe al doilea. Compararea a ceea ce permite fiecare capăt, în ordinea corectă, transformă presupunerile în două sau trei decizii: versiune, apoi lista de suite, apoi acreditările.

Greșiți această ordine și puteți pierde o oră adăugând un nume AES într-o listă care nu a fost niciodată consultată.

Două liste de cifrare, și doar una strică strângerea de mână

Canalul de control negociază o sesiune TLS, iar politica lui se scrie cu tls-cipher pentru TLS 1.2 și tls-ciphersuites pentru TLS 1.3. Canalul de date se configurează separat cu data-ciphers, unde o nepotrivire produce o conexiune care se stabilește și apoi nu poate trece trafic. Ambele produc erori care menționează cifrări, de aceea sunt confundate. O strângere de mână care nu se termină niciodată indică canalul de control, în timp ce un tunel stabilit care pierde pachete indică canalul de date.

Citiți mesajul întreg, nu prima linie. O nepotrivire de versiune, o suită lipsă, un algoritm de semnătură a certificatului pe care capătul îl respinge și o verificare eșuată a numelui de gazdă se termină toate într-o eroare TLS, și doar unul dintre ele privește lista dumneavoastră de suite. Separarea acestor categorii este cea mai mare parte a diagnosticului.

Comparați versiunile înainte de a compara suitele

Un capăt limitat la TLS 1.2 și un capăt care cere 1.3 nu împart nicio versiune, iar niciun șir de cifrare nu acoperă asta. Notați tls-version-min și tls-version-max pe ambele părți, sau valorile implicite ale compilărilor folosite, deoarece politica OpenSSL a unei distribuții poate ridica pragul minim fără ca vreo opțiune OpenVPN să spună asta. Dacă o parte este un aparat sau un client terț, fereastra ei este ce permite firmware-ul. Doar când ferestrele se suprapun o comparație de suite înseamnă ceva.

Acele însemnări ar trebui să numească și binarele reale. Un openvpn din linia de comandă de pe laptopul dumneavoastră nu este neapărat clientul care tratează un profil importat.

Listele TLS 1.2 și TLS 1.3 nu se amestecă

Numele suitelor TLS 1.2 arată astfel: ECDHE-RSA-AES256-GCM-SHA384 și aparțin de tls-cipher, care acceptă un șir de cifrare OpenSSL. Suitele TLS 1.3 se numesc TLS_AES_256_GCM_SHA384 și aparțin de tls-ciphersuites; adăugarea uneia în șirul 1.2 nu configurează lista 1.3, iar parserul poate accepta textul fără să îl potrivească vreodată. Un filtru corect pentru o versiune nu spune nimic despre cealaltă. Notați pentru ce versiune este fiecare listă.

openvpn --show-tls afișează ce acceptă compilarea locală, iar aceasta este o inventariere, nu o promisiune: capătul îndepărtat poate să nu permită acele suite, iar profilul activ poate să nu le activeze. Folosiți-l pentru a exclude o compilare care nu poate oferi nicio suită, apoi comparați listele configurate.

Demonstrați negocierea pe o conexiune nouă

O strângere de mână reușită este singura dovadă care contează, iar ea trebuie să vină de la clientul real cu profilul real. Creșteți verbositatea serverului, conectați-vă o dată și citiți din jurnal versiunea de protocol și suita negociate, în loc să presupuneți că a câștigat prima valoare oferită. Apoi confirmați separat canalul de date cu trafic prin tunel, deoarece o strângere de mână funcțională și un canal de date care eșuează sunt reparații diferite. Repetați după orice modificare de configurare, deoarece un profil de client învechit este un fals negativ frecvent.

Dacă nu există o configurare comună aprobată, răspunsul este o actualizare sau un plan de migrare, nu o politică slăbită. Coborârea tls-version-min, dezactivarea verificării sau activarea tuturor suitelor vechi elimină respingerea fără a îndeplini cerința de securitate care a produs-o.

Notați în tichetul de modificare versiunea negociată, suita și cifrarea datelor. Următoarea persoană care întâlnește o eroare TLS va porni de la acea însemnare, nu de la un șir de cifrare găsit într-o postare pe forum.

Articole similare