Olrhain pecynnau rheoli OpenVPN: tls-auth cyn TLS
Mae HMAC tls-auth yn eistedd ar amlen rheoli, nid y tu mewn i ysgydwad llaw TLS. Cydweddwch allwedd, cyfeiriad a digest, yna gwirio heb dynnu’r amddiffyniad.
Fel arfer adroddir methiant tls-auth fel problem ysgydwad llaw, ac nid oedd erioed felly. Gwiriwyd yr HMAC ar y pecyn rheoli cyn i unrhyw brosesu TLS ddigwydd, felly mae allwedd neu gyfeiriad anghytunol yn cynhyrchu methiant sy’n edrych fel problem tystysgrif ac yn cael ei benderfynu dwy haen yn gynt. Mae trin yr amlen fel ei gwrthrych ei hun yn byrhau’r diagnosis: darllenwch y meysydd, cadarnhewch fod y gwiriad yn tanio’n gynnar, yna cymharwch y tri pheth y mae’n rhaid i’r ddau ben gytuno arnynt.
Darllenwch yr amlen yn y drefn y caiff ei hadeiladu
Mae pecyn rheoli’n cario dynodydd sesiwn, yr HMAC tls-auth dewisol, gwybodaeth ailchwarae a chydnabyddiaeth, a dynodydd neges dibynadwy, a llwyth y math neges ar ôl hynny. Pan fo’r neges yn neges ysgydwad llaw, y llwyth yw ciphertest TLS. Dyna’r berthynas gyfan: mae deunydd TLS yn teithio y tu mewn i neges y mae’r amlen eisoes yn ei hamddiffyn. Mae cyfeirlyfr protocol rhwydwaith OpenVPN yn rhestru meysydd y sianel rheoli yn y drefn honno.
Mae’r haen ddibynadwyedd yn hawdd i’w chamgymryd am griftoleg. Mae cydnabyddiaethau, aildrosglwyddo a’r dynodydd neges yn bodoli fel bod negeseuon rheoli’n cyrraedd unwaith ac yn y drefn dros gludiant annibynadwy. Nid ydynt yn ddilysu, ac nid yw dynodydd neges cywir yn profi dim am bwy a anfonodd y pecyn.
Cadwch y grwpio hwn yn gysyniadol. Nid diagram trefn beitiau ydyw, ac nid yw’n ddigon i gyfrifo tag, oherwydd mae’r meysydd sy’n mynd i mewn i’r HMAC yn dibynnu ar weithrediad, fersiwn a modd.
Dangoswch fod y gwiriad yn tanio cyn yr ysgydwad llaw
Gall derbynnydd sydd â’r allwedd rannol wirio’r HMAC a gollwng pecyn ffug ar unwaith, heb neilltuo cyflwr ysgydwad llaw na gwneud gwaith allwedd gyhoeddus. Mae’r amddiffyniad yn cwmpasu’r pecynnau ysgydwad llaw cychwynnol hefyd, a dyna’n union pam mae allwedd anghywir yn ymddangos fel cysylltiad wedi methu yn hytrach nag fel gwall dilysu hwyr.
Codwch leferb y daemon a gwyliwch y sianel rheoli yn hytrach na’r ddyfais tun:
openvpn --config /etc/openvpn/server.conf --verb 6
Yr hyn rydych chi’n chwilio amdano yw methiant gwirio HMAC y sianel rheoli a adroddir ar lefel pecyn, cyn unrhyw rybudd TLS. Mae rhybudd TLS yn y cofnod yn golygu bod yr amlen wedi’i derbyn a bod y methiant wedi symud tuag i mewn, sef ymchwiliad gwahanol gyda chyfrifiad gwahanol.
Mae trin cyfeiriad yn eistedd yma hefyd. Pan ddefnyddir ffeil allwedd statig gyda tls-auth, mae’r ddau ben yn cymryd cyfeiriadau allwedd cyferbyniol, ac mae’r protocol yn defnyddio’r rhaniad hwnnw fel na ellir adlewyrchu pecyn a ddaliwyd yn ôl at ei anfonydd. Mae cael y cyfeiriad yn ôl yn cadw’r allwedd yn unfath ac yn methu pob pecyn o hyd. Newidiwch un pen ar y tro, yna ailgychwynnwch y ddau ddaemon fel bod y pâr yn cael ei lwytho gyda’i gilydd.
Cydweddwch allwedd, cyfeiriad a digest ar y ddau ben
Rhaid i dri gwerth gytuno a dim ond un ohonynt yw’r ffeil. Rhaid i gynnwys yr allwedd statig fod yn unfath ar y ddau ben, rhaid i’r cyfeiriad fod yn gyferbyniol, a rhaid i’r digest a ddefnyddir ar gyfer yr HMAC gyd-fynd. Gwiriwch y ffurfweddiad cyn cyffwrdd â’r deunydd allwedd, oherwydd mae un cyfeiriad gwrthdro yn esbonio mwy o fethiannau na ffeil lygredig:
grep -E 'tls-auth|tls-crypt|key-direction|auth ' /etc/openvpn/server.conf
Cynhyrchwch y gyfrinach rannol gyda’r offeryn yn hytrach nag â golygydd, a chadwch ei chaniatadau’n dynn:
openvpn --genkey secret /etc/openvpn/ta.key
chmod 600 /etc/openvpn/ta.key
Roedd rhyddhau hŷn yn derbyn trefn opsiynau ychydig yn wahanol ar gyfer cynhyrchu allweddi, ac mae proffiliau a ysgrifennwyd ar gyfer y rhyddhau hynny’n dal i ledaenu. Yr un math o wrthrych yw’r ffeil a gynhyrchir naill ffordd, felly’r gwiriad yw a yw’r ddau ben yn dal beitiau unfath, nid pa sillafiad a’u cynhyrchodd.
Peidiwch â chymysgu tls-auth â tls-crypt. Mae’r ddau yn amddiffyn y sianel rheoli, ond mae tls-crypt hefyd yn ei hamgryptio ac yn cuddio’r ysgydwad llaw rhag arsyllwyr, ac mae’n disodli’r rhaniad cyfeiriad â’i driniaeth allwedd ei hun. Ni fydd proffil sy’n defnyddio un yn cydweithredu â chyfoed a ffurfweddwyd ar gyfer y llall, ac nid yw unrhyw addasu digest yn cau’r bwlch hwnnw.
Atgynhyrchwch dag o’r fformat go iawn yn unig
Mae atgynhyrchu beit-union yn dasg ar wahân i redeg VPN, ac mae’n gweithio gyda’r mewnbynnau go iawn yn unig: y gweithrediad a’r fersiwn a adeiladodd y pecyn, y digest a ddewiswyd, y cyfeiriad, a’r beitiau gwirioneddol gan gynnwys dynodydd sesiwn a’r arae gydnabyddiaeth. Nid yw rendrad testunol o restr y meysydd yn y beitiau hynny.
Mae hyd y tag yn dilyn o’r digest, felly mae tybiaeth hyd sefydlog yn torri’r eiliad y bydd rhywun yn ei newid. Hasiwch y pecyn fel y mae’r gweithrediad yn ei wneud, nid fel y mae tabl mewn post blog yn ei chyflwyno, a chymharwch â chipolwg a gymerwyd o’r un cyfoed yn hytrach nag â disgwyliad a ddiddwysoch â llaw.
Cadwch y rheolaeth honno i ffwrdd o broffiliau cynhyrchu. Nid oes dim ynghylch atgynhyrchu tag yn dweud wrthych a ddylai gosodiad alluogi’r amddiffyniad.
Trowch yn ôl anghysondeb heb dynnu’r amddiffyniad
Y prawf temtus yw dileu tls-auth, gwylio’r cysylltiad yn llwyddo a chasglu bod yr allwedd yn anghywir. Mae’r ateb hwnnw’n costio’r amddiffyniad i chi ac yn dysgu dim am ba un o’r tri gwerth a anghytunodd. Yn lle hynny, cymerwch y ffurfweddiad cyfatebol a gymeradwywyd o ochr y gweinydd a chymharwch ag ef.
Paratowch y newid fel ei fod yn wrthdro. Cadwch ffurfweddiad a ffeil allwedd y gweinydd blaenorol, cymhwyswch y pâr cywiredig, gwirwch fod cleient yn cwblhau’r ysgydwad llaw, a dim ond yna tynnwch y copi wrth gefn. Os bydd cleientiaid yn methu ar ôl y newid, adferwch y ffeiliau blaenorol yn hytrach na dyfeisio trydydd amrywiad yn ystod methiant. Dylai’r adferiad fod yn un gorchymyn rydych chi’n ei wybod yn barod cyn dechrau.
Yn olaf, cofiwch beth mae gwiriad a basiodd yn ei olygu. Mae’n profi bod y cyfoed yn dal yr allwedd rannol, nid bod ei dystysgrif neu ei gyfrif wedi’i awdurdodi, ac nid yw’n dweud dim am y cipher sianel ddata a drafodwyd. Sefydlir awdurdodi ac amddiffyn data yn ddiweddarach, felly mae gwiriad amlen glân yn fan cychwyn yn hytrach na barn.