Du klausimai nulemia, kur priklauso privatusis VPN raktas: ar rakto medžiagą galima nukopijuoti iš šeimininko, ir ar procesas gali jį naudoti be žmogaus prie klaviatūros. Saugyklos rinkodaros etiketė neatsako nė į vieną. Tunelio demonui, kuris turi sugrįžti po perkrovimo, reikia naudojimo be priežiūros, o tai atmeta viską, kas susieta su PIN, kurį įveda žmogus.

Pasirinkite tarp kopijavimo ir naudojimo

Kopijavimas ir naudojimas nepavyksta skirtingai, todėl traktuokite juos kaip du reikalavimus, o ne vieną. Užpuolikas, kuris gali perskaityti rakto baitus, nusineša tapatybę į kitą šeimininką, o pradinė mašina to nepastebi. Užpuolikas, kuris negali perskaityti baitų, bet pasiekia pasirašymo procesą, vis tiek autentifikuojasi, kol tas priėjimas trunka.

Raktas faile yra trivialiai kopijuojamas, todėl jį ir lengviausia atsarginę kopiją padaryti ir atkurti. Programinė raktų saugykla keičia API, o ne ribą: tiekėjas atsisako savo paties eksporto kvietimų, bet tas pats administratoriaus kontekstas, kuris įdiegė raktą, paprastai turi kitus kelius prie medžiagos. Neeksportuojamumas programinio tiekėjo atveju yra teiginys apie palaikomas operacijas, o ne techninės sienos įrodymas. Traktuokite tai kaip sulėtintoją prieš atsitiktinį kopijavimą, o ne kaip apsaugą nuo to, kas jau turi jūsų sesiją.

TPM arba išmanioji kortelė atlieka pasirašymo operaciją techninėje įrangoje ir grąžina tik rezultatą. Tai uždaro kopijavimo kelią, o naudojimo kelią palieka atvirą viskam, kas gali paprašyti parašo.

Suderinkite saugyklą su tunelio demonu

Demonas tai riboja labiau nei saugumo politika. WireGuard ima base64 privatų raktą iš failo arba iš wg set įvesties ir neturi kelio į sertifikatų saugyklą, todėl sąsajos raktas su TPM pagalba neina svarstyti. OpenVPN, sukurtas su OpenSSL 3, gali įkelti raktą per tiekėjo URI, o strongSwan pateikia TPM papildinį kartu su PKCS#11 palaikymu, bet abu priklauso nuo to, kaip sukompiliuotas jūsų paketas.

Demonas, kuris negali pasiekti pasirinktos saugyklos, techninę ribą paverčia dekoracija. Kažkas vieną kartą eksportuoja raktą, palieka jį faile, ir likusi projekto dalis tyliai veikia toje kopijoje.

Atnaujinimas yra antroji suderinimo pusė, ir būtent ten sugriūna dauguma projektų. Saugykla, kuri veikia pirmos registracijos metu, bet reikalauja konsolės prisijungimo kiekvienam pakartotiniam išdavimui, apeinama pirmą kartą, kai sertifikatas baigiasi nepatogią valandą. Išbandykite pakartotinio išdavimo kelią, kol dabartinis raktas dar turi mėnesių.

Inventorizuokite raktą prieš perkeldami

Užfiksuokite, kas yra raktas, prieš keisdami, kur jis gyvena, nes migracija, kuri praranda subject alternative names, sulaužo tunelį taip, kad tai skaitoma kaip maršrutizavimo klaida. Išveskite sertifikatą, patvirtinkite, kad privatusis raktas perskaitomas ten, kur demonas jo laukia, ir patikrinkite, ar pora iš tikrųjų sutampa.

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

Paskutiniai du santraukos turi būti identiški. Jei ne, demonas baigia sąranką ir tada nepavyksta kiekvieno bandymo metu su sertifikato ar parašo klaida, kuri nenurodo niekur arti tikrosios priežasties. WireGuard atitikmuo trumpesnis, nes viešasis raktas išvedamas tiesiogiai iš privataus: wg pubkey < /etc/wireguard/wg0.key turi išspausdinti partnerio raktą, kurį jūsų serveris jau saugo.

