Kus peaks asuma VPN privaatvõti: fail, CNG või TPM?
Valige võtmefaili, mitteeksporditava tarkvarahoidla ja TPM-i vahel VPN identiteedi jaoks, seejärel tõestage valik käskude ja tagasipööramise plaaniga.
Kaks küsimust otsustavad, kuhu VPN privaatvõti kuulub: kas võtmematerjali saab hostist kopeerida ja kas protsess saab seda kasutada ilma inimeseta klaviatuuri taga. Hoidla turundussilt ei vasta kummagile. Tunnelidemon, mis peab pärast taaskäivitust tagasi tulema, vajab järelevalveta kasutust, mis välistab kõik, mis on seotud inimese sisestatava PIN-iga.
Valige kopeerimise ja kasutamise vahel
Kopeerimine ja kasutamine ebaõnnestuvad erinevalt, seega käsitlege neid kahe nõudena, mitte ühena. Ründaja, kes suudab võtmebaiti lugeda, viib identiteedi teise hosti ja algne masin ei märka seda. Ründaja, kes ei suuda baite lugeda, kuid pääseb allkirjastamisprotsessile, autendib end jätkuvalt seni, kuni see juurdepääs kestab.
Failis olev võti on triviaalselt kopeeritav, mistõttu on seda ka kõige lihtsam varundada ja taastada. Tarkvaraline võtmehoidla muudab API-t, mitte piiri: teenusepakkuja keeldub omaenda ekspordikutsetest, kuid sama administraatori kontekst, kes võtme paigaldas, teab tavaliselt muid teid materjalini. Mitteeksporditavus tarkvarapakkuja juures on väide toetatud toimingute kohta, mitte tõestus riistvaraseinast. Käsitlege seda pidurina juhusliku kopeerimise vastu, mitte kaitsena kellegi eest, kellel on juba teie seanss.
TPM või nutikaart teostab allkirjastamistoimingu riistvaras ja tagastab ainult tulemuse. See sulgeb kopeerimistee ja jätab kasutustee avatuks kõigele, mis saab allkirja küsida.
Sobitage hoidla tunnelideemoniga
Deemon piirab seda rohkem kui turbepoliitika. WireGuard võtab base64 privaatvõtme failist või wg set sisendist ega oma teed sertifikaadihoidlasse, seega TPM-põhine liidesevõti ei tule kõne alla. OpenVPN, mis on ehitatud OpenSSL 3 vastu, saab võtit laadida pakkuja URI kaudu, ja strongSwan tarnib TPM-pistmiku kõrvuti PKCS#11 toega, kuid mõlemad sõltuvad sellest, kuidas teie pakett kompileeriti.
Deemon, mis ei pääse valitud hoidlani, muudab riistvarapiiri dekoratsiooniks. Keegi ekspordib võtme üks kord, jätab selle faili, ja ülejäänud projekt töötab vaikselt selle koopia peal.
Uuendamine on teine pool sobitamisest ja just seal laguneb enamik projekte. Hoidla, mis töötab esmasel registreerimisel, kuid nõuab iga uuesti väljastamise jaoks konsooli sisselogimist, möödutakse esimesel korral, kui sertifikaat aegub ebamugaval tunnil. Testige uuesti väljastamise teed, kuni praegusel võtmel on veel kuid järel.
Inventeerige võti enne liigutamist
Kirjutage üles, mis võti on, enne kui muudate, kus see elab, sest migratsioon, mis kaotab subject alternative names, katkestab tunneli viisil, mida loetakse marsruutimisveaks. Eksportige sertifikaat, kinnitage, et privaatvõti on loetav seal, kus deemon seda ootab, ja kontrollige, et paar tegelikult sobib.
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
Kaks viimast kokkuvõtet peavad olema identsed. Kui ei ole, lõpetab deemon seadistamise ja ebaõnnestub seejärel igal katsel sertifikaadi või allkirja veaga, mis ei osuta kuhugi tegeliku põhjuse lähedale. WireGuardi vaste on lühem, sest avalik võti tuletatakse otse privaatsest: wg pubkey < /etc/wireguard/wg0.key peab välja printima partneri võtme, mille teie server juba salvestab.
Õigused kuuluvad samasse inventeerimisse. stat -c '%a %U:%G' /etc/wireguard/wg0.key peaks tagastama 600 root:root, ja kõik, mis on loetav grupile või maailmale, tähendab, et võti on juba olnud kättesaadav protsessidele, mida te ei kavatsenud.
Kontrollige hoidlat ja kasutusteed
Kontrollil on kolm osa ja kolmas jäetakse vahele. Kinnitage, et võti on valitud hoidlas, kinnitage, et deemon laadis selle võtme, mitte järelejäänud koopia, ja seejärel kinnitage, et see ikka käivitub, kui ekspordiartefakt on kadunud.
certutil -store -user My
certutil -csp "Microsoft Platform Crypto Provider" -key -user
certutil -verifykeys -user My
ipsec listcerts
Windowsis loetleb esimene käsk isikliku hoidla ja prindib iga kirje kõrvale võtmepakkuja, ja seal ilmub sertifikaat, mis näeb välja riistvaraliselt kaitstud, kuid asub tarkvarapakkujas. Teine loetleb võtmeid, mida hoiab platvormi krüptopakkuja, seega VPN identiteet, mis seal puudub sertifikaadi juuresolekul, tähendab, et privaatne pool elab mujal. Linuxi väravas raporteerib ipsec listcerts, mida strongSwan laadis, sealhulgas TPM-pistmikust pärit võtmed. Võrrelge sõrmejälgi või avalike võtmete räsisid inventeerimisega, selle asemel et usaldada kirjete arvu.
Negatiivne test on see, mis tõestab projekti. Liigutage eksporditud võti deemoni konfiguratsioonikataloogist välja, taaskäivitage teenus ja lugege logist, millist identiteeti see esitab. Tunnel, mis ikka tõuseb, kasutab hoidlat; ebaõnnestunud käivitus tähendab, et projekt töötas tõesti koopia peal.
Kirjutage üles uuendamine ja tagasipööramine
Tagasipööramine erineb kahe perekonna vahel tugevalt ja see erinevus kuulub projekti märkmesse, mitte intsidendi kõnesse. Failis olevat võtit saab varundada krüpteeritult ja taastada, seega ebaõnnestunud migratsioon on pööratav. Mitteeksporditavat võtit ei saa üldse varundada, mis teeb uuesti väljastamise ja uuesti registreerimise ainsaks taasteteeks, kui seade sureb.
Kontrollige aegumist, enne kui sellest saab katkestus: openssl x509 -in vpn.crt -noout -checkend 2592000 lõpeb nullist erineva koodiga, kui sertifikaat aegub kolmekümne päeva jooksul, seega sobib see otse järelevalvekontrolli. Selle rea iganädalane käivitamine püüab kinni uuenduse, mida keegi ei planeerinud.
Eemaldamine toimub serveris: kustutage partner või tühistage seerianumber, seejärel kinnitage, et tunnel ebaõnnestub, sest vahemällu salvestatud seansiga klient võib mõnda aega poolikut tühistamist varjata. Tühistamine peab jõudma ka kontsentraatori CRL või OCSP teele, mitte ainult CA andmebaasi. Sertifikaat on avalik dokument ja RFC 5280 profiil hõlmab seda, kuidas seda valideeritakse; miski selles valideerimises ei kaitse privaatvõtit, mis kopeeriti enne rotatsiooni.
Kirjutage otsus ühte kohta: milline hoidla hoiab võtit, milline protsess tohib seda kasutada, kes saab selle uuesti väljastada ja milline on tagasipööramine. See lõik on see, mida audiitorid küsivad, ja see, mis jääb püsima personalivahetuse üle.