Yhdellä palvelimella asiakkaat jumittuvat hetkeksi ja yhdistävät sitten uudelleen, ja toinen hylkää yhteydet heti viestillä avaimen koosta. Ne näyttävät eri virheiltä ja ovat sama virhe vastakkaisiin suuntiin. Kättelyn salauksella on kustannus, joka kasvaa parametrien koon myötä, ja sillä on myös alaraja, jonka alle nykyaikaiset kirjastot eivät mene. Materiaalin mitoittaminen on tarkistuslista, ja ensimmäinen kohta on päättää, kumpi kahdesta virheestä sinulla todella on.

Lue epäonnistuminen ennen kuin luot mitään uudelleen

Ajoitus kertoo siitä suurimman osan. Kättely, joka kestää useita sekunteja ja sitten kuolee, tarkoittaa yleensä, että laskenta ylitti vastapuolen kärsivällisyyden, mikä viittaa parametreihin, jotka ovat liian suuria laitteistolle tai aikakatkaisulle. Välitön hylkäys, joka nimeää avaimen tai ryhmän koon, osoittaa toiseen suuntaan, materiaaliin, jota kirjasto ei hyväksy lainkaan.

Nämä kaksi tarvitsevat vastakkaiset korjaukset, ja juuri tässä useimmat yritykset menevät pieleen. 8192-bittisten parametrien uudelleenluonti asiakkaalla, joka on jo hylännyt pienen ryhmän, pahentaa hidasta tapausta tekemättä nopealle mitään. Kirjoita muistiin, minkä oireen näit, ennen kuin kosket tiedostoon.

Tarkista sitten, mitä vastapuolelta pyydetään. Äärellisen kentän suurelle ryhmälle määritetty palvelin pakottaa jokaisen asiakkaan kuluttamaan saman CPU-ajan joka uudelleenneuvottelussa, ei vain yhdistettäessä. Jos ongelma ilmenee säännöllisin väliajoin eikä käynnistyksessä, tuo väli on vahva vihje siitä, mikä asetus on kallis. Uudelleenneuvottelu toistaa koko laskennan, joten tunneittain palaava jumittuminen on yleensä sama kustannus, joka maksetaan uudelleen.

Hidas tapaus: materiaali, johon laitteistolla ei ole varaa

Diffie-Hellmanin ja RSA:n työ kasvaa nopeasti avaimen koon myötä, ja kaikki se tapahtuu ennen kuin tunnelissa kulkee yhtään liikennettä. Pienessä reitittimessä tai vähätehoisessa asiakkaassa riittävän suuri ryhmä voi työntää vaihdon toisen osapuolen aikakatkaisun yli, jolloin yhteys yrittää uudelleen tai näyttää yksinkertaisesti jumittuneen ilman mitään virhettä.

Korjaus on laskeutua kokoon, jota jokainen vastapuoli tukee ja jonka jokainen laite voi laskea mukavasti. 2048-bittinen RSA-avain ja 2048-bittinen ryhmä pysyvät laajasti yhteensopivana perustasona; suurempi auttaa vain, kun kaikki osapuolet ovat samaa mieltä ja CPU pystyy maksamaan sen joka uudelleenneuvottelussa. Kaikki tuon perustason yläpuolella on tarkoituksellinen vaihtokauppa, ei päivitys.

Koko ei ole pisteet, eikä vertailutaulukon suurin luku ole automaattisesti oikea valinta. Valitse pienin arvo, jonka käytäntösi sallii ja jonka kaikki vastapuolet hyväksyvät, ja mittaa sitten kättely sen sijaan, että olettaisit sen parantuneen. Pienempi ryhmä, joka silti ylittää aikakatkaisun, kertoo, että koko ei koskaan ollut koko tarina.

Nopea tapaus: ryhmä, jonka kirjasto hylkää

