Mae un cleient yn dilysu â’r allwedd a rennir ac mae un arall yn ei gwrthod, er bod y nodau a lapiwyd gennych yn edrych yr un fath ar y ddwy ochr. Yn ôl pob tebyg dyma’r un nodau; y gwahaniaeth yw pa reol ddadgodio y mae’r ffeil yn ei chymhwyso iddynt. Cymerir llinyn mewn dyfynbris yn llythrennol, mae tocyn sy’n dechrau â 0x yn cael ei ddarllen fel hecsadegol, ac mae tocyn sy’n dechrau â 0s yn cael ei ddarllen fel Base64. Dim ond un o’r tair sillafiad hynny sy’n golygu’r hyn y bwriadwyd, felly cyfieithiad yw’r atgyweiriad fel arfer, nid cyfrinair gwell.

Mae’r symptom yn cyfeirio at godio, nid at seiffrau

Pan fo’r ddau ben yn dal beitiau gwahanol, mae’r trafod yn dal i lwyddo ac mae’r prawf yn methu wedyn. Yna mae’r log yn adrodd methiant cyfanrwydd neu HMAC yn hytrach nag anghytundeb algorithm, oherwydd dewiswyd cynnig ac ni chyfatebodd y cam dilysu. Nid yw’r llinell honno byth yn sôn am siâp y gyfrinach.

Y cam yw’r cliw. Mae methiant sy’n cyrraedd ar ôl cynnig a ddewiswyd yn golygu bod y ddwy ochr wedi cytuno ar bopeth heblaw deunydd allwedd, tra bod «dim cynnig wedi’i ddewis» yn perthyn i bolisi neu i setiau seiffr. Mae gwiriad cyfanrwydd sy’n methu tra bo’r cyfrinair yn edrych yn gywir yn wyneb gweladwy anghytundeb codio.

Un gyfrinach, tair ffordd y gall y ffeil ei darllen

Ar gyfer y gwerth pedwar beit key1, mae hecsadegol a Base64 yn ddau ailgodio o’r un beitiau, a dim ond y nodau blaen sy’n dweud wrth y dosrannydd pa un sydd ganddo. Mae tystlythyrau swanctl yn dilyn yr un confensiwn, felly dim ond pan fo ei ragddodiad yn teithio gyda hi y mae gwerth a symudir rhwng y ddau ryngwyneb yn cadw ei ystyr.

10.20.0.5 %any : PSK "key1"
10.20.0.5 %any : PSK 0x6b657931
10.20.0.5 %any : PSK 0sa2V5MQ==

Mae dau fanylyn yn y bloc hwnnw yn costio’r amser mwyaf. Mae digidau hecsadegol yn derbyn y naill achos a’r llall, felly mae 0x6b657931 a 0x6B657931 yr un gwerth, ond mae nifer odrif o nodau yn cael ei gamddarllen yn dawel yn hytrach na’i wrthod, sy’n symud pob beit ar ôl y toriad. Mae padio Base64 yn perthyn i’r gwerth, felly mae llinyn a lapiwyd heb ei nodau = ol yn dadgodio i feitiau gwahanol yn hytrach na methu’n uchel.

Mae proffil sydd wedi dadgodio’r gwerth unwaith eisoes wedi’i drosi, felly mae dadgodio eto yn cynhyrchu beitiau gwahanol a methiant dilysu sy’n darllen fel cyfrinair anghywir. Dyfynbris yw’r cyfeiriad diogel ar gyfer unrhyw beth amwys, oherwydd mae’r cynnwys yn llythrennol hyd yn oed pan fydd yn dechrau â marciwr codio.

O ble mae’r testun Base64 yn dod

Mae allforynion proffil a phyrth gwerthwyr yn aml yn trosglwyddo’r allwedd eisoes wedi’i chodio, fel arfer mewn maes data na fwriadwyd erioed i’w deipio â llaw. Naill ai dadlapio’r gwerth hwnnw a storio’r testun dadgodiedig mewn dyfynbris, neu ei adael wedi’i godio gyda’r marciwr o’i flaen. Gwneud hanner y naill a hanner y llall yw’r hyn sy’n torri. Dim ond os yw’r gwerth cyfan yn goroesi’r copi y mae’r naill lwybr neu’r llall yn gweithio.

Mae’r ddau gyfeiriad yn un gorchymyn yr un, ac maent yn werth eu cadw yn y tocyn fel yr union weithred a gynhyrchodd y gwerth a storir. Rhedegwch hwy yn y drefn hon:

printf '%s' 'a2V5MQ==' | base64 -d
printf '%s' 'key1' | base64

Lapio testun codiedig fel petai’n blaen yw’r camgymeriad costus. Mae’r ffeil yn hashio’r nodau yn union fel y’u hysgrifennwyd, mae’r allwedd sy’n deillio’n dod allan tua thraean yn hirach na’r un a gyfrifodd y cymar, ac mae pob ymgais yn methu’r un fath heb rybudd, oherwydd dilynodd y dosrannydd y rheol a roddwyd iddo.

Cadarnhewch ba beitiau y mae pob cymar yn eu defnyddio mewn gwirionedd

Darllenwch olwg y daemon ar y cysylltiad yn gyntaf a chanlyniad y dilysu yn ail, yn hytrach na dyfalu achos o’r llinyn gwall. Mae cymharu’r hyd a storir yn wiriad synnwyr cyflym, oherwydd mae testun codiedig yn hirach na’r beitiau y mae’n eu cynrychioli. Yna cadarnhewch pa res o hunaniaeth a gyfatebodd, oherwydd mae cyfrinach gywir a ffeiliwyd o dan y cymar anghywir yn methu’n union fel un anghywir. Trefn y rhesi sy’n penderfynu hynny: y cyfatebiad cyntaf sy’n ennill, felly mae rhes eang %any ger y top yn disodli’n dawel y rhes benodol a olygwyd gennych newydd.

Ail-lwythwch yn hytrach nag ailgychwyn unwaith y bydd y ffeil yn iawn. ipsec rereadsecrets yn adnewyddu copi’r daemon IKE, ac mae setup swanctl yn llwytho tystlythyrau trwy ei orchymyn ei hun. Mae ailgychwyn yn gollwng pob cysylltiad sefydledig ac yn dinistrio’r gymhariaeth yr oeddech yn ceisio’i gwneud.

Nid oes yr un o’r gwiriadau hyn yn gofyn datgelu’r gyfrinach. Mae hyd, dewisydd hunaniaeth a safle rhes yn esbonio’r rhan fwyaf o fethiannau o’r math hwn cyn i unrhyw un fod angen dump hecsadegol.

Newidiwch y ffeil heb guddio’r canlyniad

Cyfyngwch y ffeil i gyfrif y daemon, a chadwch gyfrinachau byw allan o docynnau, sgwrs a sgrinluniau, oherwydd mae allwedd a lapiwyd yn ollyngiad, nid yn ddiagnostig. Mae hefyd yn goroesi’r digwyddiad a’i cynhyrchodd.

Profwch o gleient y rheolwch ei ffurfweddiad, cadarnhewch fod y dilysu’n llwyddo, ac yna cadarnhewch fod y twnnel yn cario traffig. Mae ail-lwytho sy’n trwsio’r ysgwyd llaw tra bo’r llwybreiddio’n parhau’n doredig yn broblem wahanol, ac mae’n dod yn weladwy cyn gynted ag y bydd y gyfrinach yn peidio â symud.

Erthyglau cysylltiedig