Greška «nema zajedničke šifre» zvuči kao jedna postavka koju treba promijeniti, a postavka koju većina ljudi mijenja je pogrešna. OpenVPN drži odvojene politike za kontrolni kanal koji obavlja TLS rukovanje i za podatkovni kanal koji prenosi pakete unutar tunela, a greška imenuje prvi dok ljudi uređuju drugi. Poređenje onoga što svaka strana dopušta, u pravom redu, pretvara nagađanje u dvije ili tri odluke: verzija, zatim lista skupova, zatim vjerodajnice.

Pogriješite li taj red, možete potrošiti sat dodajući AES naziv na listu koja nikada nije ni konsultovana.

Dvije liste šifri, a samo jedna kvari rukovanje

Kontrolni kanal pregovara TLS sesiju, a njegova politika se zapisuje pomoću tls-cipher za TLS 1.2 i tls-ciphersuites za TLS 1.3. Podatkovni kanal se postavlja odvojeno pomoću data-ciphers, gdje neslaganje daje vezu koja se uspostavi i zatim ne može propustiti saobraćaj. Obje daju greške koje spominju šifre, zato se brkaju. Rukovanje koje se nikada ne završi upućuje na kontrolni kanal, dok uspostavljeni tunel koji gubi pakete upućuje na podatkovni kanal.

Pročitajte cijelu poruku, a ne prvi red. Neslaganje verzija, nedostatak skupa, algoritam potpisa certifikata koji strana odbija i neuspjeh provjere imena hosta svi završavaju TLS greškom, a samo jedan od njih tiče se vaše liste skupova. Razdvajanje tih kategorija je veći dio dijagnoze.

Uporedite verzije prije nego što uporedite skupove

Strana ograničena na TLS 1.2 i strana koja zahtijeva 1.3 ne dijele nijednu verziju i nikakav niz šifre to ne premošćuje. Zapišite tls-version-min i tls-version-max na obje strane, ili zadane vrijednosti korištenih gradnji, jer OpenSSL politika distribucije može podići minimum bez da to ijedna OpenVPN opcija kaže. Ako je jedna strana uređaj ili klijent treće strane, njen prozor je ono što njen firmver dopušta. Poređenje skupova ima smisla tek kada se prozori preklope.

Ti zapisi treba da imenuju i stvarne binarne datoteke. Komandni openvpn na vašem laptopu nije nužno klijent koji obrađuje uvezeni profil.

Liste za TLS 1.2 i TLS 1.3 se ne miješaju

Nazivi skupova za TLS 1.2 izgledaju kao ECDHE-RSA-AES256-GCM-SHA384 i pripadaju u tls-cipher, koji prihvata OpenSSL niz šifre. Skupovi za TLS 1.3 nazivaju se kao TLS_AES_256_GCM_SHA384 i pripadaju u tls-ciphersuites; dodavanje jednog u niz za 1.2 ne postavlja listu za 1.3, a parser može prihvatiti tekst bez da ga ikada upari. Filter koji je ispravan za jednu verziju ne kaže ništa o drugoj. Zapišite za koju je verziju koja lista namijenjena.

openvpn --show-tls ispisuje šta lokalna gradnja podržava, i to je inventar, a ne obećanje: udaljena strana možda ne dopušta te skupove, a aktivni profil ih možda ne uključuje. Koristite ga da isključite gradnju koja uopće ne može ponuditi skup, zatim uporedite konfigurisane liste.

Dokažite pregovaranje na novoj vezi

Uspješno rukovanje jedini je dokaz koji se računa, i mora doći od stvarnog klijenta sa stvarnim profilom. Povećajte detaljnost servera, povežite se jednom i pročitajte pregovaranu verziju protokola i skup iz dnevnika umjesto da pretpostavite da je prva ponuđena vrijednost pobijedila. Zatim odvojeno potvrdite podatkovni kanal saobraćajem kroz tunel, jer ispravno rukovanje i neispravan podatkovni kanal su različite popravke. Ponovite nakon svake promjene konfiguracije, jer zastario klijentski profil čest je lažno negativan rezultat.

Ako ne postoji odobrena zajednička konfiguracija, odgovor je nadogradnja ili plan migracije, a ne oslabljena politika. Snižavanje tls-version-min, isključivanje provjere ili uključivanje svakog naslijeđenog skupa uklanja odbijanje bez ispunjavanja sigurnosnog zahtjeva koji ga je proizveo.

Zapišite pregovaranu verziju, skup i podatkovnu šifru u tiket za promjenu. Sljedeća osoba koja naiđe na TLS grešku počeće od tog zapisa, a ne od niza šifre pronađenog u postu na forumu.

Povezani članci