OpenVPN tls-ciphersuites yn erbyn tls-version-min: beth mae pob un yn ei orfodi
Nid yw rhestr cyfuniadau TLS 1.3 yn terfynu fersiwn y protocol, ac mae show-tls yn dangos cymorth lleol yn unig. Gwiriwch y polisi, y cyfuniadau a'r canlyniadau a drafodwyd ar wahân.
Mae tri ffaith wahanol yn cael eu rhoi mewn un llinell yn y rhan fwyaf o drafodaethau OpenVPN TLS: beth all eich adeiladwaith cleient ei wneud, beth mae'r proffil yn ei ganiatáu, a beth mae'r sesiwn wedi'i drafod mewn gwirionedd. Nid yw rhestr fer o gyfuniadau TLS 1.3 yn ateb y cwestiwn canol ond yn hanner, ac nid yw'n dweud dim am lawr y fersiwn protocol. Ewch drwy'r gwiriadau isod yn eu trefn a stopiwch ar yr un cyntaf nad yw'n dal, oherwydd mae pob gwiriad diweddarach yn tybio bod y rhai cynharach wedi'u setlo.
Gwiriwch yr adeiladwaith cyn darllen unrhyw restr
Ni all cyfarwyddeb ffurfweddu ychwanegu cymorth protocol at ffeil ddeuaidd sydd hebddi. Dechreuwch gyda baner y fersiwn, sy'n enwi'r llyfrgell griffto a gafodd ei chrynhoi:
openvpn --version
Mae adeiladwaith 2.6 wedi'i gysylltu ag OpenSSL yn derbyn tls-cipher a tls-ciphersuites. Nid oes gan adeiladwaith gyda mbed TLS unrhyw ddewis cyfuniadau TLS 1.3 o gwbl, ac mae llawlyfr 2.6 yn nodi tls-ciphersuites fel opsiwn OpenSSL. Os ailadeiladir y gweinydd â backend gwahanol, gall yr un proffil newid ei ymddygiad heb i unrhyw linell o'r ffurfweddiad newid.
Tra byddwch yma, rhedwch openvpn --show-tls a chadwch yr allbwn. Dyma'r rhestr gyfrif sy'n mynd i'w chymharu yn ddiweddarach, ac mae'n rhad ei chofnodi cyn i unrhyw un ddechrau golygu proffiliau.
Ysgrifennwch y faner a'r rhestr yn nrwc y newid, nid mewn ffenestr sgwrs. Pan fydd dau berson yn anghytuno a allai cleient gynnig cyfuniad mewn chwe wythnos, mae'r allbwn a gofnodwyd yn setlo hynny mewn un linell.
Cadwch derfynau fersiwn ar wahân i restrau seiffrau
Yn llawlyfr 2.6 mae'r rhain yn dri rheolydd, nid un:
- Mae
tls-cipheryn gosod polisi seiffrau ar gyfer TLS 1.2 ac yn gynharach, ac yn cael ei drosglwyddo i restr seiffrau OpenSSL; - Mae
tls-ciphersuitesyn dewis cyfuniadau TLS 1.3; - Mae
tls-version-minatls-version-maxyn terfynu'r fersiynau protocol y caiff y cysylltiad eu defnyddio.
Felly nid yw rhestr gyfuniadau TLS 1.3 sydd wedi'i thocio'n ofalus yn profi dim am fersiwn hŷn sy'n dal i fod yn ganiataol. Os yw'r gofyniad yn «TLS 1.3 yn unig», y llawr fersiwn sy'n ei gynnal, ac mae'r rhestr gyfuniadau ond yn culhau'r dewisiadau o fewn y llawr hwnnw:
tls-version-min 1.3
tls-ciphersuites TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
Mae'r pâr hwn yn gwneud dwy swydd. Mae dileu un o'r llinellau yn gadael y llall yn gorfodi llai nag yr ydych yn meddwl, a dyna'r methiant y mae'r gwiriad cyfan hwn yn bodoli i'w ddal.
Mae'r sianel ddata yn bedwerydd rheolydd. Mae data-ciphers yn trafod y seiffer cymesur y tu mewn i'r tiwnel, ac nid yw ei ganlyniad yn dweud dim am fersiwn TLS y sianel reoli. Nid yw gweld AES-256-GCM yn y crynodeb sesiwn yn dystiolaeth am TLS 1.3 i'r naill gyfeiriad na'r llall.
Darllenwch show-tls fel rhestr gyfrif leol
Mae --show-tls yn rhestru'r cyfuniadau a gefnogir gan y llyfrgell griffto y mae'r ffeil ddeuaidd hon wedi'i chysylltu â hi, yn nhrefn ffafriaeth. Nid yw'n adroddiad gan y giât. Mae'r llawlyfr yn dweud yn benodol fod y rhestr yn dod o'r llyfrgell leol, sy'n golygu y bydd gliniadur ag OpenSSL 3.x a llwybrydd ag adeiladwaith hŷn yn argraffu rhestrau gwahanol tra'n siarad â'r un gweinydd.
| 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 |
Tybiwch fod cleient yn cefnogi cyfuniadau A, B ac C ac fod un sesiwn yn dewis B. Nid yw hynny'n sefydlu dim am a yw'r gweinydd yn caniatáu A neu C, nac am a yw B yw ei unig ddewis a ganiateir. Cadwch y tair rhes ar wahân, a bydd y rhan fwyaf o edafedd TLS dryslyd yn datrys eu hunain.
Mae'r rhestr gyfrif yn dal yn werth ei chadw. Pan fydd sesiwn yn methu, mae cymharu rhestr y llyfrgell â rhestr y proffil yn dweud wrthych a oedd gan y cleient unrhyw siawns o gynnig yr hyn a oedd y gweinydd ei eisiau. Mae hefyd yn dangos a yw newid backend wedi tynnu TLS_CHACHA20_POLY1305_SHA256 yn dawel o'r pwll y mae cleientiaid hŷn yn dibynnu arno — y math o atchweliad sy'n ymddangos fel dyrnaid o ddefnyddwyr yn methu cysylltu tra nad yw pawb arall yn sylwi ar ddim.
Gofynnwch gwestiwn i'r giât y gall ei ateb
Os ydych yn gweinyddu'r gwasanaeth, archwiliwch ffurfweddiad effeithiol y fersiwn sy'n rhedeg yn hytrach na ffeil ar y disg. Efallai bod OpenVPN wedi'i gychwyn â llwybr --config gwahanol, yn tynnu cynhwysion, ac nad yw wedi'i ailgychwyn ers y golygiad. Polisi'r daemon sy'n rhedeg yw'r hyn y mae cleientiaid yn dod ar ei draws.
Os nad ydych yn ei weinyddu, gofynnwch i'r gweithredwr am ofynion cleient a gefnogir neu brawf derbyn wedi'i gwmpasu. Nid yw ymgais a wrthodwyd yn gyfuniad a wrthodwyd yn awtomatig: gall llawr fersiwn, gwiriadau hunaniaeth tystysgrif fel remote-cert-tls, neu gamgymhariad rhwng tls-auth a tls-crypt ddod â'r gyfnewidfa i ben cyn i ddewis cyfuniad fod yn berthnasol. Darllenwch wall y gweinydd cyn newid rhestr y cleient, oherwydd mae «handshake failed» yn cwmpasu pedair achos gwahanol a dim ond un ohonynt yw camgymhariad seiffer.
Nid yw anelu openssl s_client at borth VPN yn atgynhyrchu'r cwestiwn chwaith. Mae'r sianel reoli yn rhedeg o fewn fframwaith OpenVPN ei hun, felly mae archwiliad TLS crai yn profi protocol gwahanol ar borth sy'n disgwyl rhywbeth arall. Mae unrhyw gasgliad a dynnir ohono yn ymwneud â'r archwiliad, nid â'r tiwnel.
Cofnodwch ddau ganlyniad a'u cadw ar wahân
Mae sesiwn newydd a ganiateir yn cynhyrchu llinell sianel reoli sy'n enwi fersiwn y protocol a'r seiffer a ddewiswyd, a llinell sianel ddata ar wahân sy'n enwi seiffer y tiwnel. Cofnodwch y ddwy gyda fersiwn y cleient ac enw'r proffil, a nodwch pa fersiwn o'r gweinydd a atebodd:
openvpn --config office.ovpn --verb 4 2>&1 | tee session.txt
Yna darllenwch y ddwy linell o'r ffeil honno yn hytrach nag o'r cof. Y pâr yw'r dystiolaeth; mae enw cyfuniad yn unig yn ffafriaeth, ac mae'r ffin fersiwn yn ddatganiad ar wahân am yr hyn y mae'r gweinydd yn ei wrthod.
Rhedwch y gwiriadau yn y drefn hon. Cadarnhewch yr adeiladwaith a'r backend gyda --version. Cofnodwch --show-tls cyn newid unrhyw beth. Nodwch y llawr fersiwn gofynnol ar wahân i'r rhestr gyfuniadau. Cadarnhewch bolisi effeithiol y fersiwn sy'n rhedeg gyda'i berchennog. Arsyliwch un sesiwn a ganiateir ac, os yw'r cynllun yn caniatáu, un ymgais â fersiwn hŷn a wrthodwyd. Cofnodwch ganlyniadau'r sianel reoli a'r sianel ddata fel canfyddiadau ar wahân.
Os na all cleient gofynnol fodloni lleiafswm newydd, gwnewch y penderfyniad mudo neu eithriad hwnnw'n benodol yn hytrach na gostwng rheol dderbyn anghysylltiedig yn dawel i wneud i'r cyflwyniad edrych yn gyflawn.