OpenVPN TLS greška šifre: prvo usporedite obje strane
Greška «nema zajedničke šifre» pripada TLS kontrolnom kanalu, a ne data-ciphers. Prvo usporedite verzije, zatim popise skupova, pa dokažite pregovaranje.
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. Usporedba onoga što svaka strana dopušta, u pravom redu, pretvara nagađanje u dvije ili tri odluke: verzija, zatim popis skupova, zatim vjerodajnice.
Pogriješite li taj red, možete potrošiti sat dodajući AES naziv na popis koji nikada nije ni konzultiran.
Dva popisa šifri, a samo jedan kvari rukovanje
Kontrolni kanal pregovara TLS sesiju, a njegova se politika zapisuje pomoću tls-cipher za TLS 1.2 i tls-ciphersuites za TLS 1.3. Podatkovni kanal postavlja se odvojeno pomoću data-ciphers, gdje neslaganje daje vezu koja se uspostavi i zatim ne može propustiti promet. 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 redak. 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šeg popisa skupova. Razdvajanje tih kategorija je veći dio dijagnoze.
Usporedite verzije prije nego što usporedite 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, njezin prozor je ono što njezin firmware dopušta. Usporedba skupova ima smisla tek kada se prozori preklope.
Ti zapisi trebaju imenovati i stvarne binarne datoteke. Komandni openvpn na vašem prijenosniku nije nužno klijent koji obrađuje uvezeni profil.
Popisi 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 prihvaća 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 popis 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 koji popis namijenjen.
openvpn --show-tls ispisuje što 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 usporedite konfigurirane popise.
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 razinu pojedinosti poslužitelja, 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 prometom kroz tunel, jer ispravno rukovanje i neispravan podatkovni kanal različite su 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čet će od tog zapisa, a ne od niza šifre pronađenog u postu na forumu.