Паведамленне кажа, што прыватны ключ мае няправільную даўжыню, і гэта фармулёўка паказвае спачатку на кадаванне, а ўжо потым на крыптаграфію. Ключы WireGuard кадуюць 32 байты ў base64, што дае 44 сімвалы разам з заключным запаўненнем, таму значэнне іншага памеру не з'яўляецца ключом, як бы выпадкова яно ні выглядала. Дапаўненне радка да таго часу, пакуль аналізатар яго не прыме, стварае правільна аформленае значэнне, якога ніводзін партнёр ніколі не пазнае.

За гэтай памылкай хаваюцца дзве розныя задачы: паправіць тэкст сапраўднага ключа і замяніць асобу, якой у вас больш няма. Іх наступствы розныя, і адна з іх робіць несапраўдным другі канец.

Чаго чакае аналізатар

Ключ WireGuard — гэта 32 байты ключавага матэрыялу ў base64 са стандартным запаўненнем, што дае фіксаваны радок з 44 сімвалаў. Інструменты адхіляюць усё, што не дэкадуецца роўна ў 32 байты, бо асноўная крывая прымае 32-байтавы скаляр і нічога больш. Адкрытыя і прыватныя значэнні выкарыстоўваюць адно і тое ж кадаванне, таму аналізатар не можа толькі па фармаце вызначыць, якое з іх вы ўставілі. Менавіта гэтая неадназначнасць стварае палову блытаніны вакол гэтай памылкі.

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

Калі ваша значэнне дэкадуецца ў 32 байты, даўжыня правільная, і скарга прыходзіць з іншага месца файла. Калі яно дэкадуецца ў нешта карацейшае, у вас абрэзаны матэрыял, а не праблема фарматавання.

Пашкоджанне фарматавання ці няправільны матэрыял?

Пашкоджанні фарматавання збіраюцца па краях: лапкі, дададзеныя абалонкай, пазнака накшталт private_key, скапіяваная разам са значэннем, перанос радка, устаўлены кліентам чату, або заключны прабел, які перажыў устаўку. Кожнае з гэтых змяненняў мяняе радок, не мяняючы байты, таму іх выдаленне аднаўляе пачатковую асобу. Параўноўвайце файл з запісам пра забеспячэнне сімвал за сімвалам, а не выдаляйце пунктуацыю, пакуль аналізатар не змоўкне.

Няправільны матэрыял — іншая сітуацыя. Пароль, ключ сертыфіката або адкрытае значэнне могуць выглядаць праўдападобна і дэкадавацца ў няправільны памер. Ніякая чыстка не ператварае любы з іх у скаляр, якога чакае партнёр. Гэты выпадак патрабуе новай асобы, а не рэдагавання.

Адкрыты ключ у прыватным полі

Найбольш частая блытаніна — адкрытае значэнне, устаўленае ў прыватнае поле, або наадварот. Абодва з'яўляюцца дапушчальным base64 з 32 байтаў, таму праверка даўжыні праходзіць, а рукапоціск пазней не ўдаецца без карыснага паведамлення. Прыватны ключ — гэта скаляр, які стварае адкрыты, таму гэта можна вырашыць, вывеўшы адкрытае значэнне і параўнаўшы яго з тым, што дазваляе партнёр. Калі выведзенае значэнне не супадае з запісам, у вас няправільная асоба, а не друкарская памылка.

Замена прыватнага ключа кліента без абнаўлення дазволенага адкрытага ключа на другім канцы зноў стварае тую ж неадпаведнасць, да таго ж файл самога кліента цяпер выглядае самаўзгодненым. Змяняйце абодва канцы адной аперацыяй, інакш наступны чалавек будзе адладжваць не тую палову.

Папраўце профіль, а потым дакажыце рукапоціск

Калі ключ дэкадуецца ў правільны памер і адпавядае дазволенай пары, застаюцца профіль і маршрут. Прыведзеныя ніжэй каманды ствараюць свежую пару пры неабходнасці, правяраюць дэкадаваны памер існуючага ключа і чытаюць адкрытае значэнне, якое інтэрфейс сапраўды выкарыстоўвае. Ніколі не ўстаўляйце прыватнае значэнне ў тыкет або на сайт дэкадавання.

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

Праверка памеру адказвае, ці мае матэрыял форму ключа, а запыт маршруту адказвае, ці дойдзе пакет да інтэрфейса. Радок рукапоціску, які застаецца пустым пасля абедзвюх праверак, пераносіць дыягностыку на канчатковы пункт партнёра і дазволеныя адрасы. Прачытайце адкрыты ключ інтэрфейса супраць запісу пра забеспячэнне яшчэ раз, бо састарэлы захаваны профіль можа выглядаць правільным, тады як актыўны адрозніваецца].

Запішыце, якое значэнне вы замянілі і дзе знаходзіцца дазволеная копія. Наступны, хто дакранецца да гэтага партнёра, павінен ведаць, які канец змяніўся.

Падобныя артыкулы