Teisės priklauso tam pačiam inventoriui. stat -c '%a %U:%G' /etc/wireguard/wg0.key turėtų grąžinti 600 root:root, o viskas, kas perskaitoma grupės ar pasaulio, reiškia, kad raktas jau buvo prieinamas procesams, kurių neketinote.

Patikrinkite saugyklą ir naudojimo kelią

Patikra turi tris dalis, o trečioji praleidžiama. Patvirtinkite, kad raktas yra pasirinktoje saugykloje, patvirtinkite, kad demonas įkėlė tą raktą, o ne likusią kopiją, ir tada patvirtinkite, kad jis vis dar paleidžiamas, kai eksporto artefakto nebėra.

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

Windows pirmoji komanda išvardija asmeninę saugyklą ir prie kiekvieno įrašo atspausdina raktų tiekėją, ir ten pasirodo sertifikatas, kuris atrodo techniškai apsaugotas, bet yra programiniame tiekėjuje. Antroji išvardija raktus, kuriuos laiko platformos kriptotiekėjas, todėl VPN tapatybė, kurios ten trūksta esant sertifikatui, reiškia, kad privačioji pusė gyvena kitur. Linux tinkle ipsec listcerts praneša, ką įkėlė strongSwan, įskaitant raktus iš TPM papildinio. Palyginkite atspaudus arba viešųjų raktų maišas su inventoriumi, o ne pasitikėkite įrašų skaičiumi.

Neigiamas testas yra tas, kuris įrodo projektą. Perkelkite eksportuotą raktą iš demono konfigūracijos katalogo, paleiskite paslaugą iš naujo ir žurnale perskaitykite, kokią tapatybę ji pateikia. Tunelis, kuris vis tiek pakyla, naudoja saugyklą; nepavykęs paleidimas reiškia, kad projektas tikrai veikė kopijoje.

Užrašykite atnaujinimą ir atkūrimą

Atkūrimas labai skiriasi tarp dviejų šeimų, ir tas skirtumas priklauso projektinei pastabai, o ne incidento skambučiui. Rakto failą galima atsarginę kopiją padaryti užšifruotą ir atkurti, todėl nepavykusi migracija yra grįžtama. Neeksportuojamo rakto atsarginės kopijos padaryti apskritai negalima, todėl pakartotinis išdavimas ir pakartotinė registracija tampa vienintelis atkūrimo kelias, kai įrenginys miršta.

Tikrinkite galiojimo pabaigą, kol ji netapo sutrikimu: openssl x509 -in vpn.crt -noout -checkend 2592000 baigiasi nuliniu kodu, kai sertifikatas baigiasi per trisdešimt dienų, todėl jis tiesiogiai telpa į stebėjimo patikrą. Kas savaitę paleidžiant šią eilutę sugaunamas atnaujinimas, kurio niekas nesuplanavo.

Pašalinimas atliekamas serveryje: ištrinkite partnerį arba atšaukite serijos numerį, tada patvirtinkite, kad tunelis nepavyksta, nes klientas su podėlyje esančia sesija gali kurį laiką paslėpti pusiau atliktą atšaukimą. Atšaukimas turi pasiekti ir koncentratoriaus CRL ar OCSP kelią, ne tik CA duomenų bazę. Sertifikatas yra viešas dokumentas, o RFC 5280 profilis aprašo, kaip jis tikrinamas; niekas tame tikrinime neapsaugo privataus rakto, nukopijuoto prieš rotaciją.

Užrašykite sprendimą vienoje vietoje: kuri saugykla laiko raktą, kuris procesas gali jį naudoti, kas gali jį išduoti iš naujo ir koks yra atkūrimas. Ta pastraipa yra tai, ko klausia auditoriai, ir tai, kas išlieka pasikeitus personalui.

Susiję straipsniai