WireGuard praneša, kad privataus rakto ilgis neteisingas: ką daryti dabar?
32 baitų raktas base64 formato užima 44 ženklus. Nuspręskite, ar tekstas pažeistas, ar tapatybė neteisinga, prieš ką nors generuodami iš naujo.
Pranešimas sako, kad privataus rakto ilgis neteisingas, ir ši formuluotė pirmiausia nurodo koduotę, o tik po to kriptografiją. WireGuard raktai koduoja 32 baitus kaip base64, todėl gaunami 44 ženklai su paskutiniu užpildu, vadinasi, kitokio dydžio reikšmė nėra raktas, kad ir kokia atsitiktinė ji atrodytų. Eilutės užpildymas tol, kol analizatorius ją priims, sukuria taisyklingos formos reikšmę, kurios joks partneris niekada neatpažins.
Už šios klaidos slypi du skirtingi darbai: sutaisyti galiojančio rakto tekstą ir pakeisti tapatybę, kurios nebeturite. Jų pasekmės skirtingos, ir viena iš jų panaikina kitą galą.
Ko tikisi analizatorius
WireGuard raktas yra 32 baitai raktinės medžiagos base64 formatu su standartiniu užpildu, todėl gaunama fiksuota 44 ženklų eilutė. Įrankiai atmeta viską, kas neiššifruojama tiksliai į 32 baitus, nes pagrindo kreivė ima 32 baitų skaliarą ir nieko daugiau. Viešos ir privačios reikšmės naudoja tą pačią koduotę, todėl analizatorius vien iš formato negali pasakyti, kurią įklijavote. Būtent šis neapibrėžtumas sukelia pusę painiavos dėl šios klaidos.
wg genkey | tee private.key | wg pubkey > public.key
base64 -d private.key | wc -c
wc -c private.key
wg show wg0 public-key
Jei jūsų reikšmė iššifruojama į 32 baitus, ilgis geras, o skundas ateina iš kitos failo vietos. Jei ji iššifruojama į ką nors trumpesnio, turite nukirptos medžiagos, o ne formato problemą.
Formato pažeidimas ar netinkama medžiaga?
Formato pažeidimai telkiasi kraštuose: apvalkalo pridėtos kabutės, žyma kaip private_key, nukopijuota kartu su reikšme, pokalbių kliento įterptas eilutės lūžis arba pabaigos tarpas, išgyvenęs įklijavimą. Kiekvienas iš jų keičia eilutę nekeisdamas baitų, todėl jo pašalinimas atkuria pirminę tapatybę. Palyginkite failą su aprūpinimo įrašu ženklas po ženklo, o ne šalinkite skyrybos ženklus, kol analizatorius nutils.
Netinkama medžiaga yra kita situacija. Slaptažodis, sertifikato raktas ar vieša reikšmė gali atrodyti įtikinamai ir iššifruotis į netinkamą dydį. Joks valymas nepaverčia nė vieno jų skaliaru, kurio tikisi partneris. Tokiu atveju reikia naujos tapatybės, o ne redagavimo.
Viešas raktas privačiame lauke
Dažniausia painiava – vieša reikšmė, įklijuota į privatų lauką, arba atvirkščiai. Abi yra galiojantis 32 baitų base64, todėl ilgio patikra praeina, o rankos paspaudimas vėliau nepavyksta be naudingos žinutės. Privatus raktas yra skaliaras, sukuriantis viešą, todėl tai galite išspręsti išvedę viešą reikšmę ir palyginę su tuo, ką partneris įgalioja. Kai išvesta reikšmė nesutampa su įrašu, turite neteisingą tapatybę, o ne rašybos klaidą.
Jei pakeisite kliento privatų raktą neatnaujinę įgalioto viešo rakto kitame gale, ta pati neatitiktis vėl atsiras, be to, kliento failas dabar atrodys savyje nuoseklus. Pakeiskite abu galus vienoje operacijoje, kitaip kitas žmogus derins netinkamą pusę.
Sutaisykite profilį, tada įrodykite rankos paspaudimą
Kai raktas iššifruojamas į tinkamą dydį ir atitinka įgaliotą porą, lieka profilis ir maršrutas. Toliau pateiktos komandos prireikus sukuria naują porą, patikrina esamo rakto iššifruotą dydį ir nuskaito viešą reikšmę, kurią sąsaja iš tikrųjų naudoja. Niekada neklijuokite privačios reikšmės į bilietą ar iššifravimo svetainę.
wg genkey | tee new.key | wg pubkey > new.pub
base64 -d private.key | wc -c
ip route get 10.60.9.5
wg show wg0 latest-handshakes
Dydžio patikra atsako, ar medžiaga yra rakto formos, o maršruto užklausa atsako, ar paketas kada nors pasieks sąsają. Rankos paspaudimo eilutė, kuri lieka tuščia po abiejų patikrų, perkelia diagnostiką į partnerio galinį tašką ir leidžiamus adresus. Perskaitykite sąsajos viešą raktą pagal aprūpinimo įrašą dar kartą, nes pasenęs išsaugotas profilis gali atrodyti teisingas, o aktyvusis skirtis].
Užsirašykite, kurią reikšmę pakeitėte ir kur yra įgaliota kopija. Kitas žmogus, liesiantis šį partnerį, turi žinoti, kuris galas pasikeitė.