Symmetrisk vs. open-nøkkel-kryptering i VPN: kva kvar gjer
Ein VPN autentiserer partar med opne nøklar og krypterer deretter pakkar med avleidde sesjonsnøklar. Handsama sertifikat og trafikknøklar som skilde objekt.
Folk skildrar ein VPN som «den som brukar open-nøkkel-kryptering» og føresteller seg så at kvar pakke blir låst med sertifikatet til tenaren. Det bilete er gale på ein måte som betyr noko når du les ei konfigurasjonsfil eller eit pakkeopptak. Den opne nøkkelhalvdelen av VPN-en handlar om å prove kven motparten er og bli samde om hemmeleg materiale; den symmetriske halvdelen er det som faktisk vernar trafikken, pakke for pakke, gjennom heile levetida til sesjonen.
Dei to halvdelane har ulik levetid, ulike feilmodus og ulike ting som trygt kan publiserast. Når du skil dei, sluttar spørsmål som «er RSA 2048 svakare enn AES-128» å forvirre, fordi dei aldri var samanliknbare.
Tre operasjonar som blir blanda saman
Open-nøkkel-kryptografi er ein paraply over minst tre ulike operasjonar. Ein signatur provar at innehavaren av ein privat nøkkel godkjende ei bestemd melding. Nøkkelavtale lèt to partar leie ut ei felles løyndom frå verdiar dei byter opent. Open-nøkkel-kryptering gøymer data under den opne nøkkelen til nokon, slik at berre den private nøkkelen kan opne dei.
VPN-handtrykk brukar stort sett dei to fyrste. Eit sertifikat er ikkje ein krypteringsnøkkel; det er ei signert fråsegn som bind eit namn til ein open nøkkel og lèt den andre sida avgjere om ho skal stole på nøkkelen ho nett fekk. Oppsettet av TLS 1.3-nøklar byggjer til dømes på (EC)DHE-nøkkelavtale pluss sertifikatsignaturar, ikkje på å kryptere sesjonen med den opne nøkkelen til tenaren.
Kva handtrykket faktisk produserer
I eit moderne handtrykk lagar kvar side eit efemert nøkkelpar, byter dei opne halvdelane og reknar ut ei felles løyndom som aldri går over leidninga. Den løyndommen går så gjennom ein nøkkelavleiingsfunksjon for å lage skilde nøklar for kvar retning, i tillegg til nonce-verdiane og IV-materialet som postlaget treng. WireGuard gjer dette med sin Noise-baserte konstruksjon; TLS 1.3 gjer det med HKDF over handtrykkstranskriptet.
Den langsiktige legitimasjonen — sertifikat og privat nøkkel, eller ein statisk WireGuard-nøkkel — autentiserer den utvekslinga. Han signerer eller blandar seg inn i transkriptet slik at ein framand ikkje kan fullføre handtrykket i staden for motparten. Etterpå gjer ikkje legitimasjonen arbeid per pakke. Om han gjorde det, ville kvar pakke krevje ein privatsnøkkeloperasjon, og ein travel tunnel ville vere avgrensa av den tregaste operasjonen i stakken.
To biverknader følgjer. For det fyrste er sesjonsnøklane ferske kvar gong, så ein åtakar som seinare stel den langsiktige nøkkelen ikkje kan dekryptere tidlegare innspelte sesjonar, så lenge avtalen var efemær. For det andre kompromitterer ein lekt sesjonsnøkkel éin sesjon, ikkje identiteten.
Kvifor store datamengder brukar symmetriske nøklar
Symmetriske chiffre handterer volum godt: AES-GCM eller ChaCha20-Poly1305 handsamar kvar pakke med ein nøkkel som alt ligg i minnet, autentiserer hovudet og aukar ein teljar. Mottakarsida kontrollerer nonce og autentiseringstaggen og kastar alt som feilar eller blir gjenteke. Det er billeg nok til å gå i linjehastigheit på vanleg maskinvare, og den same konstruksjonen gjev konfidensialitet og integritet i éin gjennomgang.
Konstruksjonen er også staden der dei fleste implementasjonsfeila bur. Ein gjenteken nonce i GCM bryt konfidensialitet og autentisitet på éin gong, så protokollane leier ut nøklar per retning og held ein eksplisitt teljar eller epoke. Om du les eit pakkeopptak og lengda på chifferteksten stemmer med klarteksten pluss eit fast tillegg, er det det symmetriske laget som arbeider, ikkje ein open-nøkkel-operasjon per pakke.
Levetid, nøkkelfornying og framoverretta løyndom
Sesjonsnøklar er meinte å gå ut. TLS 1.3 lèt ei KeyUpdate-melding rulle trafikknøklane; WireGuard fornyar ein sesjon etter konfigurert tid eller meldingsmengd og held den gamle kort for pakkar undervegs. OpenVPN forhandlar på nytt om nøklane til datakanalen etter ein plan, med reneg-sec som styrer intervallet.
Ingen av desse rotasjonane er det same som å fornye eit sertifikat. Eit sertifikat kan vere gyldig i eitt år medan sesjonsnøklane endrar seg kvart par minutt, og eit sertifikat kan bytast ut utan å røre nøklane til tunnelen som køyrer. Når du planlegg utløp, spør kva objekt du roterer; svaret avgjer om klientane koplar til på nytt eller berre fornyar nøklar.
Les konfigurasjon og diagnostikk utan å blande objekt
I praksis vel du ein komplett protokoll og dei støtta primitive hans, ikkje set saman din eigen. --tls-crypt-nøkkelen i OpenVPN vernar kontrollkanalen; datakanalen brukar forhandla symmetriske chiffre. PrivateKey- og PublicKey-oppføringane i WireGuard er identitetsmateriale, medan transportnøklane blir leidde ut internt. Å lese desse felta som same type løyndom fører til feil som å lime ein open nøkkel der ein privat skal vere.
Hald ope materiale skilt frå privat. Eit sertifikat, ein open WireGuard-nøkkel og eit fingeravtrykk er trygge å dele i ein sak. Ein privat nøkkel, ein førehandsdelt nøkkel og ein eksportert sesjonsnøkkel er det ikkje. Når du samanliknar styrke, samanlikn innanfor éin type: ein elliptisk-kurve-identifikator, ein RSA-modulusstorleik og ein AES-nøkkelstorleik måler ulike ting under ulike føresetnader. TLS 1.3-spesifikasjonen er ein nyttig referanse for korleis dei to laga passar saman, sjølv når tunnelen din ikkje er TLS.