Ključi z 8192 biti ustavijo rokovanje; DH s 1024 biti je zavrnjen
Dve napaki velikosti z nasprotnimi popravki: prevelik ključ kuri čas rokovanja, dokler partner ne doseže časovne omejitve, medtem ko je majhna skupina DH zavrnjena, še preden se začne.
Na enem strežniku odjemalci za nekaj časa obvisijo in se nato znova povežejo, drugi pa takoj zavrača povezave s sporočilom o velikosti ključa. Videti so kot različne napake, in to je ista napaka, obrnjena v nasprotni smeri. Kriptografija rokovanja ima strošek, ki raste z velikostjo parametrov, in tudi spodnjo mejo, pod katero se sodobne knjižnice ne spustijo. Določitev velikosti materiala je kontrolni seznam, prva točka pa je odločitev, katero od dveh napak v resnici imate.
Preberite odpoved, preden karkoli znova ustvarite
Čas vam pove večino. Rokovanje, ki traja nekaj sekund in nato umre, običajno pomeni, da je izračun presegel potrpežljivost partnerja, kar kaže na prevelike parametre za strojno opremo ali za časovno omejitev. Takojšnja zavrnitev, ki navaja velikost ključa ali skupine, kaže v drugo smer, na material, ki ga knjižnica sploh ne bo sprejela.
Ta dva potrebujeta nasprotna popravka, in prav tu se zmoti večina poskusov. Ponovno ustvarjanje parametrov z 8192 biti na odjemalcu, ki je že zavrnil majhno skupino, poslabša počasni primer, za hitrega pa ne naredi ničesar. Zapišite, kateri simptom ste opazili, preden se dotaknete datoteke.
Nato preverite, kaj se zahteva od partnerja. Strežnik, nastavljen za veliko skupino končnega polja, prisili vsakega odjemalca, da pri vsakem ponovnem dogovarjanju porabi enak procesorski čas, ne le pri povezavi. Če se težava pojavlja v rednih intervalih namesto ob zagonu, je ta interval močan namig, katera nastavitev je draga. Ponovno dogovarjanje ponovi celoten izračun, zato je zastoj, ki se vrača vsako uro, običajno isti strošek, plačan znova.
Počasni primer: material, ki si ga strojna oprema ne more privoščiti
Delo Diffie-Hellman in RSA hitro raste z velikostjo ključa, in vse to se zgodi, preden skozi tunel steče kakršen koli promet. Na majhnem usmerjevalniku ali odjemalcu z malo moči lahko dovolj velika skupina potisne izmenjavo čez časovno omejitev druge strani, tako da povezava poskusi znova ali preprosto izgleda zataknjena brez kakršne koli napake.
Popravek je spustiti se na velikost, ki jo podpira vsak partner in jo vsaka naprava zmore udobno izračunati. Ključ RSA z 2048 biti in skupina z 2048 biti ostaneta široko združljiva osnovna črta; večje pomaga le, ko se vse strani strinjajo in procesor to lahko plača pri vsakem ponovnem dogovarjanju. Vse nad to osnovno črto je namerno trgovanje, ne nadgradnja.
Velikost ni rezultat in največje število v primerjalni tabeli ni samodejno prava izbira. Izberite najmanjšo vrednost, ki jo vaša politika dovoljuje in jo vsi partnerji sprejmejo, nato pa izmerite rokovanje, namesto da bi predpostavljali, da se je izboljšalo. Manjša skupina, ki še vedno preseže čas, vam pove, da velikost nikoli ni bila vsa zgodba.
Hitri primer: skupina, ki jo knjižnica zavrne
Sodobne različice OpenSSL najmanjše skupine končnega polja kar zavrnejo, dvignjena varnostna raven pa spodnjo mejo potisne še višje. Strojna programska oprema usmerjevalnika, ki prinaša desetletja staro datoteko parametrov, je običajni vir, simptom pa je povezava, ki takoj spodleti s sporočilom, ki navaja skupino ali velikost ključa. Nič pri tej odpovedi ni občasno, in prav zato jo je lahko prepoznati.
Zamenjajte datoteko, namesto da bi urejali konfiguracijo in obšli preverjanje. Ustvarite trenutno skupino, jo overite in nato namestite tja, kjer jo demon v resnici bere. Obdržite staro datoteko, dokler se odjemalec uspešno ne poveže z novo:
openssl dhparam -out /etc/openvpn/ffdhe2048.pem 2048
openssl dhparam -in /etc/openvpn/ffdhe2048.pem -check -noout
ls -l /etc/openvpn/ffdhe2048.pemPreveritveni ukaz overi datoteko in ob uspehu ne natisne nič koristnega; seznam potrdi, da ste zamenjali datoteko, ki jo storitev nalaga, in ne zastarele kopije poleg nje. Usmerite konfiguracijo na to pot, znova zaženite demona in potrdite, da odjemalec, ki je prej spodletel, zdaj dokonča rokovanje.
Če strežnik nastavlja tudi varnostno raven ali profil potrdila, ju preberite, preden sklepate, da je bila skupina napačna. Profil, ki zahteva strožji razred, lahko zavrne material, ki bi ga privzeto sprejel, in odstranitev te nastavitve je ožja sprememba kot globalno izklop preverjanja.
Izberite velikost za partnerja in strojno opremo
Ugotovite, kaj prenese oddaljeni konec, preden ustvarite kaj eksotičnega. Naprava, prestara za skupino z 2048 biti, je naprava za zamenjavo, saj usmeritev strežnika na šibkejšo skupino le spremeni pritožbo glede združljivosti v izpad. Trajni popravki gredo k novejši programski opremi, ne k starejšim parametrom. Vsaka začasna izjema na tem področju ima navado, da postane trajna konfiguracija.
Kjer je meja procesor strežnika, spremenite algoritem, namesto da bi se spustili pod politiko. Izmenjava ključev na eliptični krivulji, kot je X25519, je dramatično cenejša od velike skupine končnega polja in je široko podprta, zato je boljši odgovor na pritožbo glede zmogljivosti kot manjši modul RSA.
Karkoli izberete, preizkusite z eno resnično povezavo in opazujte, koliko časa traja rokovanje, ne le, ali se na koncu poveže. Povezava, ki uspe v dvanajstih sekundah, ima isti temeljni vzrok kot tista, ki spodleti pri petnajstih.
Zapišite izbiro, da je ponovna gradnja ne bo mogla razveljaviti
Hranite datoteko parametrov pod upravljanjem konfiguracije in ob njej zapišite velikost, razlog in datum. Znova zgrajen strežnik, ki tiho ustvari svoje privzete vrednosti, je pot, po kateri se ista napaka vrne šest mesecev pozneje in nihče ne more pojasniti prvotne odločitve.
Zapišite iste podatke ob končni točki in profilu, da jih pregled ne bo moral obnavljati iz velikosti datoteke. Ko se naslednja povezava zatakne, je ta zapisek razlika med petminutnim preverjanjem in novo preiskavo. Prepreči tudi, da bi naslednji inženir počasni primer rešil s popravkom, namenjenim hitremu.