Greška «nema zajedničke šifre» zvuči kao jedna postavka koju treba promeniti, a postavka koju većina ljudi menja 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 dve ili tri odluke: verzija, zatim lista skupova, zatim akreditivi.

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

Dve 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, gde neslaganje daje vezu koja se uspostavi i zatim ne može propustiti saobraćaj. Obe 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 celu poruku, a ne prvi red. Neslaganje verzija, nedostatak skupa, algoritam potpisa sertifikata koji strana odbija i neuspeh provere 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 deo dijagnoze.

Uporedite verzije pre nego što uporedite skupove

Strana ograničena na TLS 1.2 i strana koja zahteva 1.3 ne dele nijednu verziju i nikakav niz šifre to ne premošćuje. Zapišite tls-version-min i tls-version-max na obe strane, ili zadate vrednosti korišćenih 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 meš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 namenjena.

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šte ne može ponuditi skup, zatim uporedite konfigurisane liste.

Dokažite pregovaranje na novoj vezi

Uspeš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 umesto da pretpostavite da je prva ponuđena vrednost pobedila. Zatim odvojeno potvrdite podatkovni kanal saobraćajem kroz tunel, jer ispravno rukovanje i neispravan podatkovni kanal su različite popravke. Ponovite nakon svake promene konfiguracije, jer zastareo 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 provere ili uključivanje svakog nasleđenog skupa uklanja odbijanje bez ispunjavanja bezbednosnog zahteva koji ga je proizveo.

Zapišite pregovaranu verziju, skup i podatkovnu šifru u tiket za promenu. Sledeć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