Netko je opozvao certifikat u CA konzoli i sada se korisnik ne može povezati. Prva je pomisao pronaći poništenje, a u većini PKI sustava ono ne postoji: opoziv je izrečena činjenica o serijskom broju, a podržani put natrag je novi certifikat, a ne obrnuti zapis. Prođite kroz provjere u nastavku redom jer dopuštena popravka ovisi o kodu razloga i o tome je li ključ ikada bio izložen.

Identificirajte certifikat, a ne osobu

Uobičajena se imena ponavljaju. Korisnik koji se ponovno upisao prošlog tromjesečja može imati dva certifikata s istim CN-om i različitim serijskim brojevima, a opoziv jednoga ostavlja drugi u pogonu. Najprije utvrdite točan objekt:

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

Zapišite serijski broj, izdavatelja, datum opoziva i razlog zabilježen u CRL-u. Zatim potvrdite koji uređaji predstavljaju taj serijski broj jer opozvani certifikat može još biti instaliran na prijenosnom računalu, telefonu i rezervnom usmjerivaču, a zamjena koja stigne samo do jednoga od njih stvara drugi incident.

Brza provjera ponašanja potvrđuje stanje bez ikakve promjene:

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

Ako prijavi certifikat kao opozvan, CRL i klijent se slažu; ako se čisto verificira, klijent koji držite nije opozvani i potraga se nastavlja.

Provjerite je li CA rabio zadržavanje ili trajni opoziv

RFC 5280 definira certificateHold kao privremeno stanje, a removeFromCRL kao signal koji ga oslobađa. Taj je životni ciklus stvaran, ali nije univerzalna tipka za poništenje. Čitanje koda razloga kaže je li izdavatelj ikada namjeravao podržati oslobađanje.

Zamka je pretpostavka da privremena namjera znači privremeni zapis. Ako zapis u CA nosi keyCompromise ili cessationOfOperation, certifikat je trajno opozvan bez obzira na to što je osoba koja je pritisnula tipku namjeravala. Obrnuto, zapis označen certificateHold na CA koji ne implementira oslobađanje zadržavanja trajan je u praksi jer ništa nikada neće objaviti oslobađanje.

CA-ovi zasnovani na OpenSSL-u ilustriraju granicu. Naredba ca prihvaća vrijednosti -crl_reason, uključujući certificateHold i removeFromCRL, ali ne stvara delta CRL-ove — dokumentacija OpenSSL CA navodi to ograničenje za svoj CRL izlaz. Pun CRL koji jednostavno izostavlja serijski broj drukčiji je model objavljivanja od delte koja kaže "ovaj je zapis oslobođen", pa lijepljenje removeFromCRL u VPN CA zasnovan na OpenSSL-u ne daje standardima definirano oslobađanje.

Ako je ključ možda bio izložen, zamijenite ga

Opozvani certifikat izjava je da se ovom ključu više ne može vjerovati. Ako je opoziv bio suštinski ispravan — prijenosno računalo izgubljeno, ključ kopiran na dijeljeni disk, privatni ključ zalijepljen u tiket — vraćanje istog certifikata obrće sigurnosnu odluku koja je radila kako treba.

Izdajte novi par ključeva kroz postupak upisa, distribuirajte novi profil i ostavite stari serijski broj opozvanim cijeli njegov životni vijek. Ažurirajte sve što pinom veže identitet uz serijski broj ili otisak, uključujući popise odobrenja, inventare uređaja i nadzor koji očekuje određeni certifikat.

Argument praktičnosti za vraćanje staroga stvaran je, ali na njega treba odgovoriti izričito, a ne tiho. "Korisniku treba pristup danas" razlog je za ubrzavanje izdavanja, a ne za povlačenje opoziva ključa za koji ne možete odgovarati.

Ako je riječ o administrativnoj pogrešci, zamijenite pod nadzorom

Kada je opoziv jednostavno bio pogrešan i ključ nikada nije bio izložen, popravak je i dalje kontrolirana zamjena, a ne uređivanje. Rabite podržani postupak izdavatelja, sačuvajte serijski broj i povijest izdavanja netaknutima i izbjegnite dva primamljiva prečaca: okretanje statusnog znaka u index.txt iz R natrag u V i brisanje retka izdavanja kako bi novi certifikat mogao ponovno rabiti serijski broj.

Na OpenSSL CA baza je podataka odvojena tabulatorima i lako se pogrešno pročita, što ručno uređivanje čini privlačnim:

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

Čitajte ju, ne pišite ju. Uređivanje datoteke mijenja sljedeći CRL bez ikakva revizijskog traga, a svaka druga instanca CA ili sigurnosna kopija koja još drži izvorni redak kasnije će se s njom razići.

Nakon izdavanja zamjene objavite svježi CRL uobičajenim mehanizmom i pustite klijente da ga preuzmu. Uklanjanje CRL-a, skraćivanje njegova vijeka na ništa ili isključivanje provjere opoziva u profilu klijenta popravlja jednoga korisnika slabeći svaki drugi opoziv koji je CA ikada objavio.

Potvrdite svježe odobrenje i sačuvajte zapis

Testirajte novom vezom, a ne sesijom koja je već bila otvorena. Živi tunel možda neće ponovno pokrenuti provjere odobrenja koje provodi svježi handshake, a CRL predmemorije znače da se klijent može nastaviti povezivati dok se ne osvježi. Prekinite, ponovno se povežite i u poslužiteljskom dnevniku potvrdite koji je serijski broj odobren.

Zabilježite što se dogodilo dok je još svježe: koji je serijski broj opozvan, od koga, s kojim razlogom, koja je zamjena izdana i kada je CRL ponovno objavljen. Taj zapis omogućuje sljedeći pregled opoziva i ujedno je dokaz da je pogreška riješena, a ne skrivena.

Za kratke suspenzije ubuduće rabite mehanizam pauze odobrenja ako ga implementacija ima — račun deaktiviran na sloju identiteta, uklonjeno članstvo u grupi, zadržan profil klijenta. To drži privremenu odluku o politici odvojenom od pitanja je li izdani certifikat još pouzdan, a upravo se taj razlikovni kriterij prvi put izgubio.

Povezani članci