Waar moet 'n VPN-privaatsleutel woon: lêer, CNG of TPM?
Kies tussen 'n sleutellêer, 'n nie-uitvoerbare sagtewarestoor en 'n TPM vir 'n VPN-identiteit, en bewys die keuse met opdragte en 'n terugrolplan.
Twee vrae beslis waar 'n VPN-privaatsleutel hoort: of die sleutelmateriaal van die gasheer af gekopieer kan word, en of 'n proses dit kan gebruik sonder iemand by die sleutelbord. 'n Stoor se bemarkingsetiket antwoord nie een van die twee nie. 'n Tonneldaemon wat ná 'n herstart moet terugkom, het onbewaakte gebruik nodig, wat alles uitsluit wat aan 'n PIN gekoppel is wat 'n mens intik.
Kies tussen kopieer en gebruik
Kopieer en gebruik misluk op verskillende maniere, so behandel hulle as twee vereistes eerder as een. 'n Aanvaller wat die sleutelgrepe kan lees, dra die identiteit na 'n ander gasheer, en die oorspronklike masjien merk niks. 'n Aanvaller wat nie die grepe kan lees nie maar die ondertekeningsproses kan bereik, verifieer steeds solank daardie toegang duur.
’n Lêersleutel is triviaal kopieerbaar, en daarom is dit ook die maklikste om te rugsteun en te herstel. 'n Sagteware-sleutelstoor verander die API, nie die grens nie: die verskaffer weier sy eie uitvoeroproepe, maar dieselfde administrateurkonteks wat die sleutel geïnstalleer het, het gewoonlik ander roetes na die materiaal. Nie-uitvoerbaar by 'n sagtewareverskaffer is 'n stelling oor ondersteunde bewerkings, nie 'n bewys van 'n hardewaremuur nie. Behandel dit as 'n spoedhobbel vir gemaklike kopiëring, nie as beskerming teen iemand wat jou sessie al het nie.
'n TPM of 'n slimkaart voer die ondertekeningsbewerking in hardeware uit en gee net die resultaat terug. Dit sluit die kopieerpad en laat die gebruikpad oop vir enigiets wat 'n handtekening kan aanvra.
Pas die stoor by die tonneldaemon
Die daemon beperk dit meer as wat die sekuriteitsbeleid doen. WireGuard neem 'n base64-privaatsleutel uit 'n lêer of uit wg set-invoer en het geen roete na 'n sertifikaatstoor nie, so 'n TPM-gedraagde koppelvlak-sleutel is nie op die tafel nie. OpenVPN wat teen OpenSSL 3 gebou is, kan 'n sleutel deur 'n verskaffer-URI laai, en strongSwan lewer 'n TPM-inprop saam met PKCS#11-ondersteuning, maar albei hang af van hoe jou pakket saamgestel is.
'n Daemon wat nie die gekose stoor kan bereik nie, maak die hardewaregrens tot versiering. Iemand voer die sleutel een keer uit, los dit in 'n lêer, en die res van die ontwerp loop stil op daardie kopie.
Hernuwing is die ander helfte van die passing, en dit is waar die meeste ontwerpe uitmekaar val. 'n Stoor wat vir die eerste inskrywing werk maar vir elke heruitreiking 'n konsole-aanmelding eis, word omseil die eerste keer dat 'n sertifikaat op 'n ongeleë uur verval. Toets die heruitreikingspad terwyl die huidige sleutel nog maande oor het.
Inventariseer die sleutel voordat jy dit skuif
Teken op wat die sleutel is voordat jy verander waar dit woon, want 'n migrasie wat die subject alternative names laat val, breek die tonnel op 'n manier wat soos 'n roeteringsfout lees. Stort die sertifikaat, bevestig die privaatsleutel is leesbaar waar die daemon dit verwag, en kontroleer dat die paar werklik pas.
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
Die laaste twee digestte moet identies wees. Wanneer hulle nie is nie, voltooi die daemon sy opstelling en misluk dan elke poging met 'n sertifikaat- of handtekeningfout wat nêrens naby die werklike oorsaak wys nie. Die WireGuard-ekwivalent is korter, want die publieke sleutel kom direk van die private een: wg pubkey < /etc/wireguard/wg0.key moet die eweknie-sleutel druk wat jou bediener al op lêer het.
Regte hoort in dieselfde inventaris. stat -c '%a %U:%G' /etc/wireguard/wg0.key behoort 600 root:root te gee, en enigiets wat vir groep of wêreld leesbaar is, beteken die sleutel was al beskikbaar vir prosesse wat jy nooit bedoel het nie.
Kontroleer die stoor en die gebruikpad
Verifikasie het drie dele, en die derde word oorgeslaan. Bevestig die sleutel bestaan in die stoor wat jy gekies het, bevestig die daemon het daardie sleutel gelaai en nie 'n oorblywende kopie nie, en bevestig dan dat dit steeds begin wanneer die uitvoerartefak weg is.
certutil -store -user My
certutil -csp "Microsoft Platform Crypto Provider" -key -user
certutil -verifykeys -user My
ipsec listcerts
Op Windows lys die eerste opdrag die persoonlike stoor en druk die sleutelverskaffer langs elke inskrywing, en daar duik ’n sertifikaat op wat hardeware-gedraag lyk maar in die sagtewareverskaffer sit. Die tweede lys sleutels van die platform-kripto-verskaffer, so 'n VPN-identiteit wat daar ontbreek terwyl sy sertifikaat teenwoordig is, beteken die private helfte woon elders. Op 'n Linux-gateway rapporteer ipsec listcerts wat strongSwan gelaai het, insluitend sleutels uit die TPM-inprop. Vergelyk duimafdrukke of publieke-sleutel-hashes met die inventaris eerder as om die aantal inskrywings te vertrou.
Die negatiewe toets is die een wat die ontwerp bewys. Skuif die uitgevoerde sleutel uit die daemon se konfigurasiegids, herbegin die diens en lees die log vir die identiteit wat dit voorhou. 'n Tonnel wat steeds opkom, gebruik die stoor; 'n mislukte begin beteken die ontwerp het regtig op 'n kopie geloop.
Skryf hernuwing en terugrol neer
Terugrol verskil skerp tussen die twee families, en daardie verskil hoort in die ontwerpnota, nie in 'n voorvaloproep nie. 'n Lêersleutel kan geënkripteer gerugsteun en herstel word, so 'n mislukte migrasie keer om. 'n Nie-uitvoerbare sleutel kan glad nie gerugsteun word nie, wat heruitreiking en herinskrywing die enigste herstelpad maak wanneer die toestel sterf.
Kontroleer die vervaldatum voordat dit 'n onderbreking word: openssl x509 -in vpn.crt -noout -checkend 2592000 eindig met 'n nie-nul kode sodra die sertifikaat binne dertig dae verval, so dit pas direk in 'n moniteringstoets. 'n Weeklikse loop van daardie reël vang die hernuwing wat niemand geskeduleer het nie.
Verwydering gebeur op die bediener: skrap die eweknie of herroep die reeksnommer, en bevestig dan dat die tonnel misluk, want 'n kliënt met 'n gekasde sessie kan 'n halfvoltooide herroeping 'n ruk verberg. Herroeping moet ook die konsentrator se CRL- of OCSP-pad bereik, nie net die CA-databasis nie. 'n Sertifikaat is 'n openbare dokument, en die RFC 5280-profiel dek hoe dit gevalideer word; niks van daardie validering beskerm 'n privaatsleutel wat voor die rotasie gekopieer is nie.
Skryf die besluit op een plek: watter stoor die sleutel hou, watter proses dit mag gebruik, wie dit kan heruitreik en wat die terugrol is. Daardie paragraaf is wat ouditeurs vra, en dit is wat 'n personeelwisseling oorleef.