Кључеви од 8192 бита блокирају руковање; DH од 1024 бита се одбија
Две грешке величине са супротним исправкама: превелик кључ сагорева време руковања док друга страна не достигне истек, а мала DH група се одбија пре него што почне.
На једном серверу клијенти заглаве на неко време и затим се поново повежу, а други одмах одбија везе са поруком о величини кључа. Изгледају као различите грешке, а то је иста грешка окренута у супротним смеровима. Криптографија руковања има цену која расте са величином параметара, и има и доњу границу испод које савремене библиотеке не иду. Одређивање величине материјала је контролна листа, а прва ставка је одлучити која од две грешке је заправо ваша.
Прочитајте неуспех пре него што било шта регенеришете
Време вам каже већину. Руковање које траје неколико секунди и затим умре обично значи да је израчунавање надживело стрпљење друге стране, што указује на параметре превелике за хардвер или за рок. Тренутно одбијање које наводи величину кључа или групе указује на другу страну, на материјал који библиотека уопште неће прихватити.
Ове две траже супротне исправке, и ту већина покушаја погреши. Регенерисање параметара од 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 модула.
Шта год да изаберете, тестирајте једном стварном везом и гледајте колико руковање траје, не само да ли се на крају повезује. Веза која успе за дванаест секунди има исти коренски узрок као она која пропадне на петнаест.
Запишите избор да га поновна изградња не може поништити
Држите датотеку параметара под управљањем конфигурацијом и запишите поред ње величину, разлог и датум. Поново изграђен сервер који тихо генерише сопствене задате вредности је начин на који се иста грешка враћа шест месеци касније и нико не може да објасни првобитну одлуку.
Запишите исте информације поред крајње тачке и профила, да преглед не мора да их реконструише из величине датотеке. Када следећа веза заглави, та белешка је разлика између петоминутне провере и нове истраге. Такође спречава следећег инжењера да реши спори случај исправком намењеном брзом.