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

Прачытайце збой, перш чым нешта перагенерыраваць

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

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

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

Павольны выпадак: матэрыял, які абсталяванне не можа дазволіць

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

Выпраўленне — спусціцца да памеру, які падтрымлівае кожны суразмоўца і які кожная прылада можа спакойна вылічыць. Ключ RSA на 2048 бітаў і група на 2048 бітаў застаюцца шырока сумяшчальнай базавай лініяй; большае дапамагае толькі тады, калі ўсе бакі згодныя і працэсар можа плаціць за гэта пры кожным перапагадненні. Усё вышэй за гэтую базавую лінію — свядомы кампраміс, а не абнаўленне.

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

Хуткі выпадак: група, якую бібліятэка адхіляе

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

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

openssl dhparam -out /etc/openvpn/ffdhe2048.pem 2048
openssl dhparam -in /etc/openvpn/ffdhe2048.pem -check -noout
ls -l /etc/openvpn/ffdhe2048.pem

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

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

Выберыце памер для суразмоўцы і абсталявання

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

Там, дзе мяжа — працэсар сервера, змяніце алгарытм, а не спускайцеся ніжэй за палітыку. Абмен ключамі на эліптычнай крывой, такі як X25519 істотна таннейшы за вялікую групу канечнага поля і шырока падтрымліваецца, што робіць яго лепшым адказам на скаргу пра прадукцыйнасць, чым меншы модуль RSA.

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

Занясяце выбар у запіс, каб перабудова не адмяніла яго

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

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

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