To maskiner, der kun taler med hinanden, kan beholde den topologi og stadig få forhandlede trafiknøgler. Netværksformen og beskyttelsestilstanden er uafhængige valg, og det er sammenblandingen af dem, der får folk til at forsøge at rotere en statisk hemmelighed ved at udskifte en fil, mens begge daemons kører videre. At udskifte nøglefilen under et kørende par roterer ingenting. Den statiske nøgletilstand, som OpenVPN 2.6 markerer som forældet, holder én nøgle i tunnelens levetid, så filen på disken og nøglen i hukommelsen stemmer først overens igen, når begge ender er genstartet. Hvis automatisk fornyelse er kravet, skal beskyttelsestilstanden ændres.

Hvad den statiske nøgletilstand ikke kan

I hemmelig tilstand deler begge peers en forudelt nøgle, der krypterer og autentificerer tunnelen direkte. Der er ingen handshake, så der er ingen mekanisme for nogen side til at foreslå nyt nøglemateriale, bevise en identitet eller komme sig over en uoverensstemmelse uden operatørens indgriben. Begge egenskaber følger af fraværet af en kontrolkanal snarere end af en manglende indstilling, og ingen konfigurationsflag føjer en til denne tilstand.

OpenVPN 2.6-manualen er tydelig om, at nøglen består, indtil en ny genereres. Det er acceptabelt for et laboratorielink eller et fast par apparater med en dokumenteret rotationsprocedure, og det er uacceptabelt, hvor en langlivet hemmelighed er en reel risiko. En filudskiftning skaber ikke en ny nøgle til et kørende par; den skaber to peers, der er uenige. At erstatte filen tilføjer derfor et afbrud uden at tilføje rotation.

Der er heller ingen forestilling om peer-identitet ud over besiddelsen af filen. Enhver, der har nøglen, er en peer, og intet i tunnelen registrerer, hvilken side der er hvilken, så tilbagekaldelse er alt eller intet.

Skift til TLS uden at redesigne linket

TLS-tilstand tilføjer en kontrolkanal og dermed evnen til at forhandle datakanalnøgler. I en punkt-til-punkt-udrulning tager den ene side serverrollen og den anden klientrollen, men topologien forbliver et link mellem to peers: hver side kender den andens endepunkt, og der opstår ingen pulje eller multibruger-tjeneste. Rollerne er en handshake-detalje, ikke en ny arkitektur.

Giv hver maskine sin egen identitet. Hver side har brug for et certifikat og en privat nøgle, det tillidsanker, der validerer den anden, og en peer-verifikationsregel, der navngiver, hvem der forventes. Genbrug ikke den ene peers private nøgle på den anden for at spare tid; det gør to identiteter til én og fjerner evnen til at tilbagekalde hver side separat. Tilmelding er stedet at gøre det rigtigt, fordi at rette det senere betyder at genudstede certifikater.

Hold netværkskontrakten uændret, mens beskyttelsen ændres. De samme tunneladresser, ruter og tilladte tjenester bør gælde før og efter, så en fejl under migreringen er et beskyttelsesproblem frem for en forklædt routing-overraskelse. Skriv adresserne og ruterne ned før ændringen; at sammenligne dem bagefter er hurtigere end at rekonstruere dem fra hukommelsen.

Nogle udrulninger beskytter også kontrolkanalen med sin egen statiske nøgle, som ikke roterer med datakanalen. Den nøgle bevogter handshaken frem for nyttelasten, så en kompromittering af den blotlægger forhandlingen frem for trafikken. Opbevar den adskilt fra datakanalens materiale, og giv den en udskiftningsdato, som en navngivet person ejer. At rotere den betyder at genstarte begge peers i et koordineret vindue, og derfor fortjener den en kalenderpost frem for en erindring.

Hvem fornyer hvad, og hvornår

I TLS-tilstand styres fornyelsen af konfigurerede grænser: et tidsinterval, et byteantal eller et pakkeantal. Den dokumenterede tidskontrol er det, de fleste udrulninger stoler på, og den lavere effektive værdi på tværs af de to peers kan starte udskiftningen, så at hæve den på kun den ene side holder ikke begivenheden tilbage. Volumenbaserede grænser findes, fordi et travlt link kan udtømme en nøgle længe før uret gør det. Ingen af grænserne er et sundhedstjek, og ingen af dem fortæller dig, at en fornyelse lykkedes.

Derfor er det misvisende at diagnosticere en tilbagevendende genforhandling ud fra en enkelt konfigurationsfil. Læs indstillingerne på begge peers, og se derefter på overgangen i loggen i stedet for at antage en fejl. En fornyelse, der gennemføres rent, ser ud som et kort udbrud af kontrolkanaltrafik, ikke som en afbrydelse.

Hold objekterne adskilt i hovedet. Certifikatet beviser langsigtet identitet og udskiftes efter en tidsplan, du kontrollerer. Datakanalnøglen opdateres automatisk, og en separat autentificeringsudveksling, hvis udrulningen kræver en, følger kontopolitikken og kan have brug for sine egne aftaler til senere udvekslinger.

At deaktivere fornyelse helt ved at sætte intervallet til nul er ikke en løsning på en støjende log. Det forvandler en sund livscyklushændelse til en permanent nøgle, hvilket bringer dig tilbage til den egenskab, du forsøgte at forlade.

At acceptere ændringen

Byg den nye konfiguration ud fra den installerede udgivelses understøttede eksempel frem for et gammelt minimalt uddrag, hvis algoritmer og filstier er arvet fra et andet sted. Koordiner skiftet, så begge peers ændres sammen, og hold en godkendt gendannelsesvej, hvis den ene side ikke kommer op. Tag linket ned med vilje i stedet for at vente på et afbrud for at teste tilbagerulningen. En tilbagerulning, du har øvet, er mere værd end en tilbagerulning, du har beskrevet.

Test tre ting: indledende identitetsverifikation lykkes, den tilsigtede applikationsflow virker, og en kontrolleret fornyelse sker uden at miste trafik. Læs derefter overgangen i loggen for, hvad den faktisk beviser: en ny nøgleidentifikator betyder, at peerne gennemførte en udskiftning, ikke at tunnelen blev genoprettet. Behandl det som bevis for ét skridt, og kontroller trafiktællerne, før du kalder migreringen færdig.

Hvad et løfte om nul afbrydelser ville skjule, er den fejl, du endnu ikke har set. En fornyelse, der fejler, et certifikat, der udløber, eller en path-fejl kan stadig forstyrre linket, og ingen af dem udelukkes af en ren testkørsel. Den egenskab, der er værd at designe for, er snævrere og mere nyttig: rutinemæssig nøgleudskiftning holder op med at være en manuel filudskiftning.

Relaterede artikler