Tühistasite sertifikaadi, genereerisite uue nimekirja, ja vana profiil püstitab endiselt tunnelit. Tühistamine ise ei ole katki: CRL on allkirjastatud kinnitus, et seerianumber ei ole enam kehtiv, ja see muudab juurdepääsu alles siis, kui TLS-i lõpetav komponent selle laadib, õigele väljaandjale, enne kui teeb vastuvõtuotsuse. Just seal on enamik neist juhtudest, ja seetõttu on tühistamine ja keeldumine kaks erinevat fakti.

Käige allolevad viis kontrolli järjest läbi ja peatuge esimesel, mis ei kehti, sest iga järgnev eeldab, et eelmised on tõesed.

Kontrollige, milline komponent teeb vastuvõtuotsuse

Nimetage protsess, mis valideerib kliendi sertifikaadi, sest ainult see protsess saab nimekirja rakendada. OpenVPN serveris on see deemon ise, mis on seadistatud crl-verify-ga. ocservis on see rida crl failis ocserv.conf. strongSwanis on sisenditeks laaditud CRL-id koos strictcrlpolicy-ga. TLS-i lõpetav puhverserver või seade VPN-i ees võib samuti olla tegelik valideerija, ja kui see nii on, ei näe deemon selle taga kunagi kliendi sertifikaati.

WireGuard kuulub teise kategooriasse. Sellel pole sertifikaate ega tühistamisnimekirja; peer võetakse vastu oma avaliku võtmega konfiguratsioonis, seega juurdepääsu lõpetamine tähendab selle võtme eemaldamist. Kui otsite CRL-i ainult WireGuardiga juurutuses, siis seda mehhanismi seal ei ole.

Jälgige ka lõksu kliendi poolel. Klient, kes keeldub ühendumast, sest talle ei meeldi serveri sertifikaat, rakendab serveri ahelat, mitte ei tühista omaenda volitusi. Kasutaja sertifikaat tühistatakse ainult seal, kus seda kasutaja sertifikaati valideeritakse, ja see on peaaegu alati serveri pool.

Kontrollige, millisele väljaandjale nimekiri allkirjastati

CRL on piiratud ühe väljaandva CA-ga. Juur- ja vahe-CA korral tulevad lehesertifikaadid vahe-CA-lt, seega oluline nimekiri on vahe-CA CRL; juure nimekiri ei ütle nende lehtede kohta midagi. Valele failile suunatud valideerija parsib seda rõõmsalt, ei leia ühtki sobivat kirjet ja võtab kõik vastu.

Kinnitage sidumine enne, kui deemonit puudutate. Sertifikaadil olev väljaandja peab vastama nimekirja subject-ile:

openssl x509 -in client.crt -noout -issuer -serial
openssl crl  -in intermediate.crl -noout -issuer -lastupdate -nextupdate

Kui mõlemad pärinevad samalt CA-lt, on sertifikaadile trükitud seerianumber väärtus, mis peab nimekirjas ilmuma. Kui need ei klapi, hoiate vale CRL-i või selle vale koopiat.

Kehtivus kuulub sama kontrolli juurde. Minevikus olev nextUpdate muudab nimekirja vananenuks, ja valideerija, mis ebaõnnestub suletult, keeldub siis igast kliendist, mitte ainult tühistatust.

Kontrollige, kas seerianumber on deemonile laaditud koopias

Tühistamine kirjutab kirje CA andmebaasi, ja uuesti genereerimine kirjutab uue faili. Kumbki toiming ei jõua töötava deemonini, mis laadis käivitamisel vana koopia. Loetlege nimekiri ja otsige seerianumbrit:

openssl crl -in intermediate.crl -noout -text | grep -i -A2 'Serial Number'
openssl ca -revoke client.crt
openssl ca -gencrl -out intermediate.crl

Seejärel kontrollige, kuidas teie rakendus faili kätte saab. OpenVPN loeb crl-verify-le antud tee üks kord käivitamisel, seega vajab uus nimekiri taaskäivitust või taaskäivitussignaali; sama valik, mis on suunatud kataloogile, loetakse uuesti iga ühenduse jaoks, ja seetõttu on kataloogirežiim olemas. strongSwan peab oma volitused uuesti laadima, näiteks swanctl --load-creds-ga. See, et fail kettal on õige, ja see, et valideerija seda kasutab, on kaks erinevat fakti.

Kontrollige puuduva või aegunud nimekirja poliitikat

See on otsus, mida paljud juurutused ei tee kunagi selgesõnaliselt, ja see määrab, kas tühistamine kaitseb teid või lukustab kõik välja. Fail-closed tähendab, et ilma kasutatava tühistamisteabeta tekib keeldumine; fail-open tähendab, et valideerija jätkab ilma selleta. strongSwan pakub valikut strictcrlpolicy-na. OpenVPN crl-verify-ga keeldub käivitamast failil, mida see ei suuda lugeda ega parsida, ja aegunud nimekiri ilmub TLS-i valideerimisveana aegunud CRL-i kohta, mitte vaikse vastuvõtuna.

State of the revocation dataFail-closed resultFail-open result
List missing or unreadableVerification fails, so expect an outageEvery client connects, including the revoked one
List past nextUpdateValidation errors until a fresh list is deployedOld status is trusted indefinitely
Revoked serial present in the loaded listHandshake rejected for that certificateHandshake rejected for that certificate

Ükskõik millise suuna valite, automatiseerimine loeb rohkem kui valik: töö, mis genereerib CRL-i uuesti enne nextUpdate, ja hoiatus, kui juurutatud koopia vananeb, hoiavad mõlemat poliitikat intsidendiks saamast. OCSP-ga võrguühenduseta kontrollimine viib värskuse vastajale, kuid kehtib sama reegel, sest valideerija, mis ei ole vastuse kontrollimiseks seadistatud, ei muuda midagi.

Kontrollige aktiivset seanssi, seejärel võtme koopiaid

Tühistamist hinnatakse sertifikaadi valideerimise ajal, mis toimub ühendumisel ja uuesti läbirääkimisel. Loodud seanss jätkub, kuni see uuesti läbi räägib, ja OpenVPN-i vaikeväärtus on kord tunnis reneg-sec 3600-ga. Kui inimene peab kohe võrgust väljas olema, lõpetage seanss lisaks nimekirja avaldamisele ja kinnitage seejärel, et taasühendumine lükatakse tagasi.

Eraldage volitused nende koopiatest. Profiili kustutamine ühes sülearvutis ei takista teist sama privaatvõtme koopiat autentimast; tühistamine on see, mis muudab iga koopia kasutuks, ja seda alles siis, kui varasemad kontrollid kehtivad. Andke asendusseadmele oma sertifikaat, et ühe saaks tühistada teist puutumata.

Enne kui nimetate selle lõpetatuks: valideeriv komponent on tuvastatud, nimekirja väljaandja vastab lehe väljaandjale, tühistatud seerianumber on koopias, mille deemon tegelikult laadis, puuduvate või aegunud nimekirjade poliitika on teadlik ja jälgitud, ning aktiivne seanss lõpetati, mitte ei oodatud ära. Formaadid, mis kõige selle taga on, on määratletud RFC 5280.

Seotud artiklid