VPN-sertifikaatide inventuur: mida CA-register suudab tõestada
Serveri kaust, CA-register, tühistamisnimekiri ja sessioonitabel vastavad erinevatele küsimustele. Hoidke need VPN-identiteetide inventuuri tehes lahus.
Teie lüüs võtab vastu kliendi sertifikaadi, mida ta pole kunagi näinud, sest see, millega ta on konfigureeritud, on usaldusväärne väljaandja, ja sertifikaat saabub käesurumise ajal. Nii peab protokoll töötama, ja just seetõttu on serveri kaustaloend halb inventuur. Väljaandja teab, mida ta lõi, server teab, mis ühendus, ja tühistamise olek teab, mis võeti tagasi. Inventuur, mis need kolm kirjet segab, väidab lõpuks midagi, mida ükski neist ei öelnud.
Lüüs usaldab väljaandjat, mitte failide loendit
Valideerimine võrdleb esitatud sertifikaati usaldusankruga, seega sama väljaandja eile loodud identiteet ühendub, ilma et see oleks kunagi serveri kettal eksisteerinud. Selleks ei pea midagi kopeerima ja keegi ei pea seda käsitsi kinnitama. Serveri enda kirjed kirjeldavad seega saabumisi, mitte identiteetide hulka, mis võiksid saabuda.
Vastupidine lünk on sama piinlik. Kaust võib sisaldada aegunud sertifikaate, tühistatud sertifikaate ja identiteete, mis on välja antud seadmetele, mida kunagi ei juurutatud. Failide loendamine vastab sellele, kui palju faile on, mis on küsimus, mida keegi ei küsinud. Alustage selle asemel kirjetest, mis kannavad tähendust.
Neli küsimust, neli erinevat kirjet
Iga kirjetüüp vastab ühele küsimusele hästi ja teistele halvasti, mistõttu raport, mis need kokku sulandab, näib täielik, olles samal ajal konkreetsel viisil vale. Allolev tabel järjestab need küsimuse järgi, mille nad lahendavad, mitte süsteemi järgi, mis neid toodab.
| 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 |
Avalike sertifikaatide arhiiv ei ole saladus, kuna see ei sisalda privaatvõtmeid, kuid see ei ole ka jagatav. Subjektid ja seadmenimed paljastavad tööandmeid ning raport peaks jääma selle publikuni, kes seda vajab. Privaatvõtmed jäävad inventuurist täiesti välja, sest inventuur vajab metaandmeid, mitte volitusi.
Väljaandja ja seerianumber on ainus püsiv võti
Subjekte ringlusse võetakse ja failinimesid kasutatakse uuesti, seega eelmisel aastal ühte seadet tähistanud nimi võib nüüd tähistada teist. Kumbki ei ole võti, ja kummalelegi tuginev raport liidab lõpuks kaks identiteeti üheks reaks.
Väljaandja ja seerianumbri paar identifitseerib sertifikaadi unikaalselt ning mõlemad väljad pärinevad sertifikaadist endast. Kirjutage need üles koos subjekti, kehtivuskuupäevade, allika, kust koopia tuli, ning vastutava isiku või seadmega. Lisage tühistamise ja juurutamise olek eraldi väljadena oma vaatlusaegadega, sest kehtivusakna sees olev sertifikaat ei ole automaatselt volitatud. Need kaks fakti elavad erinevates süsteemides, ja nende kokkusulatamine varjab juhtumi, kus identiteet võeti tagasi, samal ajal kui selle fail näib veel ajakohane.
Lugege ühte sertifikaati korraga
Kausta ulatuv metamärk ei ole partiiliides ja see varjab, milline fail millise väljundi andis. Lugege metaandmeid iga sertifikaadi kohta ja lugege tühistamise poolt selle enda artefaktist. OpenSSL x509 viide loetleb väljad, mida need valikud prindivad.
openssl x509 -in <cert>.pem -noout -issuer -serial -subject -dates -fingerprint -sha256
openssl crl -in <issuer>.crl -noout -text | head -n 40
Hallatava Easy-RSA PKI puhul pärige väljaandmise andmebaasi töövooga, mida tööriist toetab, selle asemel et eeldada kaustapaigutust, ja hoidke originaale kirjutuskaitstuna, kuni inventuur koostatakse. Registri vorming on piisavalt korrapärane, et lugeda kokku kehtivad kirjed ja loetleda tagasivõetud, ilma andmebaasi käsitsi avamata.
grep -c '^V' pki/index.txt
grep '^R' pki/index.txt | cut -f4,5
Inventuur, mis elab üle järgmise väljaandmise
Kausta ühekordne eksport vananeb hetkel, mil välja antakse järgmine sertifikaat, seega koostage raport väljaandmise töövoost ja laske sellel uueneda tavapärase töö osana. See teeb raporti ka reprodutseeritavaks, mis on oluline, kui kaks inimest ei ole ühel meelel selles, mida välja anti.
Kasutage tulemust uuendamise ja kasutusest kõrvaldamise otsuste jaoks, mitte tabelitöö harjutusena. Kohaliku koopia kustutamine ei muuda olemasolevaid kaugkoopiaid kehtetuks. Võtke identiteet tagasi konfigureeritud tühistamise ja volitamise töövoo kaudu, seejärel registreerige tagasivõtmine koos kuupäevaga. Identiteet, mis on serverist kadunud, kuid mida väljaandja ikka usaldab, ei ole kasutusest kõrvaldatud, ja just see erinevus eristab täpset inventuuri ainult rahustavast.