Kāds CA konsolē atsauca sertifikātu, un tagad lietotājs nevar izveidot savienojumu. Pirmais instinkts ir meklēt atsaukšanas atcelšanu, un vairumā PKI tās nav: atsaukšana ir paziņots fakts par sērijas numuru, un atbalstītais atpakaļceļš ir jauns sertifikāts, nevis apgriezts ieraksts. Veiciet tālāk minētās pārbaudes secīgi, jo atļautā labošana ir atkarīga no iemesla koda un no tā, vai atslēga kādreiz tika atklāta.

Identificējiet sertifikātu, nevis personu

Parastie vārdi atkārtojas. Lietotājam, kurš pagājušajā ceturksnī reģistrējās no jauna, var būt divi sertifikāti ar vienu CN un dažādiem sērijas numuriem, un viena atsaukšana otru atstāj darbojamies. Vispirms nosakiet precīzu objektu:

openssl x509 -in client.crt -noout -serial -issuer -subject -dates
openssl crl -in ca.crl -noout -text | head -40

Pierakstiet sērijas numuru, izdevēju, atsaukšanas datumu un CRL ierakstīto iemeslu. Pēc tam pārbaudiet, kuras ierīces uzrāda šo sērijas numuru, jo atsaukts sertifikāts var joprojām būt instalēts klēpjdatorā, tālrunī un rezerves maršrutētājā, un aizstājējs, kas sasniedz tikai vienu no tiem, rada otru incidentu.

Ātra uzvedības pārbaude apstiprina stāvokli, neko nemainot:

openssl verify -crl_check -CAfile ca.crt -CRLfile ca.crl client.crt

Ja tā ziņo sertifikātu kā atsauktu, CRL un klients saskan; ja tas pārbaudās tīri, jūsu rokās esošais klients nav atsauktais, un meklēšana turpinās.

Pārbaudiet, vai CA izmantoja aizturēšanu vai pastāvīgu atsaukšanu

RFC 5280 definē certificateHold kā pagaidu stāvokli un removeFromCRL kā signālu, kas to atbrīvo. Šis dzīves cikls ir reāls, bet tas nav universāla atsaukšanas poga. Iemesla koda lasīšana pasaka, vai izdevējs kādreiz bija iecerējis atbalstīt atbrīvošanu.

Slazds ir pieņēmums, ka pagaidu nodoms nozīmē pagaidu ierakstu. Ja CA ierakstā ir keyCompromise vai cessationOfOperation, sertifikāts ir pastāvīgi atsaukts, neatkarīgi no tā, ko bija iecerējusi poga nospiedusī persona. Un otrādi, ieraksts ar atzīmi certificateHold CA, kas neievieš aizturēšanas atbrīvošanu, praksē ir pastāvīgs, jo nekas nekad nepublizēs atbrīvošanu.

Uz OpenSSL balstīti CA ilustrē ierobežojumu. Komanda ca pieņem -crl_reason vērtības, tostarp certificateHold un removeFromCRL, bet negenerē delta CRL — OpenSSL CA dokumentācija norāda šo ierobežojumu tās CRL izvadei. Pilns CRL, kas vienkārši izlaiž sērijas numuru, ir cits publicēšanas modelis nekā delta, kas saka "šis ieraksts ir atbrīvots", tāpēc removeFromCRL ielīmēšana uz OpenSSL balstītā VPN CA nerada standartos definēto atbrīvošanu.

Ja atslēga varēja būt atklāta, nomainiet to

Atsaukts sertifikāts ir paziņojums, ka šai atslēgai vairs nevar uzticēties. Ja atsaukšana būtībā bija pareiza — pazaudēts klēpjdators, atslēga nokopēta koplietotā diskā, privātā atslēga ielīmēta biļetē — tā paša sertifikāta atjaunošana apgriež drošības lēmumu, kas darbojās, kā paredzēts.

Izsniedziet jaunu atslēgu pāri reģistrācijas procesā, izplatiet jauno profilu un atstājiet veco sērijas numuru atsauktu visā tā darbības laikā. Atjauniniet visu, kas piesaista identitāti sērijas numuram vai pirkstu nospiedumam, tostarp uzņemšanas sarakstus, ierīču inventarizāciju un uzraudzību, kas gaida konkrētu sertifikātu.

Ērtības arguments vecā atjaunošanai ir reāls, bet uz to jāatbild skaidri, nevis klusām. "Lietotājam šodien vajag piekļuvi" ir iemesls paātrināt izsniegšanu, nevis iemesls atcelt atslēgas atsaukšanu, par kuru jūs nevarat atskaitīties.

Ja tā bija administratīva kļūda, nomainiet kontrolēti

Kad atsaukšana bija vienkārši kļūdaina un atslēga nekad netika atklāta, labošana joprojām ir kontrolēta aizstāšana, nevis rediģēšana. Izmantojiet atbalstīto izdevēja procesu, saglabājiet sērijas numuru un izsniegšanas vēsturi neskartu, un izvairieties no diviem vilinošiem īsceļiem: statusa rakstzīmes index.txt nomaiņas no R atpakaļ uz V, un izsniegšanas rindas dzēšanas, lai jauns sertifikāts varētu atkārtoti izmantot sērijas numuru.

OpenSSL CA datubāze ir atdalīta ar tabulācijas zīmēm, un to ir viegli nepareizi nolasīt, kas padara manuālu rediģēšanu vilinošu:

awk -F'\t' '$1=="R" {print $4, $3, $6}' index.txt

Lasiet to, nerakstiet. Faila rediģēšana maina nākamo CRL bez jebkādām audita pēdām, un jebkura otra CA instance vai dublējums, kurā vēl ir oriģinālā rinda, vēlāk ar to nesaskanēs.

Pēc aizstājēja izsniegšanas publicējiet jaunu CRL ar parasto mehānismu un ļaujiet klientiem to paņemt. CRL noņemšana, tā darbības laika saīsināšana līdz nullei vai atsaukšanas pārbaudes izslēgšana klienta profilā salabo vienu lietotāju, vājinot katru citu atsaukšanu, ko CA jebkad ir publicējusi.

Apstipriniet jaunu uzņemšanu un saglabājiet ierakstu

Pārbaudiet ar jaunu savienojumu, nevis ar jau atvērtu sesiju. Dzīvs tunelis var atkārtoti neizpildīt uzņemšanas pārbaudes, ko veic jauna rokas saspiešana, un CRL kešatmiņas nozīmē, ka klients var turpināt savienoties, līdz atjaunojas. Atvienojieties, pievienojieties vēlreiz un servera žurnālā apstipriniet, kurš sērijas numurs tika pieņemts.

Pierakstiet, kas notika, kamēr tas vēl ir svaigs: kurš sērijas numurs tika atsaukts, kas, kāda iemesla dēļ, kāds aizstājējs tika izsniegts un kad CRL tika publicēts no jauna. Šis ieraksts ļauj veikt nākamo atsaukšanas pārskatu, un tas ir arī pierādījums, ka kļūda tika risināta, nevis slēpta.

Nākotnē īsiem apturējumiem izmantojiet uzņemšanas pauzes mehānismu, ja izvietojumā tāds ir — identitātes slānī deaktivizēts konts, noņemta grupas dalība, aizturēts klienta profils. Tas notur pagaidu politikas lēmumu atsevišķi no jautājuma, vai izsniegts sertifikāts joprojām ir uzticams, un tieši šī atšķirība pirmajā reizē tika pazaudēta.

Saistītie raksti