På én server henger klienter en stund og kobler deretter til på nytt, og en annen avviser tilkoblinger umiddelbart med en melding om nøkkelstørrelse. De ser ut som forskjellige feil, og de er samme feil som peker i motsatte retninger. Håndtrykkskryptografi har en kostnad som vokser med parameterstørrelsen, og den har også et gulv som moderne biblioteker ikke går under. Å dimensjonere materialet er sjekklisten, og det første punktet er å avgjøre hvilken av de to feilene du faktisk har.

Les feilen før du genererer noe på nytt

Tidspunktet forteller deg det meste. Et håndtrykk som bruker flere sekunder og deretter dør, betyr vanligvis at beregningen overlevde motpartens tålmodighet, noe som peker på parametere som er for store for maskinvaren eller for tidsavbruddet. En umiddelbar avvisning som navngir en nøkkel- eller gruppestørrelse, peker den andre veien, mot materiale som biblioteket ikke vil godta i det hele tatt.

Disse to trenger motsatte rettelser, og det er her de fleste forsøk går galt. Å generere 8192-bits parametere på nytt på en klient som allerede har avvist en liten gruppe, gjør det langsomme tilfellet verre uten å gjøre noe for det raske. Skriv ned hvilket symptom du så, før du rører en fil.

Sjekk deretter hva motparten blir bedt om. En server satt opp for en stor gruppe i et endelig felt tvinger hver klient til å bruke samme CPU-tid ved hver reforhandling, ikke bare ved tilkobling. Hvis problemet dukker opp med et fast intervall i stedet for ved oppstart, er det intervallet et sterkt hint om hvilken innstilling som er dyr. Reforhandlingen gjentar hele beregningen, så en stans som kommer tilbake hver time, er vanligvis samme kostnad betalt på nytt.

Det langsomme tilfellet: materiale maskinvaren ikke har råd til

Arbeidet med Diffie-Hellman og RSA vokser raskt med nøkkelstørrelsen, og alt skjer før noen trafikk flyter gjennom tunnelen. På en liten ruter eller en klient med lav ytelse kan en stor nok gruppe skyve utvekslingen forbi den andre sidens tidsavbrudd, slik at tilkoblingen prøver på nytt eller rett og slett ser ut til å henge uten noen feil.

Rettelsen er å gå ned til en størrelse som hver motpart støtter og hver enhet kan beregne komfortabelt. En RSA-nøkkel på 2048 bit og en gruppe på 2048 bit er fortsatt en bredt kompatibel grunnlinje; større hjelper bare når alle parter er enige og CPU-en kan betale for det ved hver reforhandling. Alt over den grunnlinjen er en bevisst avveining, ikke en oppgradering.

Størrelse er ikke en poengsum, og det største tallet i en sammenligningstabell er ikke automatisk det riktige valget. Velg den minste verdien policyen din tillater og alle motparter godtar, og mål deretter håndtrykket i stedet for å anta at det ble bedre. En mindre gruppe som fortsatt går ut på tid, forteller deg at størrelsen aldri var hele historien.

Det raske tilfellet: en gruppe biblioteket avviser

Moderne OpenSSL-bygg avviser de minste gruppene i endelige felt rett og slett, og et hevet sikkerhetsnivå skyver gulvet enda høyere opp. Ruter-fastvare som tar med en tiår gammel parameterfil, er den vanlige kilden, og symptomet er en tilkobling som feiler med en gang med en melding som navngir gruppen eller nøkkelstørrelsen. Ingenting ved den feilen er periodisk, og det er nettopp det som gjør den lett å kjenne igjen.

Erstatt filen i stedet for å redigere konfigurasjonen for å hoppe over kontrollen. Generer en gjeldende gruppe, valider den, og installer den der daemonen faktisk leser den. Behold den gamle filen til en klient har koblet 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 filen og skriver ikke ut noe nyttig når den passerer; oppføringen bekrefter at du erstattet filen tjenesten laster, ikke en utdatert kopi ved siden av. Pek konfigurasjonen mot den stien, start daemonen på nytt, og bekreft at en klient som tidligere feilet, nå fullfører håndtrykket.

Hvis serveren også setter et sikkerhetsnivå eller en sertifikatprofil, les dem før du konkluderer med at gruppen var feil. En profil som krever en strengere klasse kan avvise materiale som standarden ville ha godtatt, og å fjerne den innstillingen er en smalere endring enn å slå av kontrollen globalt.

Velg en størrelse for motparten og maskinvaren

Finn ut hva den fjerne enden tåler før du genererer noe eksotisk. En enhet som er for gammel for en gruppe på 2048 bit, er en enhet som bør byttes, siden det bare gjør en kompatibilitetsklage om til et avbrudd å peke serveren mot en svakere gruppe. Varige rettelser beveger seg mot nyere programvare, ikke eldre parametere. Hvert midlertidige unntak på dette feltet har en tendens til å bli den permanente konfigurasjonen.

Der serverens CPU er grensen, endre algoritmen i stedet for å gå under policyen. En nøkkelutveksling med elliptisk kurve som X25519 er dramatisk billigere enn en stor gruppe i et endelig felt og er bredt støttet, noe som gjør den til et bedre svar på en ytelsesklage enn en mindre RSA-modul.

Uansett hva du velger, test med én ekte tilkobling og se hvor lang tid håndtrykket tar, ikke bare om det til slutt kobler til. En tilkobling som lykkes på tolv sekunder, har samme grunnårsak som en som feiler på femten.

Skriv ned valget så en gjenoppbygging ikke kan oppheve det

Hold parameterfilen under konfigurasjonsstyring, og skriv størrelsen, årsaken og datoen ved siden av. En gjenoppbygd server som stille genererer sine egne standarder, er måten samme feil kommer tilbake seks måneder senere uten at noen kan forklare den opprinnelige beslutningen.

Skriv de samme opplysningene ved siden av endepunktet og profilen, slik at en gjennomgang ikke må rekonstruere dem fra en filstørrelse. Når den neste tilkoblingen stanser, er den noten forskjellen mellom en fem minutters sjekk og en ny undersøkelse. Det hindrer også den neste ingeniøren i å løse det langsomme tilfellet med en rettelse som var ment for det raske.

Relaterte artikler