Nykyaikaiset OpenSSL-koonnokset hylkäävät pienimmät äärellisen kentän ryhmät suoraan, ja korotettu suojaustaso työntää alarajaa vielä ylemmäs. Reitittimen laiteohjelmisto, joka tuo mukanaan vuosikymmeniä vanhan parametritiedoston, on tavallinen lähde, ja oire on yhteys, joka epäonnistuu heti viestillä, joka nimeää ryhmän tai avaimen koon. Mikään siinä epäonnistumisessa ei ole ajoittaista, ja juuri se tekee siitä helposti tunnistettavan.

Korvaa tiedosto sen sijaan, että muokkaisit kokoonpanoa tarkistuksen ohittamiseksi. Luo ajantasainen ryhmä, validoi se ja asenna se sitten sinne, missä daemon todella lukee sen. Pidä vanha tiedosto, kunnes asiakas on yhdistänyt onnistuneesti uuteen:

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

Tarkistuskomento validoi tiedoston eikä tulosta mitään hyödyllistä, kun se menee läpi; listaus vahvistaa, että korvasit tiedoston, jonka palvelu lataa, etkä sen vieressä olevaa vanhentunutta kopiota. Osoita kokoonpano tuohon polkuun, käynnistä daemon uudelleen ja vahvista, että aiemmin epäonnistunut asiakas suorittaa nyt kättelyn loppuun.

Jos palvelin asettaa myös suojaustason tai varmenneprofiilin, lue ne ennen kuin päättelet, että ryhmä oli väärä. Profiili, joka vaatii tiukemman luokan, voi hylätä materiaalin, jonka oletus olisi hyväksynyt, ja tuon asetuksen poistaminen on kapeampi muutos kuin tarkistuksen poistaminen käytöstä maailmanlaajuisesti.

Valitse koko vastapuolelle ja laitteistolle

Ota selvää, mitä kaukopää kestää, ennen kuin luot mitään eksoottista. Laite, joka on liian vanha 2048-bittiselle ryhmälle, on vaihdettava laite, sillä palvelimen ohjaaminen heikompaan ryhmään muuttaa vain yhteensopivuusvalituksen katkokseksi. Kestävät korjaukset liikkuvat uudempaan ohjelmistoon, eivät vanhempiin parametreihin. Jokaisella tämän alan väliaikaisella poikkeuksella on tapana muuttua pysyväksi kokoonpanoksi.

Kun palvelimen CPU on raja, vaihda algoritmia sen sijaan, että laskeutuisit käytännön alapuolelle. Elliptisen käyrän avainvaihto, kuten X25519 on dramaattisesti halvempi kuin suuri äärellisen kentän ryhmä ja laajalti tuettu, mikä tekee siitä paremman vastauksen suorituskykyvalitukseen kuin pienempi RSA-moduuli.

Mitä ikinä valitset, testaa yhdellä oikealla yhteydellä ja seuraa, kuinka kauan kättely kestää, ei vain sitä, yhdistyykö se lopulta. Yhteys, joka onnistuu kahdessatoista sekunnissa, on saman perussyyn tulos kuin se, joka epäonnistuu viidessätoista.

Kirjoita valinta muistiin, jottei uudelleenrakennus voi kumota sitä

Pidä parametritiedosto kokoonpanonhallinnassa ja kirjoita sen viereen koko, syy ja päivämäärä. Uudelleenrakennettu palvelin, joka hiljaa luo omat oletuksensa, on tapa, jolla sama virhe palaa kuusi kuukautta myöhemmin ilman, että kukaan pystyy selittämään alkuperäistä päätöstä.

Kirjoita samat tiedot päätepisteen ja profiilin viereen, jotta katselmus ei joudu rakentamaan niitä uudelleen tiedoston koosta. Kun seuraava yhteys jumittuu, tuo muistiinpano on ero viiden minuutin tarkistuksen ja uuden tutkinnan välillä. Se myös estää seuraavaa insinööriä ratkaisemasta hidasta tapausta korjauksella, joka oli tarkoitettu nopealle.

Aiheeseen liittyvät artikkelit