OpenVPN tls-ciphersuites versus tls-version-min: bakoitzak zer behartzen duen
TLS 1.3 suite-zerrenda batek ez du protokoloaren bertsioa mugatzen, eta show-tls-ek tokiko euskaria baino ez du erakusten. Egiaztatu politika, suiteak eta negoziatutako emaitzak bereizita.
OpenVPN eta TLSri buruzko eztabaida gehienetan hiru gertaera desberdin lerro bakarrean biltzen dira: zure bezeroaren konpilazioak zer egin dezakeen, profileak zer onartzen duen eta saioak benetan zer negoziatu zuen. TLS 1.3 suite-zerrenda labur batek erdiko galderari erdizka baino ez dio erantzuten, eta ezer ez du esaten protokoloaren bertsioaren behe-mugaz. Irakurri beheko egiaztapenak hurrenez hurren eta gelditu betetzen ez den lehenengoan, ondorengo egiaztapen bakoitzak aurrekoak konponduta daudela suposatzen baitu.
Egiaztatu konpilazioa edozein zerrenda irakurri aurretik
Konfigurazio-direktiba batek ezin dio protokolo-euskarririk gehitu falta duen bitar-fitxategi bati. Hasi bertsio-bannerrarekin, konpilatutako kriptografia-liburutegiaren izena ematen baitu:
openvpn --version
OpenSSLrekin lotutako 2.6 konpilazioak tls-cipher eta tls-ciphersuites onartzen ditu. mbed TLSrekin egindako konpilazioak ez du TLS 1.3 suiterik hautatzeko aukerarik, eta 2.6 eskuliburuak tls-ciphersuites OpenSSL aukera gisa markatzen du. Zerbitzaria backend ezberdin batekin berrikusten bada, profil berak portaera alda dezake konfigurazioaren lerro bakarra ere aldatu gabe.
Hemen zauden bitartean, exekutatu openvpn --show-tls eta gorde irteera. Horixe da geroago alderatuko duzun inbentarioa, eta merkea da harrapatzea inork profilak editatzeari ekin aurretik.
Idatzi bannerra eta zerrenda aldaketaren tiket-ean, ez txat-leihoan. Bi pertsona sei aste barru bezero batek suite bat eskaini ahal izango ote duen eztabaidatzen dutenean, harrapatutako irteerak lerro bakarrean erabakitzen du.
Eduki bertsio-mugak zifratze-zerrendetatik bereizita
2.6 eskuliburuan hauek hiru kontrol dira, ez bat:
tls-cipherTLS 1.2 eta lehenagokoentzako zifratze-politika ezartzen du eta OpenSSLen zifratze-zerrendara pasatzen da;tls-ciphersuitesTLS 1.3 suiteak hautatzen ditu;tls-version-minetatls-version-maxkonexioak erabil ditzakeen protokolo-bertsioak mugatzen dituzte.
Beraz, arretaz moztutako TLS 1.3 suite-zerrendak ez du ezer frogatzen bertsio zahar bat oraindik onartzen den ala ez. Baldintza «TLS 1.3 soilik» bada, bertsioaren behe-mugak eramaten du, eta suite-zerrendak mugaren barruko aukerak baino ez ditu estutzen:
tls-version-min 1.3
tls-ciphersuites TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
Bikote horrek bi lan egiten ditu. Lerro bat ezabatzeak besteak uste duzuna baino gutxiago behartzen du, eta hori da egiaztapen oso hau harrapatzeko dagoen huts egitea.
Datu-kanala laugarren kontrola da. data-ciphers tuneleko zifratze simetrikoa negoziatzen du, eta haren emaitzak ez du ezer esaten kontrol-kanalaren TLS bertsioaz. Saioaren laburpenean AES-256-GCM ikusteak ez du TLS 1.3ren frogarik ematen inolako norabidetan.
Irakurri show-tls inbentario lokal gisa
--show-tls bitar hau lotuta dagoen kriptografia-liburutegiak onartzen dituen suiteak zerrendatzen ditu, lehentasun-hurrenez. Ez da gatewayaren txostena. Eskuliburuak dioen bezala, zerrenda liburutegi lokaletik dator, eta horrek esan nahi du OpenSSL 3.x duen eramangarri batek eta konpilazio zaharragoa duen bideratzaile batek zerrenda desberdinak inprimatuko dituztela zerbitzari berari hitz egiten dioten bitartean.
| Evidence | What it actually describes |
|---|---|
--show-tls output | Capabilities of this client build and its library |
| Profile directives | What this attempt is allowed to offer |
| Session log line | What this one negotiation selected |
Demagun bezero batek A, B eta C suiteak onartzen dituela eta saio batek B hautatzen duela. Horrek ez du ezer ezartzen zerbitzariak A edo C onartzen dituen, ezta B bere aukera onartu bakarra den ere. Eutsi hiru errenkadak bereizita, eta TLS hari nahasi gehienek bere kabuz konponduko dute.
Inbentarioa gordetzea merezi du oraindik. Saio batek huts egiten duenean, liburutegiaren zerrenda profilaren zerrendarekin alderatzeak esaten dizu bezeroak zerbitzariak nahi zuena eskaintzeko aukerarik ote zuen. Era berean erakusten du backend aldaketa batek isilpean TLS_CHACHA20_POLY1305_SHA256 kendu ote zuen bezero zaharragoek behar duten multzotik — erregresio mota hori erabiltzaile-kuku bat konektatu ezinik azaltzen da, beste inork ezer nabaritzen ez duen bitartean.
Galdetu gatewayari erantzun dezakeen zerbait
Zerbitzua administratzen baduzu, ikuskatu martxan dagoen instantziaren konfigurazio eraginkorra, ez diskoko fitxategi bat. Baliteke OpenVPN --config bide ezberdin batekin abiarazi izana, sartzeak ekartzea eta aldaketaren ondoren berrabiarazi ez izana. Martxan dagoen daemonaren politika da bezeroek aurkitzen dutena.
Ez baduzu administratzen, eskatu operadoreari onartutako bezero-eskakizunak edo onarpen-proba mugatu bat. Ukatutako saiakera ez da automatikoki ukatutako suite bat: bertsioaren behe-mugak, remote-cert-tls bezalako ziurtagiri-identitate egiaztapenek edo tls-auth eta tls-crypt arteko desegokitasunak trukea amaitu dezakete suite-hautaketa garrantzia izan baino lehen. Irakurri zerbitzariaren errorea bezeroaren zerrenda aldatu aurretik, «handshake failed» delakoak lau kausa desberdin estaltzen baititu eta horietako bakarra delako zifratze-desegokitasuna.
openssl s_client VPN portura zuzentzeak ere ez du galdera birsortzen. Kontrol-kanala OpenVPNen beraren markoaren barruan doa, beraz TLS sonda gordinak beste protokolo bat probatzen du beste zerbait espero duen portu batean. Handik ateratako edozein ondorio sondari buruzkoa da, ez tuneleari buruzkoa.
Erregistratu bi emaitza eta eduki bereizita
Onartutako saio berri batek kontrol-kanaleko lerro bat sortzen du, protokoloaren bertsioa eta hautatutako zifratzea izendatzen dituena, eta datu-kanaleko lerro bereizi bat, tuneleko zifratzea izendatzen duena. Harrapatu biak bezeroaren bertsioarekin eta profilaren izenarekin, eta idatzi zein zerbitzari-instantziak erantzun zuen:
openvpn --config office.ovpn --verb 4 2>&1 | tee session.txt
Gero irakurri bi lerroak fitxategi horretatik, ez memoriatik. Bikotea da froga; suite-izen huts bat lehentasuna da, eta bertsio-muga zerbitzariak ukatzen duenari buruzko adierazpen bereizia da.
Egin egiaztapenak ordena honetan. Egiaztatu konpilazioa eta backenda --version erabiliz. Harrapatu --show-tls ezer aldatu aurretik. Aipatu beharrezko bertsioaren behe-muga suite-zerrendatik bereizita. Egiaztatu martxan dagoen instantziaren politika eraginkorra haren jabearekin. Behatu onartutako saio bat eta, planak uzten badu, bertsio zaharrago batekin ukatutako saiakera bat. Erregistratu kontrol-kanalaren eta datu-kanalaren emaitzak aurkikuntza bereizi gisa.
Beharrezko bezero batek gutxieneko berri bat bete ezin badu, hartu migrazio edo salbuespen erabaki hori modu esplizituan, inolako eraginik gabeko onarpen-arau bat isilpean jaitsi beharrean hedapena amaituta emateko.