AES-256-GCM nerastas: kliento galimybė ar derybos?
Dvi OpenVPN klaidos atrodo vienodai: kompiliavimas be algoritmo ir šalys be bendro šifro. Perskaitykite --show-ciphers ir data-ciphers prieš keisdami profilį.
OpenVPN profilis, kuris veikia kitur, praneša, kad AES-256-GCM nerastas, arba kad šalys neturi bendro šifro, ir pirmas impulsas yra redaguoti profilį. Šie du pranešimai aprašo skirtingus gedimus. Vienas sako, kad vietinė programa neturi tokio algoritmo; kitas, kad abi pusės turi algoritmų, bet neturi bendro pasirinkimo. Profilio redagavimas neišsprendžia nė vieno, kol nežinote, kurį turite.
Perskaitykite tikslų klaidos tekstą ir programą, kuri ją sukūrė.
Nustatykite, kuri klaida jūsų
Pranešimas apie nerastą šifrą ateina iš parinkčių analizės vietiniame kompiuteryje, prieš siunčiant bet kokį paketą. Tai reiškia, kad vykdomasis failas priešais jus arba biblioteka, su kuria jis susietas, nesiūlo to algoritmo. Pranešimas apie bendro šifro nebuvimą ateina vėliau, derybų metu, ir reiškia, kad abi pusės palaiko šifrus, bet negali susitarti dėl vieno.
Skirtumas svarbus, nes vienas yra programinės įrangos versijos problema, o kitas – konfigūracijos. Pirmąjį išsprendžia versijos numeris. Antrąjį išsprendžia dviejų sąrašų palyginimas.
Vietinis galimybių trūkumas
Seni bendruomenės kompiliavimai yra ankstesni už šiuolaikinius numatytuosius nustatymus, o darbalaukio programa gali turėti savo variklį, besiskiriantį nuo šalia įdiegto komandinės eilutės paketo. Patikrinimus atlikite tame vykdomajame faile, kuris iš tikrųjų paleido ryšį, tada rinkitės palaikomą kompiliavimą, o ne mokykite seną programą naujo algoritmo.
openvpn --version openvpn --show-ciphers | grep -i gcm openvpn --show-tls | head -5
Jei AES-256-GCM tame sąraše nėra, jokia profilio eilutė jo nepridės. Sprendimas yra naujesnis klientas arba kitas kompiliavimas, o senesnės pusės apribojimai tampa atskiru dizaino klausimu.
OpenVPN 3 pagrindu sukurtuose klientuose variklis ir priimamos direktyvos skiriasi nuo bendruomenės 2.x linijos, todėl tas pats profilio tekstas gali nepavykti dėl priežasčių, nesusijusių su šifrų sąrašu.
Derybų trūkumas
Kai abi šalys išvardija algoritmą, lieka klausimas, kurį sąrašą siūlo kiekviena pusė. Bendruomenės OpenVPN pervadino derybų direktyvą: ncp-ciphers 2.4 tapo data-ciphers 2.5, o 2.6 senoji cipher eilutė daugiausia tarnauja suderinamumui ir atsarginiam variantui, o ne apibrėžia deramą rinkinį.
Todėl pakeitus tik seną cipher eilutę derybų sąrašas gali likti nepaliestas. Senoji eilutė vis dar svarbi atsarginiam variantui, ir tai atskiras darbas. Sumaišius abu gaunami pakeitimai, kurie nieko matomo nekeičia.
openvpn --version | head -2 grep -n -E '^(data-ciphers|ncp-ciphers|cipher|tls-cipher)' server.conf client.ovpn
Palyginkite abiejų galų sąrašus ir serverio atmetimo pranešimą. Jei sankirta tuščia, sąrašus suderinkite sąmoningai, o ne kopijuokite reikšmę iš straipsnio, rašyto kitai versijai. Per platus sąrašas tyliai silpnina kiekvieną ryšį. Per siauras sąrašas pašalina tą pusę, kurią norėjote išlaikyti.
Išlaikykite suderinamumą aiškų
Atsarginis variantas vienai senai pusei yra sprendimas su kaina: visas diegimas priima silpnesnę parinktį, kad vienas įrenginys galėtų prisijungti. Taip ir užrašykite, ir apribokite tai pusei, kuriai to reikia.
Rezultatą lemia dvi sąlygos. Jei klaida vietinė, pakeiskite kompiliavimą. Jei klaida derybų, suderinkite sąrašus abiejuose galuose ir užsirašykite, kurias versijas palaikote.
Tada praneškite tikslią klaidą pridėdami versijos ir galimybių išvestį. Ši pora atskiria trūkstamą algoritmą nuo nesutarimo ir sustabdo kitą spekuliacinių pakeitimų ratą prieš jam prasidedant.