VPN sertifikatų inventorius: ką gali įrodyti CA registras
Aplankas serveryje, CA registras, panaikinimo sąrašas ir sesijų lentelė atsako į skirtingus klausimus. Inventorizuodami VPN tapatybes laikykite juos atskirai.
Jūsų šliuzas priima kliento sertifikatą, kurio niekada nematė, nes tai, kuo jis sukonfigūruotas, yra patikimas išdavėjas, o sertifikatas atvyksta per rankos paspaudimą. Taip protokolas ir turi veikti, ir būtent todėl katalogo sąrašas serveryje yra prastas inventorius. Išdavėjas žino, ką sukūrė, serveris žino, kas prisijungė, o panaikinimo būsena žino, kas buvo atšaukta. Inventorius, kuris sumaišo šiuos tris įrašus, galiausiai tvirtina tai, ko nė vienas jų nesakė.
Šliuzas pasitiki išdavėju, o ne failų sąrašu
Tikrinimas lygina pateiktą sertifikatą su pasitikėjimo inkaru, todėl tapatybė, kurią tas pats išdavėjas sukūrė vakar, prisijungia niekada neegzistavusi serverio diske. Kad taip atsitiktų, nieko nereikia kopijuoti, ir niekas neturi to patvirtinti ranka. Todėl paties serverio įrašai aprašo atvykimus, o ne tapatybių, kurios galėtų atvykti, visumą.
Priešinga spraga tokia pat nepatogi. Aplanke gali būti pasibaigusių sertifikatų, panaikintų ir tapatybių, išduotų įrenginiams, kurie niekada nebuvo įdiegti. Failų skaičiavimas atsako, kiek failų yra, o tai klausimas, kurio niekas neuždavė. Verčiau pradėkite nuo įrašų, kurie turi prasmę.
Keturi klausimai, keturi skirtingi įrašai
Kiekvienas įrašo tipas į vieną klausimą atsako gerai, o į kitus prastai, todėl juos sujungianti ataskaita atrodo išsami, nors yra konkrečiai klaidinga. Toliau pateikta lentelė rikiuoja juos pagal klausimą, kurį jie išsprendžia, o ne pagal sistemą, kuri juos sukuria.
| Question you are answering | Where the answer lives | How quickly it changes | What it will never show |
|---|---|---|---|
| Was this identity ever created? | The issuer's issuance database | Only when something is issued | Whether the device still exists |
| Is a copy sitting on this host? | The paths you actually inspected | Whenever anyone copies files | Certificates that were never copied here |
| Has the issuer withdrawn it? | Published revocation state | When the issuer next publishes | Withdrawals that are not published yet |
| Is it connected right now? | The live session table | Continuously | Anything about past or future sessions |
Viešųjų sertifikatų archyvas nėra paslaptis, nes jame nėra privačių raktų, bet jo ir negalima bendrinti. Subjektai ir įrenginių pavadinimai atskleidžia veiklos detales, o ataskaita turėtų likti pas tą auditoriją, kuriai jos reikia. Privatūs raktai lieka visiškai už inventoriaus ribų, nes inventoriui reikia metaduomenų, o ne prisijungimo duomenų.
Išdavėjas ir serijos numeris yra vienintelis stabilus raktas
Subjektai perdirbami, o failų pavadinimai naudojami iš naujo, todėl pavadinimas, kuris pernai žymėjo vieną įrenginį, dabar gali žymėti kitą. Nė vienas jų nėra raktas, o ataskaita, pagrįsta bet kuriuo iš jų, galiausiai sujungs dvi tapatybes į vieną eilutę.
Išdavėjo ir serijos numerio pora unikaliai identifikuoja sertifikatą, ir abu laukai paimami iš paties sertifikato. Užrašykite juos kartu su subjektu, galiojimo datomis, šaltiniu, iš kurio atėjo kopija, ir atsakingu asmeniu ar įrenginiu. Pridėkite panaikinimo ir įdiegimo būseną kaip atskirus laukus su savo stebėjimo laikais, nes galiojimo laikotarpio viduje esantis sertifikatas nėra automatiškai įgaliotas. Šie du faktai gyvena skirtingose sistemose, o jų sujungimas paslepia atvejį, kai tapatybė buvo atšaukta, nors jos failas vis dar atrodo aktualus.
Skaitykite po vieną sertifikatą
Pakaitos simbolis, kuris išsiplečia per aplanką, nėra paketų sąsaja, ir jis paslepia, kuris failas davė kurią išvestį. Skaitykite metaduomenis pagal kiekvieną sertifikatą, o panaikinimo pusę skaitykite iš jo paties artefakto. OpenSSL x509 nuoroda išvardija laukus, kuriuos spausdina tos parinktys.
openssl x509 -in <cert>.pem -noout -issuer -serial -subject -dates -fingerprint -sha256
openssl crl -in <issuer>.crl -noout -text | head -n 40
Valdomai Easy-RSA PKI užklauskite išdavimo duomenų bazę per darbo eigą, kurią palaiko įrankis užuot darę prielaidą apie katalogų išdėstymą, ir laikykite originalus tik skaitomais, kol inventorius surenkamas. Registro formatas yra pakankamai reguliarus, kad galėtumėte suskaičiuoti galiojančius įrašus ir išvardyti atšauktus neatidarę duomenų bazės ranka.
grep -c '^V' pki/index.txt
grep '^R' pki/index.txt | cut -f4,5
Inventorius, kuris išgyvena kitą išdavimą
Vienkartinis aplanko išmetimas pasensta tą akimirką, kai išduodamas kitas sertifikatas, todėl kurkite ataskaitą iš išdavimo darbo eigos ir leiskite jai atsinaujinti kaip įprasto veikimo daliai. Tai taip pat daro ataskaitą atkuriamą, o tai svarbu, kai du žmonės nesutaria, kas buvo išduota.
Naudokite rezultatą atnaujinimo ir eksploatacijos nutraukimo sprendimams, o ne kaip skaičiuoklės pratimą. Vietinės kopijos ištrynimas nepanaikina jau egzistuojančių nuotolinių kopijų. Atšaukite tapatybę per sukonfigūruotą panaikinimo ir įgaliojimo darbo eigą, tada užregistruokite atšaukimą su jo data. Tapatybė, kuri dingo iš serverio, bet išdavėjas ja vis dar pasitiki, nebuvo nutraukta, ir būtent šis skirtumas atskiria tikslų inventorių nuo tokio, kuris tik ramina.