Missä VPN:n yksityisen avaimen pitäisi sijaita: tiedosto, CNG vai TPM?
Valitse avaintiedoston, ei-vietävän ohjelmistovaraston ja TPM:n välillä VPN-identiteetille ja todista valinta komennoilla ja palautussuunnitelmalla.
Kaksi kysymystä ratkaisee, mihin VPN:n yksityinen avain kuuluu: voiko avainmateriaalin kopioida isännältä ja voiko prosessi käyttää sitä ilman ketään näppäimistöllä. Varaston markkinointimerkintä ei vastaa kumpaankaan. Tunnelidaemon, jonka on palattava uudelleenkäynnistyksen jälkeen, tarvitsee valvomattoman käytön, mikä sulkee pois kaiken, mikä on sidottu ihmisen syöttämään PIN-koodiin.
Valitse kopioinnin ja käytön välillä
Kopiointi ja käyttö epäonnistuvat eri tavoin, joten käsittele niitä kahtena vaatimuksena yhden sijaan. Hyökkääjä, joka pystyy lukemaan avaimen tavut, kuljettaa identiteetin toiselle isännälle, eikä alkuperäinen kone huomaa sitä. Hyökkääjä, joka ei pysty lukemaan tavuja mutta pääsee allekirjoitusprosessiin, todennetaan edelleen niin kauan kuin tämä pääsy kestää.
Tiedostossa oleva avain on triviaalisti kopioitavissa, minkä vuoksi se on myös helpoin varmuuskopioida ja palauttaa. Ohjelmistollinen avainvarasto muuttaa API:a, ei rajaa: tarjoaja hylkää omat vientikutsunsa, mutta sama ylläpitäjän konteksti, joka asensi avaimen, löytää yleensä muita reittejä materiaaliin. Ei-vietävyys ohjelmistotarjoajassa on väite tuetuista toiminnoista, ei todiste laitteistoseinästä. Pidä sitä hidasteena satunnaista kopiointia vastaan, älä suojana jotakuta vastaan, jolla on jo istuntosi.
TPM tai älykortti suorittaa allekirjoitustoiminnon laitteistossa ja palauttaa vain tuloksen. Se sulkee kopiointireitin ja jättää käyttöreitin avoimeksi kaikelle, mikä voi pyytää allekirjoituksen.
Sovita varasto tunnelidaemoniin
Daemon rajoittaa tätä enemmän kuin tietoturvakäytäntö. WireGuard ottaa base64-muotoisen yksityisen avaimen tiedostosta tai wg set -syötteestä eikä sillä ole reittiä sertifikaattivarastoon, joten TPM-pohjainen rajapinta-avain ei tule kysymykseen. OpenVPN, joka on käännetty OpenSSL 3:ta vasten, voi ladata avaimen tarjoajan URI:n kautta, ja strongSwan toimittaa TPM-liitännäisen PKCS#11-tuen ohella, mutta molemmat riippuvat siitä, miten pakettisi käännettiin.
Daemon, joka ei pääse valittuun varastoon, tekee laitteistorajasta koristeen. Joku vie avaimen kerran, jättää sen tiedostoon, ja muu suunnittelu pyörii hiljaa sillä kopiolla.
Uusiminen on sovittamisen toinen puoli, ja siinä useimmat suunnitelmat hajoavat. Varasto, joka toimii ensimmäisessä rekisteröinnissä mutta vaatii konsolikirjautumisen jokaiseen uudelleenmyöntöön, ohitetaan ensimmäisen kerran, kun sertifikaatti vanhenee hankalaan aikaan. Testaa uudelleenmyöntöreitti, kun nykyisellä avaimella on vielä kuukausia jäljellä.
Inventoi avain ennen siirtämistä
Kirjaa, mikä avain on, ennen kuin muutat, missä se asuu, koska migraatio, joka kadottaa subject alternative names -kentät, rikkoo tunnelin tavalla, joka luetaan reititysvirheeksi. Vedä sertifikaatti ulos, varmista että yksityinen avain on luettavissa siellä, missä daemon sitä odottaa, ja tarkista, että pari todella täsmää.
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
Kahden viimeisen tiivisteen on oltava identtiset. Jos eivät, daemon viimeistelee asennuksen ja epäonnistuu sitten joka yrityksellä sertifikaatti- tai allekirjoitusvirheeseen, joka ei osoita lähellekään todellista syytä. WireGuardin vastine on lyhyempi, koska julkinen avain johdetaan suoraan yksityisestä: wg pubkey < /etc/wireguard/wg0.key täytyy tulostaa vertaisavain, jonka palvelimesi jo tallentaa.
Oikeudet kuuluvat samaan inventaarioon. stat -c '%a %U:%G' /etc/wireguard/wg0.key pitäisi palauttaa 600 root:root, ja kaikki, mikä on ryhmän tai maailman luettavissa, tarkoittaa, että avain on jo ollut saatavilla prosesseille, joita et koskaan tarkoittanut.
Tarkista varasto ja käyttöreitti
Varmennuksessa on kolme osaa, ja kolmas jätetään väliin. Varmista, että avain on valitussa varastossa, varmista, että daemon latasi juuri sen avaimen eikä jäljelle jäänyttä kopiota, ja varmista sitten, että se käynnistyy yhä, kun vientiartefakti on poissa.
certutil -store -user My
certutil -csp "Microsoft Platform Crypto Provider" -key -user
certutil -verifykeys -user My
ipsec listcerts
Windowsissa ensimmäinen komento listaa henkilökohtaisen varaston ja tulostaa avaimen tarjoajan jokaisen merkinnän viereen, ja siellä näkyy sertifikaatti, joka näyttää laitteistolta suojatulta mutta istuu ohjelmistotarjoajassa. Toinen listaa avaimet, joita alustan salauspalveluntarjoaja pitää, joten VPN-identiteetti, joka puuttuu sieltä sertifikaatin ollessa paikalla, tarkoittaa, että yksityinen puoli asuu muualla. Linux-portilla ipsec listcerts kertoo, mitä strongSwan latasi, mukaan lukien TPM-liitännäisestä tulleet avaimet. Vertaa sormenjälkiä tai julkisten avainten tiivisteitä inventaarioon sen sijaan, että luottaisit merkintöjen määrään.
Negatiivinen testi on se, joka todistaa suunnitelman. Siirrä viety avain daemonin kokoonpanohakemistosta pois, käynnistä palvelu uudelleen ja lue lokista, minkä identiteetin se esittää. Tunneli, joka silti nousee, käyttää varastoa; epäonnistunut käynnistys tarkoittaa, että suunnitelma todella pyöri kopiolla.
Kirjaa uusiminen ja palautus
Palautus eroaa jyrkästi näiden kahden perheen välillä, ja se ero kuuluu suunnittelumuistioon, ei häiriöpuheluun. Tiedostossa oleva avain voidaan varmuuskopioida salattuna ja palauttaa, joten epäonnistunut migraatio on peruttavissa. Ei-vietävää avainta ei voi varmuuskopioida lainkaan, mikä tekee uudelleenmyönnöstä ja uudelleenrekisteröinnistä ainoan palautustien, kun laite kuolee.
Tarkista vanheneminen ennen kuin siitä tulee katkos: openssl x509 -in vpn.crt -noout -checkend 2592000 päättyy nollasta poikkeavaan koodiin, kun sertifikaatti vanhenee kolmenkymmenen päivän kuluessa, joten se sopii suoraan valvontatarkistukseen. Tämän rivin viikoittainen ajo nappaa uusimisen, jota kukaan ei ollut suunnitellut.
Poisto tapahtuu palvelimella: poista vertais tai peruuta sarjanumero ja varmista sitten, että tunneli epäonnistuu, koska välimuistissa olevan istunnon asiakas voi piilottaa puoliksi tehdyn peruutuksen hetkeksi. Peruutuksen on saavutettava myös keskittimen CRL- tai OCSP-reitti, ei vain CA-tietokanta. Sertifikaatti on julkinen asiakirja, ja RFC 5280 -profiili kattaa sen, miten se validoidaan; mikään tuossa validoinnissa ei suojaa yksityistä avainta, joka kopioitiin ennen rotaatiota.
Kirjoita päätös yhteen paikkaan: mikä varasto pitää avainta, mikä prosessi saa käyttää sitä, kuka voi myöntää sen uudelleen ja mikä on palautus. Se kappale on se, mitä auditoijat kysyvät, ja se, mikä kestää henkilöstön vaihtumisen.