Az üzenet azt mondja, hogy a privát kulcs hossza hibás, és ez a megfogalmazás először a kódolásra, csak utána a kriptográfiára mutat. A WireGuard kulcsai 32 bájtot kódolnak base64-be, ami 44 karaktert ad a záró kitöltéssel együtt, így a más méretű érték nem kulcs, bármilyen véletlenszerűnek is tűnik. A karakterlánc kitöltése addig, amíg az elemző el nem fogadja, jól formált értéket ad, amelyet egyetlen partner sem fog felismerni.

Két különböző feladat bújik meg e hiba mögött: egy érvényes kulcs szövegének javítása, és egy olyan identitás cseréje, amellyel már nem rendelkezik. A következményeik eltérőek, és az egyik érvényteleníti a másik végpontot.

Mit vár az elemző

A WireGuard kulcs 32 bájt kulcsanyag base64-ben, szabványos kitöltéssel, ami rögzített 44 karakteres karakterláncot ad. Az eszközök mindent elutasítanak, ami nem pontosan 32 bájtra dekódolódik, mert a mögöttes görbe 32 bájtos skalárt vesz, semmi mást. A nyilvános és a privát értékek ugyanazt a kódolást használják, ezért az elemző pusztán a formátumból nem tudja megmondani, melyiket illesztette be. Ez a kétértelműség okozza a hiba körüli zavar felét.

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

Ha az érték 32 bájtra dekódolódik, a hossz rendben van, és a panasz a fájl más részéből érkezik. Ha valami rövidebbre dekódolódik, csonkolt anyaga van, nem formázási probléma.

Formázási sérülés vagy rossz anyag?

A formázási sérülések a széleken csoportosulnak: héj által hozzáadott idézőjelek, a private_key-hez hasonló címke, amelyet az értékkel együtt másoltak, csevegőprogram által beszúrt sortörés, vagy a beillesztést túlélő záró szóköz. Mindegyik megváltoztatja a karakterláncot anélkül, hogy a bájtokat változtatná, így eltávolításuk visszaállítja az eredeti identitást. Hasonlítsa össze a fájlt a kiépítési nyilvántartással karakterről karakterre, ahelyett hogy eltávolítaná az írásjeleket, amíg az elemző elhallgat.

A rossz anyag más helyzet. Egy jelszó, egy tanúsítványkulcs vagy egy nyilvános érték mind hitelesnek tűnhet, és rossz méretre dekódolódhat. Semmilyen tisztítás nem teszi őket a partner által várt skalárrá. Ez az eset új identitást igényel, nem szerkesztést.

Nyilvános kulcs a privát mezőben

A leggyakoribb félreértés, hogy nyilvános érték kerül a privát mezőbe, vagy fordítva. Mindkettő érvényes 32 bájtos base64, ezért a hossz-ellenőrzés átmegy, és a kézfogás később hasznos üzenet nélkül meghiúsul. A privát kulcs az a skalár, amely a nyilvánost létrehozza, így eldöntheti úgy, hogy levezeti a nyilvános értéket, és összeveti azzal, amit a partner engedélyez. Ha a levezetett érték nem egyezik a nyilvántartással, rossz identitás van a kezében, nem elírás.

A kliens privát kulcsának cseréje anélkül, hogy a másik végponton frissítené az engedélyezett nyilvános kulcsot, újra létrehozza ugyanazt az eltérést, azzal a további zavarral, hogy a kliens saját fájlja most önmagával konzisztensnek látszik. Egy műveletben változtassa meg mindkét végpontot, különben a következő ember a rossz felét hibakeresi.

Javítsa a profilt, majd bizonyítsa a kézfogást

Amint a kulcs a megfelelő méretre dekódolódik és illeszkedik az engedélyezett párhoz, a profil és az útvonal marad hátra. Az alábbi parancsok szükség esetén friss párt hoznak létre, ellenőrzik egy meglévő kulcs dekódolt méretét, és kiolvassák azt a nyilvános értéket, amelyet az interfész ténylegesen használ. Soha ne illesszen privát értéket jegybe vagy dekódoló oldalra.

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

A méret-ellenőrzés azt válaszolja meg, hogy az anyag kulcs alakú-e, az útvonal-lekérdezés pedig azt, hogy egy csomag egyáltalán elérné-e az interfészt. Az a kézfogás-sor, amely mindkét ellenőrzés után üresen marad, a diagnózist a partner végpontjára és az engedélyezett címekre helyezi át. Olvassa el az interfész nyilvános kulcsát még egyszer a kiépítési nyilvántartás ellen, mert egy elavult mentett profil helyesnek tűnhet, miközben az aktív eltér].

Jegyezze fel, melyik értéket cserélte, és hol található az engedélyezett másolat. A következő embernek, aki ehhez a partnerhez nyúl, tudnia kell, melyik végpont változott.

Kapcsolódó cikkek