Du kan gi den offentlige VPN-nøkkelen din til en peer, en leverandør eller et forum, og tunnelen holder fortsatt. Den private nøkkelen kan du ikke gi videre, selv ikke til støttepersonell, uten å overlevere identiteten den nøkkelen beviser. Beslutningen blir sjelden så ren, fordi folk blander sammen hvilken halvdel av paret de ser på, og fordi enkelte utplasseringer behandler den offentlige verdien som et navn. Tre kontroller avgjør saken: hvilken halvdel du har, hva utplasseringen binder den til, og hva erstatningen koster.

Kontroll én: hvilken halvdel av paret som ligger i utklippstavlen

Asymmetriske nøkler kommer i par, og retningen på utledningen er hele poenget. I WireGuard er den private nøkkelen 32 tilfeldige byte, og den offentlige nøkkelen beregnes fra den; motsatt vei går det ikke. wg genkey skriver den private verdien, wg pubkey utleder den offentlige, og bare den andre hører hjemme i en melding til en peer.

wg genkey | tee private.key | wg pubkey > public.key
chmod 600 private.key
openssl x509 -noout -pubkey -in server.crt

Sertifikatverdenen bruker samme todeling med flere bevegelige deler. Et serversertifikat bærer en offentlig nøkkel pluss navn, og det signeres av en privat CA-nøkkel som aldri forlater CA-en. En klient som verifiserer den serveren, trenger CA-sertifikatet, som er offentlig, og har ingen nytte av CAs private signeringsnøkkel.

Hvis du er usikker på hvilken verdi du holder, se etter markøren og ikke filnavnet. En PEM-blokk som begynner med -----BEGIN PRIVATE KEY-----, eller den eldre BEGIN RSA PRIVATE KEY-formen, er den hemmelige halvdelen. En verdi du kan lime inn uten den markøren, er en kandidat for deling, med forbehold om de to neste kontrollene.

Kontroll to: hva utplasseringen binder til den offentlige verdien

Kryptografisk sikkerhet og anonymitet er forskjellige egenskaper. En WireGuard-peers offentlige nøkkel er en stabil identifikator i utplasseringen: serverkonfigurasjonen lister den opp, håndtrykket navngir den, og en administrator som leser logger ser den samme strengen hver gang den peeren kobler til. Publiserer du nøkkelen ved siden av et spørsmål om oppsettet ditt, har du knyttet den strengen til alt annet i innlegget.

Sertifikater lekker identitet ved design. Subject og subject alternative name er lesbare, og for offentlig betrodde TLS-sertifikater publiseres selve sertifikatet i Certificate Transparency-logger, som er søkbare. Ingenting av dette avslører en privat nøkkel, og alt av det avslører en relasjon.

Her skiller utplasseringene seg, og det avgjør svaret. En engangs testpeer på en labserver er et annet objekt enn nøkkelen som identifiserer et selskaps site-to-site-endepunkt, selv om bytene ser identiske ut.

Kontroll tre: hva du kan tilbakekalle, og hvor raskt

Den tredje kontrollen skiller de to halvdelene helt. En offentlig nøkkel som er publisert, kan erstattes etter din tidsplan. En privat nøkkel som er publisert, kan ikke tilbakekalles: å slette din kopi rører ikke kopier som allerede er tatt, og hver peer som stolte på den, stoler nå på noe en utenforstående har.

Tilbakekalling er en konfigurasjonshandling, ikke en kryptografisk. WireGuard leverer ingen tilbakekallingsliste, så du fjerner peeren:

wg set wg0 peer <peer-public-key> remove
# then delete the [Peer] block from the config so it does not return on restart

OpenVPN utplasseringer bygget på sertifikater tilbakekaller sertifikatet og publiserer en CRL som serveren faktisk sjekker gjennom crl-verify. Uten den direktivet er tilbakekallingslisten bare dekorasjon. Uansett er rekkefølgen den samme: utsted en erstatning, distribuer den via den støttede kanalen, og pensjoner den gamle identiteten.

Feilene som kommer av å slå de tre kontrollene sammen

De fleste reelle lekkasjer er ikke en person som bestemmer seg for å publisere en privat nøkkel. De er en hel profil limt inn i et forum: en WireGuard .conf med en PrivateKey linje, en .ovpn pakke med en innebygd nøkkelblokk, eller et skjermbilde av et klientvindu som tilfeldigvis tar med nøkkelfeltet. Den offentlige verdien var sannsynligvis grei; den reiste sammen med delen som ikke var det.

Støttearbeidsflyter er den andre kilden. Ingen legitim verifisering trenger den private nøkkelen din, fordi den andre siden utleder det den trenger fra den offentlige halvdelen. Når et skjema eller en person ber om den private verdien, er det riktige svaret den offentlige verdien pluss den lokale kommandoen som lager den.

Logger og skjermbilder hører i samme kategori. Diagnostisk utdata kan bære nøkkelmateriale, sesjonsidentifikatorer og interne adresser, og å publisere alt dette for å få svar på ett spørsmål bytter en liten bekvemmelighet mot en større eksponering.

Etter at en privat verdi har lekket, pensjoner identiteten

Hvis en privat verdi faktisk kom ut, behandle den identiteten som pensjonert. Generer et nytt par, installer den offentlige halvdelen der peerne forventer den, fjern den gamle peeren eller tilbakekall det gamle sertifikatet, og sjekk stedene du publiserte det. Du kan ikke slette kopier du ikke kontrollerer, så fjerning handler om fremtiden, ikke fortiden.

Skriv så ned distribusjonen: hvilken nøkkel som hører til hvilken enhet, hvem som holder en kopi, hvordan en erstatning leveres, og hvem som fjerner en pensjonert peer. Det er delene folk glemmer, og de avgjør hvor lenge en lekkasje forblir nyttig.

Relaterte artikler