Na jednom serveri klienti na chvíľu zamrznú a potom sa znova pripoja, iný server okamžite odmieta spojenia so správou o veľkosti kľúča. Vyzerajú ako rôzne chyby a je to tá istá chyba ukazujúca opačnými smermi. Kryptografia handshake má náklad, ktorý rastie s veľkosťou parametrov, a má aj spodnú hranicu, pod ktorú moderné knižnice nejdú. Určenie veľkosti materiálu je kontrolný zoznam a prvým bodom je rozhodnúť, ktorú z dvoch chýb vlastne máte.

Prečítajte si zlyhanie, skôr než čokoľvek vygenerujete znova

Časovanie vám povie väčšinu. Handshake, ktorý spotrebuje niekoľko sekúnd a potom zomrie, zvyčajne znamená, že výpočet prežil trpezlivosť protistrany, čo ukazuje na parametre príliš veľké pre hardvér alebo pre časový limit. Okamžité odmietnutie, ktoré uvádza veľkosť kľúča alebo skupiny, ukazuje opačným smerom, na materiál, ktorý knižnica vôbec neprijme.

Tieto dve potrebujú opačné opravy a práve tu sa väčšina pokusov zvrtne. Regenerácia parametrov s 8192 bitmi na klientovi, ktorý už malú skupinu odmietol, zhorší pomalý prípad a pre rýchly nič neurobí. Zapíšte si, ktorý symptóm ste videli, skôr než sa dotknete súboru.

Potom skontrolujte, čo sa od protistrany žiada. Server nastavený na veľkú skupinu konečného poľa núti každého klienta minúť rovnaký procesorový čas pri každom opätovnom vyjednávaní, nielen pri pripojení. Ak sa problém objavuje v pravidelnom intervale namiesto pri štarte, ten interval je silným vodítkom, ktoré nastavenie je drahé. Opätovné vyjednávanie opakuje celý výpočet, takže zaseknutie, ktoré sa vracia každú hodinu, je zvyčajne tá istá cena zaplatená znova.

Pomalý prípad: materiál, ktorý si hardvér nemôže dovoliť

Práca Diffie-Hellman a RSA rastie rýchlo s veľkosťou kľúča a všetko sa to stane predtým, než tunelom pretečie akákoľvek prevádzka. Na malom routeri alebo klientovi s nízkym výkonom môže dostatočne veľká skupina vytlačiť výmenu za časový limit druhej strany, takže spojenie to skúsi znova alebo proste vyzerá zaseknuté bez akejkoľvek chyby.

Oprava je klesnúť na veľkosť, ktorú každá protistrana podporuje a ktorú každé zariadenie dokáže pohodlne vypočítať. RSA kľúč s 2048 bitmi a skupina s 2048 bitmi zostávajú široko kompatibilnou základnou líniou; väčšie pomôže len vtedy, keď všetky strany súhlasia a procesor to pri každom vyjednávaní zaplatí. Všetko nad touto základnou líniou je vedomý kompromis, nie vylepšenie.

Veľkosť nie je skóre a najväčšie číslo v porovnávacej tabuľke nie je automaticky správna voľba. Vyberte najmenšiu hodnotu, ktorú vaša politika dovoľuje a ktorú všetky protistrany prijmú, a potom handshake zmerajte, namiesto toho aby ste predpokladali, že sa zlepšil. Menšia skupina, ktorá stále prepadá časovému limitu, vám hovorí, že veľkosť nikdy nebola celý príbeh.

Rýchly prípad: skupina, ktorú knižnica odmieta

Moderné zostavenia OpenSSL odmietajú najmenšie skupiny konečného poľa priamo, a zvýšená úroveň zabezpečenia posúva spodnú hranicu ešte vyššie. Firmvér routera, ktorý nesie desaťročia starý súbor parametrov, je obvyklým zdrojom, a symptómom je spojenie, ktoré hneď zlyhá so správou uvádzajúcou skupinu alebo veľkosť kľúča. Nič na tom zlyhaní nie je občasné, a práve preto sa dá ľahko rozpoznať.

Nahraďte súbor, namiesto toho aby ste upravovali konfiguráciu a obchádzali kontrolu. Vygenerujte aktuálnu skupinu, overte ju a potom ju nainštalujte tam, kde ju démon skutočne číta. Ponechajte starý súbor, kým sa klient úspešne nepripojí s novým:

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

Kontrolný príkaz overí súbor a keď prejde, nevypíše nič užitočné; výpis potvrdzuje, že ste nahradili súbor, ktorý služba načítava, a nie zastaranú kópiu vedľa neho. Nasmerujte konfiguráciu na tú cestu, reštartujte démona a potvrďte, že klient, ktorý predtým zlyhával, teraz handshake dokončí.

Ak server nastavuje aj úroveň zabezpečenia alebo profil certifikátu, prečítajte si ich, skôr než usúdite, že skupina bola nesprávna. Profil vyžadujúci prísnejšiu triedu môže odmietnuť materiál, ktorý by predvolené nastavenie prijalo, a odstránenie tohto nastavenia je užšou zmenou než globálne vypnutie kontroly.

Zvoľte veľkosť pre protistranu a hardvér

Zistite, čo vzdialený koniec zvládne, skôr než vygenerujete niečo exotické. Zariadenie príliš staré na skupinu s 2048 bitmi je zariadenie na výmenu, pretože nasmerovanie servera na slabšiu skupinu len premení sťažnosť na kompatibilitu na výpadok. Trvalé opravy smerujú k novšiemu softvéru, nie k starším parametrom. Každá dočasná výnimka v tejto oblasti má vo zvyku stať sa trvalou konfiguráciou.

Kde je limitom procesor servera, zmeňte algoritmus, namiesto toho aby ste klesli pod politiku. Výmena kľúčov na eliptickej krivke, ako je X25519, je výrazne lacnejšia než veľká skupina konečného poľa a je široko podporovaná, čo z nej robí lepšiu odpoveď na sťažnosť na výkon než menší RSA modul.

Čokoľvek si vyberiete, otestujte jedným skutočným spojením a sledujte, ako dlho handshake trvá, nie len či sa nakoniec pripojí. Spojenie, ktoré uspeje za dvanásť sekúnd, má rovnakú koreňovú príčinu ako to, ktoré zlyhá v pätnástich.

Zapíšte voľbu, aby ju prestavba nemohla zrušiť

Držte súbor parametrov pod správou konfigurácie a napíšte k nemu veľkosť, dôvod a dátum. Znovu zostavený server, ktorý ticho generuje vlastné predvolené hodnoty, je spôsob, akým sa tá istá chyba vráti o šesť mesiacov a nikto nedokáže vysvetliť pôvodné rozhodnutie.

Zapíšte tie isté informácie k endpointu a profilu, aby ich revízia nemusela rekonštruovať z veľkosti súboru. Keď sa ďalšie spojenie zasekne, tá poznámka je rozdiel medzi päťminútovou kontrolou a novým vyšetrovaním. Tiež zabráni ďalšiemu inžinierovi vyriešiť pomalý prípad opravou určenou pre rýchly.

Súvisiace články