To spørgsmål afgør, hvor en privat VPN-nøgle hører til: om nøglematerialet kan kopieres fra værten, og om en proces kan bruge den uden nogen ved tastaturet. En lagers marketingmærkat besvarer ingen af dem. En tunneldæmon, der skal komme tilbage efter en genstart, kræver ubemandet brug, hvilket udelukker alt, der er bundet til en PIN-kode, som et menneske taster ind.

Vælg mellem kopiering og brug

Kopiering og brug fejler forskelligt, så behandl dem som to krav i stedet for ét. En angriber, der kan læse nøglebytene, bærer identiteten til en anden vært, og den oprindelige maskine opdager intet. En angriber, der ikke kan læse bytene, men kan nå signeringsprocessen, autentificerer sig stadig, så længe den adgang varer.

En filnøgle er trivielt kopierbar, hvilket også gør den nemmest at sikkerhedskopiere og gendanne. Et softwarenøglelager ændrer API'et, ikke grænsen: udbyderen afviser sine egne eksportkald, men den samme administratorkontekst, der installerede nøglen, har som regel andre veje til materialet. Ikke-eksporterbar hos en softwareudbyder er en udtalelse om understøttede handlinger, ikke bevis på en hardwaremur. Behandl det som en fartbump mod tilfældig kopiering, ikke som beskyttelse mod nogen, der allerede har din session.

Et TPM eller et smartkort udfører signeringshandlingen i hardware og returnerer kun resultatet. Det lukker kopivejen og lader brugsvejen stå åben for alt, der kan anmode om en signatur.

Tilpas lageret til tunneldæmonen

Dæmonen begrænser dette mere, end sikkerhedspolitikken gør. WireGuard tager en base64-privat nøgle fra en fil eller fra wg set-input og har ingen vej ind i et certifikatlager, så en TPM-båren grænsefladenøgle er ikke mulig. OpenVPN bygget mod OpenSSL 3 kan indlæse en nøgle via en udbyder-URI, og strongSwan leverer et TPM-plugin ved siden af PKCS#11-understøttelse, men begge afhænger af, hvordan din pakke blev kompileret.

En dæmon, der ikke kan nå det valgte lager, gør hardwaregrænsen til dekoration. Nogen eksporterer nøglen én gang, lader den ligge i en fil, og resten af designet kører stille på den kopi.

Fornyelse er den anden halvdel af matchningen, og det er her de fleste design falder fra hinanden. Et lager, der virker til den første tilmelding, men kræver et konsollogin ved hver genudstedelse, bliver omgået første gang, et certifikat udløber på et ubelejligt tidspunkt. Test genudstedelsesvejen, mens den nuværende nøgle stadig har måneder tilbage.

Registrer nøglen, før du flytter den

Registrer, hvad nøglen er, før du ændrer, hvor den bor, for en migrering, der taber subject alternative names, brækker tunnelen på en måde, der læses som en routingfejl. Dump certifikatet, bekræft at den private nøgle kan læses, hvor dæmonen forventer den, og kontroller, at parret faktisk passer sammen.

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

De sidste to digests skal være identiske. Er de ikke det, afslutter dæmonen sin opsætning og fejler derefter ved hvert forsøg med en certifikat- eller signaturfejl, der peger langt fra den egentlige årsag. WireGuard-ækvivalenten er kortere, fordi den offentlige nøgle udledes direkte fra den private: wg pubkey < /etc/wireguard/wg0.key skal udskrive den peernøgle, din server allerede har liggende.

Rettigheder hører i samme registrering. stat -c '%a %U:%G' /etc/wireguard/wg0.key bør returnere 600 root:root, og alt, der kan læses af gruppe eller verden, betyder, at nøglen allerede har været tilgængelig for processer, du aldrig havde tænkt på.

Kontroller lageret og brugsvejen

Verifikation har tre dele, og den tredje springes over. Bekræft, at nøglen findes i det lager, du valgte, bekræft, at dæmonen indlæste den nøgle og ikke en efterladt kopi, og bekræft derefter, at den stadig starter, når eksportartefakten er væk.

certutil -store -user My
certutil -csp "Microsoft Platform Crypto Provider" -key -user
certutil -verifykeys -user My
ipsec listcerts

På Windows viser den første kommando det personlige lager og udskriver nøgleudbyderen ved hver post, og der dukker et certifikat op, der ser hardwareunderstøttet ud, men sidder i softwareudbyderen. Den anden viser nøgler, som platformkryptoudbyderen holder, så en VPN-identitet, der mangler der, mens certifikatet er til stede, betyder, at den private halvdel bor et andet sted. På en Linux-gateway rapporterer ipsec listcerts, hvad strongSwan indlæste, inklusive nøgler fra TPM-pluginet. Sammenlign fingeraftryk eller offentlige nøglehashes med registreringen i stedet for at stole på antallet af poster.

Den negative test er den, der beviser designet. Flyt den eksporterede nøgle ud af dæmonens konfigurationsmappe, genstart tjenesten, og læs loggen for den identitet, den fremviser. En tunnel, der stadig kommer op, bruger lageret; en mislykket start betyder, at designet virkelig kørte på en kopi.

Skriv fornyelse og tilbagerulning ned

Tilbagerulning adskiller sig skarpt mellem de to familier, og den forskel hører i designnotatet, ikke i et hændelsesopkald. En filnøgle kan sikkerhedskopieres krypteret og gendannes, så en mislykket migrering kan rulles tilbage. En ikke-eksporterbar nøgle kan slet ikke sikkerhedskopieres, hvilket gør genudstedelse og gentilmelding til den eneste gendannelsesvej, når enheden dør.

Kontroller udløbet, før det bliver en driftsforstyrrelse: openssl x509 -in vpn.crt -noout -checkend 2592000 afslutter med en ikke-nul-kode, når certifikatet udløber inden for tredive dage, så det passer direkte ind i et overvågningstjek. En ugentlig kørsel af den linje fanger den fornyelse, ingen havde planlagt.

Fjernelse sker på serveren: slet peeren eller tilbagekald serienummeret, og bekræft derefter, at tunnelen fejler, da en klient med en cachet session kan skjule en halvfærdig tilbagekaldelse et stykke tid. Tilbagekaldelsen skal også nå koncentratorens CRL- eller OCSP-vej, ikke blot CA-databasen. Et certifikat er et offentligt dokument, og RFC 5280-profilen dækker, hvordan det valideres; intet af den validering beskytter en privat nøgle, der blev kopieret før rotationen.

Skriv beslutningen ét sted: hvilket lager der holder nøglen, hvilken proces der må bruge den, hvem der kan genudstede den, og hvad tilbagerulningen er. Det afsnit er, hvad revisorer spørger om, og det er, hvad der overlever en personalændring.

Relaterede artikler