Na jednom serveru klienti na chvíli ztuhnou a pak se znovu připojí, jiný server okamžitě odmítá spojení se zprávou o velikosti klíče. Vypadají jako různé chyby a je to tatáž chyba ukazující opačnými směry. Kryptografie handshake má cenu, která roste s velikostí parametrů, a má také spodní hranici, pod kterou moderní knihovny nejdou. Určení velikosti materiálu je kontrolní seznam a prvním bodem je rozhodnout, kterou z těch dvou chyb vlastně máte.

Přečtěte si selhání, než cokoli vygenerujete znovu

Časování vám řekne většinu. Handshake, který spotřebuje několik sekund a pak zemře, obvykle znamená, že výpočet přežil trpělivost protistrany, což ukazuje na parametry příliš velké pro hardware nebo pro časový limit. Okamžité odmítnutí, které uvádí velikost klíče nebo skupiny, ukazuje opačným směrem, na materiál, který knihovna vůbec nepřijme.

Ty dvě potřebují opačné opravy a právě tady se většina pokusů zvrtne. Regenerace parametrů o 8192 bitech na klientovi, který už malou skupinu odmítl, zhorší pomalý případ, a pro rychlý neudělá nic. Zapište si, který symptom jste viděli, než se dotknete souboru.

Pak zkontrolujte, co se po protistraně chce. Server nastavený na velkou skupinu konečného pole nutí každého klienta utratit stejný procesorový čas při každém opětovném vyjednávání, ne jen při připojení. Pokud se problém objevuje v pravidelném intervalu místo při startu, je ten interval silným vodítkem, které nastavení je drahé. Opětovné vyjednávání opakuje celý výpočet, takže zaseknutí, které se vrací každou hodinu, je obvykle stejná cena placená znovu.

Pomalý případ: materiál, který si hardware nemůže dovolit

Práce Diffie-Hellman a RSA rychle roste s velikostí klíče a všechno se to stane dřív, než tunelem poteče jakýkoli provoz. Na malém routeru nebo klientovi s nízkým výkonem může dostatečně velká skupina vytlačit výměnu za časový limit druhé strany, takže se spojení opakuje nebo prostě vypadá zaseknuté bez jakékoli chyby.

Oprava je sestoupit na velikost, kterou každá protistrana podporuje a kterou každé zařízení pohodlně spočítá. RSA klíč o 2048 bitech a skupina o 2048 bitech zůstávají široce kompatibilní základnou; větší pomůže jen tehdy, když všechny strany souhlasí a procesor to při každém vyjednávání zaplatí. Vše nad touto základnou je vědomý kompromis, ne vylepšení.

Velikost není skóre a největší číslo ve srovnávací tabulce není automaticky správná volba. Vyberte nejmenší hodnotu, kterou vaše politika dovoluje a kterou všechny protistrany přijmou, a pak handshake změřte, místo abyste předpokládali, že se zlepšil. Menší skupina, která stále propadá časovému limitu, vám říká, že velikost nikdy nebyla celý příběh.

Rychlý případ: skupina, kterou knihovna odmítá

Moderní sestavení OpenSSL nejmenší skupiny konečného pole rovnou odmítají a zvýšená úroveň zabezpečení posouvá spodní hranici ještě výš. Firmware routeru, který nese desítky let starý soubor parametrů, je obvyklým zdrojem, a symptomem je spojení, které hned selže se zprávou uvádějící skupinu nebo velikost klíče. Nic na tom selhání není občasné, a právě proto se snadno pozná.

Nahraďte soubor, místo abyste upravovali konfiguraci a kontrolu obcházeli. Vygenerujte aktuální skupinu, ověřte ji a pak ji nainstalujte tam, kde ji démon skutečně čte. Ponechte starý soubor, dokud se klient úspěšně nepřipojí 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í příkaz soubor ověří a když projde, nevypíše nic užitečného; výpis potvrzuje, že jste nahradili soubor, který služba načítá, a ne zastaralou kopii vedle něj. Namiřte konfiguraci na tu cestu, restartujte démona a potvrďte, že klient, který dřív selhával, nyní handshake dokončí.

Pokud server nastavuje i úroveň zabezpečení nebo profil certifikátu, přečtěte si je, než usoudíte, že skupina byla špatná. Profil vyžadující přísnější třídu může odmítnout materiál, který by výchozí nastavení přijalo, a odstranění tohoto nastavení je užší změnou než globální vypnutí kontroly.

Zvolte velikost pro protistranu a hardware

Zjistěte, co vzdálený konec zvládne, než vygenerujete něco exotického. Zařízení příliš staré na skupinu o 2048 bitech je zařízení k výměně, protože nasměrování serveru na slabší skupinu jen promění stížnost na kompatibilitu ve výpadek. Trvalé opravy míří k novějšímu softwaru, ne ke starším parametrům. Každá dočasná výjimka v této oblasti má ve zvyku stát se trvalou konfigurací.

Kde je limitem procesor serveru, změňte algoritmus, místo abyste klesli pod politiku. Výměna klíčů na eliptické křivce, jako je X25519 je výrazně levnější než velká skupina konečného pole a je široce podporovaná, což z ní dělá lepší odpověď na stížnost na výkon než menší RSA modul.

Ať zvolíte cokoli, otestujte to jedním skutečným spojením a sledujte, jak dlouho handshake trvá, ne jen jestli se nakonec připojí. Spojení, které uspěje za dvanáct sekund, má stejnou příčinu jako to, které selže v patnácti.

Zapište volbu, aby ji přestavba nemohla zrušit

Držte soubor parametrů pod správou konfigurace a napište k němu velikost, důvod a datum. Přestavěný server, který tiše generuje vlastní výchozí hodnoty, je způsob, jak se stejná chyba vrátí o šest měsíců později a nikdo neumí vysvětlit původní rozhodnutí.

Zapište stejné informace k endpointu a profilu, aby je revize nemusela rekonstruovat z velikosti souboru. Když se příští spojení zasekne, ta poznámka je rozdíl mezi pětiminutovou kontrolou a novým vyšetřováním. Také zabrání dalšímu inženýrovi vyřešit pomalý případ opravou určenou pro rychlý.

Související články