Kvar skal ein privat VPN-nøkkel bu: fil, CNG eller TPM?
Vel mellom ei nøkkelfil, eit ikkje-eksporterbart programvarelager og ein TPM for ein VPN-identitet, og prov valet med kommandoar og ein tilbakerullingsplan.
To spørsmål avgjer kvar ein privat VPN-nøkkel høyrer heime: om nøkkelmaterialet kan kopierast frå verten, og om ein prosess kan bruke han utan nokon ved tastaturet. Ein marknadsføringsetikett på eit lager svarar ikkje på nokon av dei. Ein tunneldaemon som må kome tilbake etter ein omstart treng ubemanna bruk, noko som utelukkar alt som er bunde til ein PIN-kode som eit menneske tastar inn.
Vel mellom kopiering og bruk
Kopiering og bruk feilar ulikt, så handsam dei som to krav i staden for eitt. Ein åtakar som kan lese nøkkelbyta, ber identiteten til ein annan vert, og den opphavlege maskina merkar ingenting. Ein åtakar som ikkje kan lese byta, men kan nå signeringsprosessen, autentiserer seg framleis så lenge den tilgangen varer.
Ei filnøkkel er trivielt kopierbar, noko som òg gjer henne enklast å sikkerheitskopiere og gjenopprette. Eit programvarenøkkellager endrar API-et, ikkje grensa: leverandøren avviser sine eigne eksportkall, men den same administratørkonteksten som installerte nøkkelen har vanlegvis andre vegar til materialet. Ikkje-eksporterbar hos ein programvareleverandør er ei utsegn om støtta operasjonar, ikkje prov på ein maskinvaremur. Handsaml det som ein fartsdump mot tilfeldig kopiering, ikkje som vern mot nokon som allereie har økta di.
Ein TPM eller eit smartkort utfører signeringsoperasjonen i maskinvare og returnerer berre resultatet. Det stenger kopieringsvegen og lèt bruksvegen stå open for alt som kan be om ein signatur.
Tilpass lageret til tunneldaemonen
Daemonen avgrensar dette meir enn sikkerheitspolicyen gjer. WireGuard tek ein base64-privat nøkkel frå ei fil eller frå wg set-inndata og har ingen veg inn i eit sertifikatlager, så ein TPM-boren grensesnittnøkkel er ikkje aktuell. OpenVPN bygd mot OpenSSL 3 kan laste ein nøkkel via ein leverandør-URI, og strongSwan leverer ein TPM-plugin ved sida av PKCS#11-støtte, men begge avheng av korleis pakken din vart kompilert.
Ein daemon som ikkje kan nå det valde lageret, gjer maskinvargrensa til dekorasjon. Nokon eksporterer nøkkelen éin gong, lèt han liggje i ei fil, og resten av designet køyrer stille på den kopien.
Fornying er den andre halvdelen av matchinga, og det er her dei fleste designa fell frå kvarandre. Eit lager som fungerer for den første registreringa, men krev innlogging på konsoll for kvar nyutgiving, vert omgått første gong eit sertifikat går ut på eit ubeleileg tidspunkt. Test nyutgivingsvegen medan den noverande nøkkelen framleis har månader igjen.
Inventer nøkkelen før du flyttar han
Registrer kva nøkkelen er før du endrar kvar han bur, for ein migrering som mistar subject alternative names, bryt tunnelen på ein måte som les som ein rutefeil. Dump sertifikatet, stadfest at den private nøkkelen er lesbar der daemonen ventar han, og kontroller at paret faktisk passar saman.
openssl x509 -in vpn.crt -noout -subject -ext subjectAltName
openssl pkey -in vpn.key -check -noout
openssl x509 -in vpn.crt -noout -pubkey | openssl sha256
openssl pkey -in vpn.key -pubout | openssl sha256
Dei to siste digestane må vere identiske. Er dei ikkje det, fullfører daemonen oppsettet og feilar deretter ved kvart forsøk med ein sertifikat- eller signaturfeil som peikar langt frå den eigentlege årsaka. WireGuard-motstykket er kortare, fordi den offentlege nøkkelen vert utleidd direkte frå den private: wg pubkey < /etc/wireguard/wg0.key må skrive ut peer-nøkkelen serveren din allereie har lagra.
Rettar høyrer i same inventar. stat -c '%a %U:%G' /etc/wireguard/wg0.key bør returnere 600 root:root, og alt som er lesbart for gruppe eller verd, tyder på at nøkkelen allereie har vore tilgjengeleg for prosessar du aldri meinte.
Kontroller lageret og bruksvegen
Verifiseringa har tre delar, og den tredje vert hoppa over. Stadfest at nøkkelen finst i lageret du valde, stadfest at daemonen lasta den nøkkelen og ikkje ein gløymd kopi, og stadfest deretter at han framleis startar når eksportartefakten er borte.
certutil -store -user My
certutil -csp "Microsoft Platform Crypto Provider" -key -user
certutil -verifykeys -user My
ipsec listcerts
På Windows viser den første kommandoen det personlege lageret og skriv ut nøkkelleverandøren ved kvar oppføring, og der dukkar eit sertifikat opp som ser maskinvarestøtta ut, men sit i programvareleverandøren. Den andre viser nøklar som plattformkryptoleverandøren held, så ein VPN-identitet som manglar der medan sertifikatet er til stades, tyder på at den private halvdelen bur ein annan stad. På ein Linux-gateway rapporterer ipsec listcerts kva strongSwan lasta, inkludert nøklar frå TPM-pluginen. Samanlikn fingeravtrykk eller offentlege nøkkelhashar med inventaret i staden for å stole på talet på oppføringar.
Den negative testen er den som provar designet. Flytt den eksporterte nøkkelen ut av konfigurasjonskatalogen til daemonen, start tenesta på nytt, og les loggen for identiteten ho presenterer. Ein tunnel som framleis kjem opp, brukar lageret; ein mislukka start tyder på at designet verkeleg køyrde på ein kopi.
Skriv ned fornying og tilbakerulling
Tilbakerulling skil seg skarpt mellom dei to familiane, og den skilnaden høyrer i designnotatet, ikkje i ein hendingssamtale. Ei filnøkkel kan sikkerheitskopierast kryptert og gjenopprettast, så ein mislukka migrering kan rullast tilbake. Ein ikkje-eksporterbar nøkkel kan ikkje sikkerheitskopierast i det heile, noko som gjer nyutgiving og nyregistrering til den einaste gjenopprettingsvegen når eininga døyr.
Kontroller utløpet før det vert ei driftsforstyrring: openssl x509 -in vpn.crt -noout -checkend 2592000 endar med ein ikkje-null-kode når sertifikatet går ut innan tretti dagar, så det passar rett inn i ein overvakingssjekk. Ei vekentleg køyring av den linja fangar fornyinga ingen hadde planlagt.
Fjerning skjer på serveren: slett peeren eller kall tilbake serienummeret, og stadfest deretter at tunnelen feilar, sidan ein klient med ei bufra økt kan skjule ein halvferdig tilbakekalling ei stund. Tilbakekallinga må òg nå CRL- eller OCSP-vegen til konsentratoren, ikkje berre CA-databasen. Eit sertifikat er eit offentleg dokument, og RFC 5280-profilen dekkjer korleis det vert validert; ingenting av den valideringa vernar ein privat nøkkel som vart kopiert før rotasjonen.
Skriv avgjerda på éin stad: kva lager som held nøkkelen, kva prosess som får bruke han, kven som kan utstede han på nytt, og kva tilbakerullinga er. Det avsnittet er det revisorar spør om, og det er det som overlever eit personalbyte.