Atšauktas VPN sertifikatas vis dar jungiasi? Patikrinkite CRL taikymą
Atšaukti sertifikatai vis dar jungiasi, kai CRL niekada nepasiekia tikrintojo. Patikrinkite šia tvarka išdavėją, įkeltą serijos numerį, perkrovimo elgseną ir aktyvias sesijas.
Atšaukėte sertifikatą, sugeneravote naują sąrašą, o senas profilis vis dar pakelia tunelį. Pats atšaukimas nesugedęs: CRL yra pasirašytas pareiškimas, kad serijos numeris nebėra galiojantis, ir jis keičia prieigą tik tada, kai TLS užbaigiantis komponentas jį įkelia, tinkamam išdavėjui, prieš priimdamas priėmimo sprendimą. Būtent čia yra dauguma tokių atvejų, todėl atšaukimas ir atmetimas yra du skirtingi faktai.
Pereikite penkis žemiau pateiktus patikrinimus iš eilės ir sustokite ties pirmuoju, kuris netenkinamas, nes kiekvienas vėlesnis laiko ankstesnius teisingais.
Patikrinkite, kuris komponentas priima priėmimo sprendimą
Įvardykite procesą, kuris validuoja kliento sertifikatą, nes tik tas procesas gali taikyti sąrašą. OpenVPN serveryje tai pats daemonas, sukonfigūruotas su crl-verify. ocserv atveju tai crl eilutė ocserv.conf faile. strongSwan atveju įvestys yra įkelti CRL kartu su strictcrlpolicy. TLS užbaigiantis tarpinis serveris ar įrenginys prieš VPN taip pat gali būti tikrasis tikrintojas, o jei taip, daemonas už jo niekada nemato kliento sertifikato.
WireGuard priklauso kitai kategorijai. Jis neturi sertifikatų ir neturi atšaukimo sąrašo; peer priimamas pagal savo viešąjį raktą konfigūracijoje, todėl prieigos nutraukimas reiškia to rakto pašalinimą. Jei ieškote CRL diegime tik su WireGuard, to mechanizmo ten nėra.
Saugokitės ir spąstų kliento pusėje. Klientas, kuris atsisako jungtis, nes jam nepatinka serverio sertifikatas, taiko serverio grandinę, o ne atšaukia savo paties prisijungimo duomenis. Vartotojo sertifikatas atšaukiamas tik ten, kur tas vartotojo sertifikatas validuojamas, o tai beveik visada serverio pusė.
Patikrinkite, kuriam išdavėjui sąrašas buvo pasirašytas
CRL apsiriboja viena išduodančia CA. Esant šakninei ir tarpinei CA, lapų sertifikatai gaunami iš tarpinės, todėl svarbus sąrašas yra tarpinės CRL; šakninės sąrašas nieko nesako apie tuos lapus. Tikrintojas, nukreiptas į netinkamą failą, jį linksmai parsina, neranda atitinkančio įrašo ir priima viską.
Patvirtinkite poravimą prieš liesdami daemoną. Išdavėjas sertifikate turi atitikti sąrašo subject:
openssl x509 -in client.crt -noout -issuer -serial
openssl crl -in intermediate.crl -noout -issuer -lastupdate -nextupdateKai abu gaunami iš tos pačios CA, sertifikatui išspausdintas serijos numeris yra reikšmė, kuri turi pasirodyti sąraše. Jei jie nesutampa, laikote netinkamą CRL arba netinkamą jo kopiją.
Galiojimas priklauso tam pačiam patikrinimui. nextUpdate praeityje sąrašą daro pasenusį, o tikrintojas, kuris nepavyksta uždarai, tada atmes kiekvieną klientą, o ne tik atšauktąjį.
Patikrinkite, ar serijos numeris yra daemono įkeltame faile
Atšaukimas įrašo įrašą į CA duomenų bazę, o pergeneravimas įrašo naują failą. Nė vienas veiksmas nepasiekia veikiančio daemono, kuris paleidimo metu įkėlė seną kopiją. Išmeskite sąrašą ir ieškokite serijos numerio:
openssl crl -in intermediate.crl -noout -text | grep -i -A2 'Serial Number'
openssl ca -revoke client.crt
openssl ca -gencrl -out intermediate.crlTada patikrinkite, kaip jūsų diegimas paima failą. OpenVPN skaito kelią, duotą crl-verify, vieną kartą paleidimo metu, todėl naujam sąrašui reikia paleidimo iš naujo arba paleidimo iš naujo signalo; ta pati parinktis, nukreipta į katalogą, iš naujo skaitoma kiekvienam prisijungimui, ir todėl egzistuoja katalogo režimas. strongSwan turi iš naujo įkelti savo prisijungimo duomenis, pavyzdžiui, su swanctl --load-creds. Tai, kad failas diske yra teisingas, ir tai, kad tikrintojas jį naudoja, yra du skirtingi faktai.
Patikrinkite trūkstamo arba pasenusio sąrašo politiką
Tai sprendimas, kurio daugelis diegimų niekada nepriima aiškiai, ir jis nulemia, ar atšaukimas jus apsaugo, ar visus užrakina lauke. Fail-closed reiškia, kad be tinkamos atšaukimo informacijos įvyksta atmetimas; fail-open reiškia, kad tikrintojas tęsia be jos. strongSwan pateikia pasirinkimą kaip strictcrlpolicy. OpenVPN su crl-verify atsisako paleisti failą, kurio negali perskaityti ar išparsinti, o pasenęs sąrašas pasirodo kaip TLS tikrinimo klaida dėl pasenusio CRL, o ne kaip tylus priėmimas.
| 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 |
Kad ir kokią kryptį pasirinktumėte, automatizavimas svarbesnis už pasirinkimą: užduotis, kuri pergeneruoja CRL prieš nextUpdate, ir įspėjimas, kai įdiegta kopija sensta, neleidžia nė vienai politikai tapti incidentu. Internetinis tikrinimas su OCSP perkelia šviežumą į atsakiklį, bet galioja ta pati taisyklė, nes tikrintojas, nesukonfigūruotas tikrinti atsakymo, nieko nekeičia.
Patikrinkite aktyvią sesiją, tada rakto kopijas
Atšaukimas vertinamas sertifikato validavimo metu, kuris vyksta jungiantis ir persiderant. Nustatyta sesija veikia toliau, kol nepersidera, o OpenVPN numatytoji reikšmė yra kartą per valandą su reneg-sec 3600. Jei asmuo turi nedelsiant išeiti iš tinklo, užbaikite sesiją kartu su sąrašo paskelbimu, ir tada patvirtinkite, kad pakartotinis prisijungimas atmetamas.
Atskirkite prisijungimo duomenis nuo jų kopijų. Profilio ištrynimas viename nešiojamajame kompiuteryje nesutrukdo kitai to paties privataus rakto kopijai autentifikuotis; atšaukimas yra tai, kas padaro kiekvieną kopiją nenaudingą, ir tik kai ankstesni patikrinimai galioja. Duokite pakaitiniam įrenginiui savo sertifikatą, kad vieną būtų galima atšaukti neliečiant kito.
Prieš pavadindami tai baigtu: validuojantis komponentas nustatytas, sąrašo išdavėjas atitinka lapo išdavėją, atšauktas serijos numeris yra kopijoje, kurią daemonas faktiškai įkėlė, trūkstamų ar pasenusių sąrašų politika yra sąmoninga ir stebima, o aktyvi sesija buvo užbaigta, o ne palaukta. Formatai, esantys už viso to, nurodyti RFC 5280.