Meldinga seier at den private nøkkelen har feil lengd, og den formuleringa peikar først på kodinga og deretter på kryptografien. WireGuard-nøklar kodar 32 byte som base64, noko som gir 44 teikn inkludert ei avsluttande utfylling, så ein verdi av ein annan storleik er ikkje ein nøkkel uansett kor tilfeldig han ser ut. Å fylla ut strengen til parsaren godtek han gir ein velforma verdi som ingen peer nokon gong vil kjenna att.

Bak denne feilen skjuler det seg to ulike arbeidsoppgåver: å reparera teksten i ein gyldig nøkkel, og å erstatta ein identitet du ikkje lenger har. Dei har ulike følgjer, og éin av dei gjer den andre enden ugyldig.

Kva parsaren ventar

Ein WireGuard-nøkkel er 32 byte nøkkelmateriale i base64 med standard utfylling, noko som gir ein fast streng på 44 teikn. Verktøya avviser alt som ikkje blir dekoda til nøyaktig 32 byte, fordi den underliggande kurva tek ein skalar på 32 byte og ingenting anna. Offentlege og private verdiar brukar same koding, så parsaren kan ikkje ut frå formatet åleine sjå kva for ein av dei du limte inn. Den tvitydigheita skaper halvparten av forvirringa rundt denne feilen.

wg genkey | tee private.key | wg pubkey > public.key
base64 -d private.key | wc -c
wc -c private.key
wg show wg0 public-key

Viss verdien din blir dekoda til 32 byte, er lengda rett og klaga kjem frå ein annan stad i fila. Viss han blir dekoda til noko kortare, har du avkorta materiale og ikkje eit formateringsproblem.

Formateringsskade eller feil materiale?

Formateringsskadar samlar seg i kantane: hermeteikn som eit skal la til, ei etikett som private_key kopiert saman med verdien, eit linjeskift sett inn av ein chatklient, eller eit avsluttande mellomrom som overlevde liminga. Kvar av desse endrar strengen utan å endra byta, så å fjerna dei gjenopprettar den opphavlege identiteten. Samanlikn fila med klargjeringsprotokollen teikn for teikn i staden for å fjerna teiknsetjing til parsaren blir stille.

Feil materiale er ein annan situasjon. Eit passord, ein sertifikatnøkkel eller ein offentleg verdi kan alle sjå truverdige ut og bli dekoda til feil storleik. Ingen mengd reinsking gjer nokon av dei til skalaren peeren ventar. Det tilfellet krev ein ny identitet i staden for ei redigering.

Ein offentleg nøkkel i det private feltet

Den vanlegaste forvekslinga er ein offentleg verdi limt inn i det private feltet, eller omvendt. Begge er gyldig base64 på 32 byte, så lengdekontrollen passerer og handtrykket feilar seinare utan ei nyttig melding. Ein privat nøkkel er skalaren som lagar den offentlege, så du kan avgjera det ved å utleia den offentlege verdien og samanlikna han med det peeren autoriserer. Når den utleidde verdien ikkje stemmer med protokollen, har du feil identitet og ikkje ein skrivefeil.

Å byta ut klienten sin private nøkkel utan å oppdatera den autoriserte offentlege nøkkelen i den andre enden gjenopprettar den same uoverensstemminga, med den ekstra forvirringa at klienten si eiga fil no ser sjølvkonsistent ut. Endra begge endar i éin operasjon, elles feilsøkjer neste person den gale halvdelen.

Reparer profilen, og prov deretter handtrykket

Når nøkkelen blir dekoda til rett storleik og passar til det autoriserte paret, står profilen og ruta att. Kommandoane nedanfor genererer eit friskt par når det trengst, verifiserer den dekoda storleiken til ein eksisterande nøkkel og les den offentlege verdien som grensesnittet faktisk brukar. Lim aldri ein privat verdi inn i ei sak eller på eit dekodingsnettstad.

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

Storleikskontrollen svarar på om materialet har nøkkelform, og rutespurnaden svarar på om ei pakke nokon gong ville nå grensesnittet. Ei handtrykkslinje som blir ståande tom etter at begge kontrollane passerer, flyttar diagnosen til endepunktet til peeren og dei tillatne adressene. Les den offentlege nøkkelen til grensesnittet mot klargjeringsprotokollen éin siste gong, fordi ein utdatert lagra profil kan sjå rett ut medan den aktive avvik].

Noter kva verdi du bytte ut og kvar den autoriserte kopien ligg. Den neste som rører denne peeren må vita kva ende som vart endra.

Relaterte artiklar