På ein server heng klientar ei stund og koplar deretter til på nytt, og ein annan avviser tilkoplingar straks med ei melding om nøkkelstorleik. Dei ser ut som ulike feil, og dei er same feilen som peikar i motsette retningar. Handtrykkskryptografi har ein kostnad som veks med parameterstorleiken, og han har òg eit golv som moderne bibliotek ikkje går under. Å dimensjonere materialet er sjekklista, og det første punktet er å avgjere kva av dei to feila du faktisk har.

Les feilen før du genererer noko på nytt

Tidspunktet fortel deg det meste. Eit handtrykk som brukar fleire sekund og deretter døyr, tyder vanlegvis at utrekninga overlevde tolmodet til motparten, noko som peikar på parameterar som er for store for maskinvara eller for tidsavbrotet. Ei straks-avvising som namngir ein nøkkel- eller gruppestorleik, peikar den andre vegen, mot materiale som biblioteket ikkje vil godta i det heile.

Desse to treng motsette rettingar, og det er her dei fleste forsøka går gale. Å generere 8192-bits parameterar på nytt på ein klient som allereie har avvist ei lita gruppe, gjer det langsame tilfellet verre utan å gjere noko for det raske. Skriv ned kva symptom du såg, før du rører ei fil.

Sjekk deretter kva motparten blir beden om. Ein server sett opp for ei stor gruppe i eit endeleg felt tvingar kvar klient til å bruke same CPU-tid ved kvar reforhandling, ikkje berre ved tilkopling. Viss problemet dukkar opp med eit fast intervall i staden for ved oppstart, er det intervallet eit sterkt hint om kva innstilling som er dyr. Reforhandlinga gjer heile utrekninga om att, så ein stans som kjem attende kvar time, er vanlegvis same kostnaden betalt på nytt.

Det langsame tilfellet: materiale maskinvara ikkje har råd til

Arbeidet med Diffie-Hellman og RSA veks raskt med nøkkelstorleiken, og alt skjer før noko trafikk flyt gjennom tunnelen. På ein liten ruter eller ein klient med låg yting kan ei stor nok gruppe skyve utvekslinga forbi tidsavbrotet til den andre sida, slik at tilkoplinga prøver på nytt eller rett og slett ser ut til å henge utan nokon feil.

Rettinga er å gå ned til ein storleik som kvar motpart støttar og kvar eining kan rekne komfortabelt. Ein RSA-nøkel på 2048 bit og ei gruppe på 2048 bit er framleis ei breitt kompatibel grunnlinje; større hjelper berre når alle partar er samde og CPU-en kan betale for det ved kvar reforhandling. Alt over den grunnlinja er eit medvite bytte, ikkje ei oppgradering.

Storleik er ikkje ein poengsum, og det største talet i ein samanlikningstabell er ikkje automatisk det rette valet. Vel den minste verdien policyen din tillèt og alle motpartar godtek, og mål deretter handtrykket i staden for å gå ut frå at det vart betre. Ei mindre gruppe som framleis går ut på tid, fortel deg at storleiken aldri var heile historia.

Det raske tilfellet: ei gruppe biblioteket avviser

Moderne OpenSSL-bygg avviser dei minste gruppene i endelege felt rett og slett, og eit heva tryggleiksnivå skyv golvet endå høgare opp. Ruter-fastvare som tar med ei tiår gamal parameterfil, er den vanlege kjelda, og symptomet er ei tilkopling som feilar med ein gong med ei melding som namngir gruppa eller nøkkelstorleiken. Ingenting ved den feilen er periodisk, og det er nettopp det som gjer han lett å kjenne att.

Erstatt fila i staden for å redigere konfigurasjonen for å hoppe over kontrollen. Generer ei gjeldande gruppe, valider ho, og installer ho der daemonen faktisk les ho. Hald på den gamle fila til ein klient har kopla til med den nye:

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

Kontrollkommandoen validerer fila og skriv ikkje ut noko nyttig når ho passerer; oppføringa stadfestar at du erstatta fila tenesta lastar, ikkje ein utdatert kopi ved sida av. Peik konfigurasjonen mot den stien, start daemonen på nytt, og stadfest at ein klient som tidlegare feila, no fullfører handtrykket.

Viss serveren òg set eit tryggleiksnivå eller ein sertifikatprofil, les dei før du konkluderer med at gruppa var feil. Ein profil som krev ein strengare klasse kan avvise materiale som standarden ville ha godteke, og å fjerne den innstillinga er ei smalare endring enn å slå av kontrollen globalt.

Vel ein storleik for motparten og maskinvara

Finn ut kva den fjerne enden toler før du genererer noko eksotisk. Ei eining som er for gamal for ei gruppe på 2048 bit, er ei eining som bør bytast, sidan det berre gjer ei kompatibilitetsklage om til eit avbrot å peike serveren mot ei svakare gruppe. Varige rettingar flyttar seg mot nyare programvare, ikkje eldre parameterar. Kvart mellombels unntak på dette feltet har ein tendens til å bli den permanente konfigurasjonen.

Der CPU-en til serveren er grensa, endre algoritmen i staden for å gå under policyen. Ein nøkkelutveksling med elliptisk kurve som X25519 er dramatisk billegare enn ei stor gruppe i eit endeleg felt og er breitt støtta, noko som gjer han til eit betre svar på ei ytingsklage enn ein mindre RSA-modul.

Uansett kva du vel, test med éi ekte tilkopling og sjå kor lang tid handtrykket tar, ikkje berre om det til slutt koplar til. Ei tilkopling som lukkast på tolv sekund, har same grunnårsak som ei som feilar på femten.

Skriv ned valet så ein gjenoppbygging ikkje kan oppheve det

Hald parameterfila under konfigurasjonsstyring, og skriv storleiken, årsaka og datoen ved sida av. Ein gjenoppbygd server som stille genererer sine eigne standardar, er måten same feil kjem attende seks månader seinare utan at nokon kan forklare den opphavlege avgjerda.

Skriv dei same opplysningane ved sida av endepunktet og profilen, slik at ein gjennomgang ikkje må rekonstruere dei frå ein filstorleik. Når den neste tilkoplinga stansar, er den noten skilnaden mellom ein fem minutts sjekk og ei ny undersøking. Det hindrar òg den neste ingeniøren i å løyse det langsame tilfellet med ei retting som var meint for det raske.

Relaterte artiklar