Preklican certifikat VPN se še vedno povezuje? Preveri uveljavljanje CRL
Preklicana potrdila se še vedno povezujejo, ko CRL nikoli ne doseže preverjevalnika. Preveri v tem vrstnem redu izdajatelja, naloženo serijsko številko, vedenje pri ponovnem nalaganju in aktivne seje.
Preklicali ste potrdilo, ustvarili nov seznam, in stari profil še vedno postavi tunel. Sam preklic ni pokvarjen: CRL je podpisana izjava, da serijska številka ni več veljavna, in spremeni dostop šele, ko jo komponenta, ki zaključi TLS, naloži, za pravega izdajatelja, preden sprejme odločitev o sprejemu. Tam je večina teh primerov, in zato sta preklic in zavrnitev dve različni dejstvi.
Pojdi skozi pet spodnjih preverb po vrsti in se ustavi pri prvi, ki ne drži, ker vsaka poznejša predpostavlja, da prejšnje veljajo.
Preveri, katera komponenta sprejme odločitev o sprejemu
Imenuj postopek, ki preverja potrdilo odjemalca, ker lahko samo ta postopek uveljavi seznam. Na strežniku OpenVPN je to sam demon, nastavljen z crl-verify. V ocserv je to vrstica crl v ocserv.conf. V strongSwan so vhodi naloženi CRL skupaj z strictcrlpolicy. Posrednik ali naprava, ki zaključi TLS pred VPN, je lahko pravi preverjevalnik, in če je, demon za njim nikoli ne vidi potrdila odjemalca.
WireGuard spada v drugo kategorijo. Nima potrdil in nima seznama preklicov; peer je sprejet na podlagi svojega javnega ključa v konfiguraciji, zato konec dostopa pomeni odstranitev tega ključa. Če iščeš CRL v namestitvi samo z WireGuardom, tega mehanizma tam ni.
Pazi tudi na past na strani odjemalca. Odjemalec, ki zavrne povezavo, ker mu strežnikovo potrdilo ni všeč, uveljavlja strežnikovo verigo, ne preklicuje lastnih poverilnic. Uporabniško potrdilo se prekliče le tam, kjer se to uporabniško potrdilo preverja, in to je skoraj vedno strežniška stran.
Preveri, za kateri izdajatelj je bil seznam podpisan
CRL je omejen na eno izdajateljsko CA. S korenom in vmesno CA listi prihajajo iz vmesne, zato je seznam, ki šteje, CRL vmesne; seznam korena ne pove nič o teh listih. Preverjevalnik, usmerjen na napačno datoteko, jo veselo razčleni, ne najde ujemajoče se postavke in sprejme vse.
Potrdi seznanjanje, preden se dotakneš demona. Izdajatelj na potrdilu se mora ujemati s subject seznama:
openssl x509 -in client.crt -noout -issuer -serial
openssl crl -in intermediate.crl -noout -issuer -lastupdate -nextupdateKo oba prihajata iz iste CA, je serijska številka, natisnjena za potrdilo, vrednost, ki se mora pojaviti na seznamu. Če se ne ujemata, imaš napačen CRL ali napačno kopijo.
Veljavnost spada k istemu preverjanju. nextUpdate v preteklosti naredi seznam zastarel, in preverjevalnik, ki odpove zaprto, bo zato zavrnil vsakega odjemalca namesto samo preklicanega.
Preveri, ali je serijska številka v kopiji, ki jo je naložil demon
Preklic zapiše vnos v bazo CA, ponovno ustvarjanje pa zapiše novo datoteko. Nobeno od dejanj ne doseže delujočega demona, ki je ob zagonu naložil staro kopijo. Izpiši seznam in poišči serijsko številko:
openssl crl -in intermediate.crl -noout -text | grep -i -A2 'Serial Number'
openssl ca -revoke client.crt
openssl ca -gencrl -out intermediate.crlNato preveri, kako tvoja izvedba prevzame datoteko. OpenVPN prebere pot, podano crl-verify, enkrat ob zagonu, zato nov seznam zahteva ponovni zagon ali signal za ponovni zagon; ista možnost, usmerjena na mapo, se znova prebere ob vsaki povezavi, in zato obstaja način mape. strongSwan mora znova naložiti svoje poverilnice, na primer z swanctl --load-creds. Da je datoteka na disku pravilna in da jo preverjevalnik uporablja, sta dve različni dejstvi.
Preveri politiko za manjkajoč ali potekel seznam
To je odločitev, ki je mnoge namestitve nikoli ne sprejmejo izrecno, in odloči, ali preklic varuje tebe ali zaklene vse ven. Fail-closed pomeni, da brez uporabne informacije o preklicu pride do zavrnitve; fail-open pomeni, da preverjevalnik nadaljuje brez nje. strongSwan izpostavi izbiro kot strictcrlpolicy. OpenVPN z crl-verify noče zagnati datoteke, ki je ne more prebrati ali razčleniti, potekel seznam pa se pokaže kot napaka preverjanja TLS glede poteklega CRL, ne kot tiho sprejetje.
| State of the revocation data | Fail-closed result | Fail-open result |
|---|---|---|
| List missing or unreadable | Verification fails, so expect an outage | Every client connects, including the revoked one |
List past nextUpdate | Validation errors until a fresh list is deployed | Old status is trusted indefinitely |
| Revoked serial present in the loaded list | Handshake rejected for that certificate | Handshake rejected for that certificate |
Katero koli smer izbereš, avtomatizacija šteje več kot izbira: opravilo, ki znova ustvari CRL pred nextUpdate, in opozorilo, ko se nameščena kopija postara, preprečita, da bi katera koli politika postala incident. Spletno preverjanje z OCSP premakne svežino na odzivnik, a velja isto pravilo, ker preverjevalnik, ki ni nastavljen za preverjanje odgovora, ne spremeni ničesar.
Preveri aktivno sejo, nato kopije ključa
Preklic se ovrednoti med preverjanjem potrdila, ki se zgodi ob povezavi in ob ponovnem dogovarjanju. Vzpostavljena seja deluje naprej, dokler se ne dogovori znova, in privzeta vrednost OpenVPN je enkrat na uro z reneg-sec 3600. Če mora oseba takoj iz omrežja, končaj sejo poleg objave seznama, in nato potrdi, da je ponovna povezava zavrnjena.
Loči poverilnico od njenih kopij. Brisanje profila na enem prenosniku ne prepreči drugi kopiji istega zasebnega ključa, da se overi; preklic je tisto, kar naredi vsako kopijo neuporabno, in šele ko prejšnja preverjanja držijo. Daj nadomestni napravi lastno potrdilo, da je mogoče eno preklicati, ne da bi se dotaknil drugega.
Preden to razglasiš za končano: preverjevalna komponenta je določena, izdajatelj seznama se ujema z izdajateljem lista, preklicana serijska številka je v kopiji, ki jo je demon dejansko naložil, politika za manjkajoče ali potekle sezname je namerna in nadzorovana, in aktivna seja je bila končana, namesto da bi se čakalo nanjo. Formate za vsem tem določa RFC 5280.