Atšaukėte netinkamą VPN sertifikatą? Atkūrimo parinktys ir ribos
Nustatykite išdavėją, serijos numerį ir priežasties kodą prieš liesdami CA. Nuolatinis atšaukimas, sertifikato sulaikymas ir priėmimo pertrauka yra trys taisymai.
Kažkas atšaukė sertifikatą CA konsolėje, ir dabar vartotojas negali prisijungti. Pirmas instinktas – ieškoti atšaukimo atgal, ir daugelyje PKI jo nėra: atšaukimas yra pareikštas faktas apie serijos numerį, o palaikomas kelias atgal yra naujas sertifikatas, o ne apverstas įrašas. Atlikite toliau pateiktus patikrinimus iš eilės, nes kuri taisymo priemonė leidžiama, priklauso nuo priežasties kodo ir nuo to, ar raktas kada nors buvo atskleistas.
Identifikuokite sertifikatą, o ne asmenį
Bendri vardai kartojasi. Vartotojas, praėjusį ketvirtį registravęsis iš naujo, gali turėti du sertifikatus su tuo pačiu CN ir skirtingais serijos numeriais, o vieno atšaukimas palieka kitą veikiantį. Pirmiausia nustatykite tikslų objektą:
openssl x509 -in client.crt -noout -serial -issuer -subject -dates
openssl crl -in ca.crl -noout -text | head -40
Užrašykite serijos numerį, išdavėją, atšaukimo datą ir CRL įrašytą priežastį. Tada patvirtinkite, kurie įrenginiai pateikia tą serijos numerį, nes atšauktas sertifikatas gali vis dar būti įdiegtas nešiojamajame kompiuteryje, telefone ir atsarginiame maršrutizatoriuje, o pakeitimas, pasiekiantis tik vieną iš jų, sukelia antrą incidentą.
Greitas elgsenos patikrinimas patvirtina būseną nieko nekeisdamas:
openssl verify -crl_check -CAfile ca.crt -CRLfile ca.crl client.crt
Jei jis praneša sertifikatą kaip atšauktą, CRL ir klientas sutinka; jei jis patikrinamas švariai, jūsų laikomas klientas nėra atšauktasis, ir paieška tęsiasi.
Patikrinkite, ar CA naudojo sulaikymą, ar nuolatinį atšaukimą
RFC 5280 apibrėžia certificateHold kaip laikiną būseną, o removeFromCRL – kaip signalą, kuris ją atlaisvina. Tas gyvavimo ciklas yra tikras, bet tai nėra universalus atšaukimo mygtukas. Priežasties kodo skaitymas pasako, ar išdavėjas kada nors ketino palaikyti atlaisvinimą.
Spąstai – manyti, kad laikinas ketinimas reiškia laikiną įrašą. Jei CA įraše yra keyCompromise arba cessationOfOperation, sertifikatas atšauktas visam laikui, nepaisant to, ką ketino spausti mygtuką paspaudęs asmuo. Atvirkščiai, įrašas, pažymėtas certificateHold CA, kuri neįgyvendina sulaikymo atlaisvinimo, praktiškai yra nuolatinis, nes niekas niekada nepaskelbs atlaisvinimo.
OpenSSL pagrįsti CA iliustruoja ribą. Komanda ca priima -crl_reason reikšmes, įskaitant certificateHold ir removeFromCRL, bet negeneruoja delta CRL – OpenSSL CA dokumentacija nurodo šį CRL išvesties apribojimą. Visas CRL, kuris tiesiog praleidžia serijos numerį, yra kitas publikavimo modelis nei delta, sakanti "šis įrašas atlaisvintas", todėl removeFromCRL įklijavimas į OpenSSL pagrįstą VPN CA nesukuria standartų apibrėžto atlaisvinimo.
Jei raktas galėjo būti atskleistas, pakeiskite jį
Atšauktas sertifikatas yra pareiškimas, kad šiuo raktu nebegalima pasitikėti. Jei atšaukimas buvo iš esmės teisingas – pamestas nešiojamasis kompiuteris, raktas nukopijuotas į bendrą diską, privatusis raktas įklijuotas į bilietą – to paties sertifikato atkūrimas apverčia saugumo sprendimą, kuris veikė kaip numatyta.
Išduokite naują raktų porą per registracijos procesą, paskirstykite naują profilį ir palikite seną serijos numerį atšauktą visą jo galiojimo laiką. Atnaujinkite viską, kas fiksuoja tapatybę pagal serijos numerį ar piršto atspaudą, įskaitant priėmimo sąrašus, įrenginių inventorius ir stebėjimą, kuris tikisi konkretaus sertifikato.
Patogumo argumentas atkurti senąjį yra tikras, bet į jį reikia atsakyti aiškiai, o ne tyliai. "Vartotojui šiandien reikia prieigos" yra priežastis paspartinti išdavimą, o ne priežastis atšaukti kito rakto atšaukimą, už kurį negalite atsiskaityti.
Jei tai buvo administracinė klaida, pakeiskite kontroliuojamai
Kai atšaukimas buvo tiesiog klaidingas, o raktas niekada nebuvo atskleistas, taisymas vis tiek yra kontroliuojamas pakeitimas, o ne redagavimas. Naudokite palaikomą išdavėjo procesą, išsaugokite serijos numerį ir išdavimo istoriją, ir venkite dviejų viliojančių trumpiklių: būsenos simbolio index.txt faile pakeitimo iš R atgal į V ir išdavimo eilutės ištrynimo, kad naujas sertifikatas galėtų naudoti serijos numerį iš naujo.
OpenSSL CA duomenų bazė atskirta tabuliavimo ženklais ir ją lengva neteisingai perskaityti, todėl rankinis redagavimas atrodo patrauklus:
awk -F'\t' '$1=="R" {print $4, $3, $6}' index.txt
Skaitykite ją, nerašykite. Failo redagavimas pakeičia kitą CRL be jokio audito pėdsako, o bet kuri antra CA kopija ar atsarginė kopija, kurioje dar yra pirminė eilutė, vėliau su ja nesutars.
Išdavę pakeitimą, paskelbkite naują CRL įprastu mechanizmu ir leiskite klientams jį pasiimti. CRL pašalinimas, jo galiojimo sutrumpinimas iki nulio ar atšaukimo tikrinimo išjungimas kliento profilyje sutaiso vieną vartotoją susilpnindamas kiekvieną kitą atšaukimą, kurį CA kada nors paskelbė.
Patvirtinkite naują priėmimą ir išsaugokite įrašą
Testuokite nauju ryšiu, o ne jau atidaryta sesija. Gyvas tunelis gali iš naujo neįvykdyti priėmimo patikrinimų, kuriuos atlieka naujas rankos paspaudimas, o CRL podėliai reiškia, kad klientas gali toliau jungtis, kol atsinaujins. Atsijunkite, prisijunkite iš naujo ir serverio žurnale patvirtinkite, kuris serijos numeris buvo priimtas.
Užfiksuokite, kas įvyko, kol tai dar šviežia: kuris serijos numeris atšauktas, kas, dėl kokios priežasties, koks pakeitimas išduotas ir kada CRL paskelbtas iš naujo. Tas įrašas leidžia atlikti kitą atšaukimo peržiūrą ir yra įrodymas, kad klaida buvo sutvarkyta, o ne paslėpta.
Ateityje trumpiems sustabdymams naudokite priėmimo pauzės mechanizmą, jei diegimas jį turi – tapatybės sluoksnyje išjungta paskyra, pašalinta grupės narystė, sulaikytas kliento profilis. Tai atskiria laikiną politikos sprendimą nuo klausimo, ar išduotas sertifikatas vis dar patikimas, ir būtent šis skirtumas pirmą kartą buvo prarastas.