WireGuard sporoča, da je dolžina zasebnega ključa napačna: kaj zdaj?
Ključ s 32 bajti ima v base64 44 znakov. Odločite se, ali je besedilo poškodovano ali je identiteta napačna, preden karkoli znova ustvarite.
Sporočilo pravi, da ima zasebni ključ napačno dolžino, in ta formulacija najprej kaže na kodiranje in šele nato na kriptografijo. Ključi WireGuard zakodirajo 32 bajtov v base64, kar da 44 znakov vključno s končnim polnilom, zato vrednost druge velikosti ni ključ, ne glede na to, kako naključno je videti. Zapolnjevanje niza, dokler ga razčlenjevalnik ne sprejme, ustvari pravilno oblikovano vrednost, ki je noben partner ne bo nikoli prepoznal.
Za to napako se skrivata dve različni nalogi: popraviti besedilo veljavnega ključa in zamenjati identiteto, ki je nimate več. Njune posledice so različne, ena od njiju pa razveljavi drugi konec.
Kaj pričakuje razčlenjevalnik
Ključ WireGuard je 32 bajtov ključnega materiala v base64 s standardnim polnilom, kar da nespremenljiv niz s 44 znaki. Orodja zavrnejo vse, kar se ne dekodira natanko v 32 bajtov, ker osnovna krivulja vzame 32-bajtni skalar in nič drugega. Javne in zasebne vrednosti uporabljajo isto kodiranje, zato razčlenjevalnik samo iz oblike ne more ugotoviti, katero od njiju ste prilepili. Prav ta dvoumnost povzroča polovico zmede okoli te napake.
wg genkey | tee private.key | wg pubkey > public.key
base64 -d private.key | wc -c
wc -c private.key
wg show wg0 public-key
Če se vaša vrednost dekodira v 32 bajtov, je dolžina v redu in pritožba prihaja z drugega mesta v datoteki. Če se dekodira v kaj krajšega, imate odrezan material, ne težave z oblikovanjem.
Poškodba oblike ali napačen material?
Poškodbe oblike se kopičijo na robovih: narekovaji, ki jih je dodala lupina, oznaka, kot je private_key, kopirana skupaj z vrednostjo, prelom vrstice, ki ga je vstavil klepetalni odjemalec, ali končni presledek, ki je preživel lepljenje. Vsaka od teh sprememb spremeni niz, ne da bi spremenila bajte, zato njihova odstranitev povrne prvotno identiteto. Primerjajte datoteko z evidenco o oskrbi znak za znakom, namesto da bi odstranili ločila, dokler se razčlenjevalnik ne utiša.
Napačen material je druga situacija. Geslo, ključ potrdila ali javna vrednost so lahko videti verodostojno in se dekodirajo v napačno velikost. Nobeno čiščenje katerega koli od njih ne spremeni v skalar, ki ga partner pričakuje. Ta primer potrebuje novo identiteto, ne urejanja.
Javni ključ v zasebnem polju
Najpogostejša zmeda je javna vrednost, prilepljena v zasebno polje, ali obratno. Obe sta veljaven base64 s 32 bajti, zato preverjanje dolžine uspe, rokovanje pa pozneje spodleti brez koristnega sporočila. Zasebni ključ je skalar, ki ustvari javnega, zato lahko to razrešite tako, da izpeljete javno vrednost in jo primerjate s tistim, kar partner dovoli. Ko se izpeljana vrednost ne ujema z evidenco, imate napačno identiteto, ne tipkarske napake.
Če zamenjate odjemalčev zasebni ključ, ne da bi posodobili dovoljeni javni ključ na drugem koncu, znova ustvarite isto neskladje, z dodatno zmedo, da je odjemalčeva lastna datoteka zdaj videti samoskladna. Spremenite oba konca v eni operaciji, sicer bo naslednja oseba razhroščevala napačno polovico.
Popravite profil in nato dokažite rokovanje
Ko se ključ dekodira v pravo velikost in se ujema z dovoljenim parom, ostaneta profil in pot. Spodnji ukazi po potrebi ustvarijo svež par, preverijo dekodirano velikost obstoječega ključa in preberejo javno vrednost, ki jo vmesnik dejansko uporablja. Nikoli ne prilepite zasebne vrednosti v zahtevek ali na stran za dekodiranje.
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
Preverjanje velikosti odgovori, ali ima material obliko ključa, poizvedba o poti pa, ali bi paket kdaj dosegel vmesnik. Vrstica rokovanja, ki ostane prazna po obeh preverjanjih, premakne diagnozo na partnerjevo končno točko in dovoljene naslove. Preberite javni ključ vmesnika glede na evidenco o oskrbi še enkrat, ker zastarel shranjen profil je lahko videti pravilen, medtem ko se dejaven razlikuje].
Zapišite, katero vrednost ste zamenjali in kje je dovoljena kopija. Kdor se bo naslednji dotaknil tega partnerja, mora vedeti, kateri konec se je spremenil.