Fișierul certificatului clientului a dispărut, iar reflexul este să revocați numele și să emiteți unul nou. Acel reflex lasă certificatul original valid, pentru că revocarea se bazează pe un număr de serie, nu pe o etichetă. CA păstrează aproape sigur o copie a ceea ce a emis, iar găsirea acelei copii este întreaga sarcină.

Pierderea unui fișier nu este pierderea înregistrării CA

O PKI Easy-RSA păstrează certificatele publice pe care le-a emis, iar versiunile actuale arhivează și copii după serie în directorul certs_by_serial al PKI. Cheia privată nu este necesară pentru a revoca ceva. Important este certificatul exact pe care CA l-a semnat, iar CA îl are deja.

Lucrați pe o copie de siguranță a PKI corecte, împreună cu administratorul care o deține. Revocarea este o operațiune auditabilă, nu o reparație făcută pe o bază de date de producție la miezul nopții.

O copie a certificatului public încorporat al clientului este suficientă și ea, dacă implementarea a păstrat una.

Citiți mai întâi emitentul și seria

Examinați PEM-ul recuperat și notați emitentul, numărul de serie, subiectul și perioada de valabilitate. Numărul de serie este unic în sfera unui emitent, nu între toate CA din mediul dumneavoastră, așa că emitentul face parte din identitate. Dacă mai multe certificate împart un subiect, exact aceste serii le deosebesc.

Comparați valorile cu înregistrările CA și cu dispozitivul sau persoana despre care credeți că deține certificatul.

Un nume comun poate fi reutilizat, și de obicei se întâmplă. Nu decideți ce certificate retrageți înainte ca seriile să fie notate.

De ce revocarea noului certificat nu face nimic

Emiterea unui înlocuitor cu același nume comun creează un al doilea certificat cu o altă serie. Revocarea înlocuitorului îl retrage pe cel nou și lasă originalul valid până la expirare. Din perspectiva CA sunt două obiecte independente, iar un CRL listează serii, nu nume. Indexul CA păstrează o linie pentru fiecare certificat emis exact din acest motiv.

Aceeași confuzie produce eroarea inversă: ștergerea fișierului clientului și presupunerea că CA l-a uitat. Ștergerea la client nu este un eveniment de revocare, iar certificatul continuă să funcționeze pentru oricine are o copie.

Ambele erori provin din tratarea numelui ca identitate.

Revocați certificatul pe care îl numește seria

Identificați obiectul înainte de a atinge CA: openssl x509 -in recovered-client.pem -noout -issuer -serial -subject -dates tipărește cele patru valori într-o singură trecere, iar seria este ceea ce comparați cu arhiva CA. Easy-RSA păstrează acea arhivă sub pki/certs_by_serial, cu un fișier pentru fiecare serie. Comanda de revocare acceptă un nume comun, nu o serie, așa că copiați fișierul arhivat în pki/issued/<common-name>.crt și lăsați numele să indice obiectul identificat. Rulați easyrsa revoke <common-name> din directorul PKI, apoi verificați dacă linia corespunzătoare din index.txt a trecut la R. Seria este modul în care alegeți obiectul, nu un argument pe care comanda îl acceptă.

openssl x509 -in recovered-client.pem -noout -issuer -serial -subject -dates
cp pki/certs_by_serial/A1B2C3D4.pem pki/issued/client-01.crt
./easyrsa revoke client-01
grep -n client-01 pki/index.txt
./easyrsa gen-crl

Dacă index.txt nu afișează R, opriți-vă și citiți eroarea înainte de a genera un CRL, pentru că un CRL construit dintr-o înregistrare încă validă nu retrage nimic. Numai după ce linia se schimbă rulați easyrsa gen-crl și treceți la distribuirea fișierului.

Publicați CRL-ul acolo unde este efectiv aplicat

Generați un CRL nou prin fluxul de lucru acceptat al PKI, apoi publicați-l la fiecare verificator care aplică revocările acestui emitent.

Un fișier actualizat care stă pe CA nu schimbă nimic, pentru că VPN-ul încheie decizia la propriul verificator. Verificați emitentul CRL-ului, perioada de valabilitate și seriile revocate, și confirmați că serviciul reîncarcă fișierul în loc să îl cacheze pe cel anterior. Proprietatea și calea contează la fel de mult ca conținutul: un CRL pe care demonul nu îl poate citi este indistinguibil de lipsa oricărui CRL. Opțiunea crl-verify din OpenVPN numește fișierul pe care demonul îl citește, așa că verificați acea cale și proprietatea fișierului în configurația serverului.

Verificați cu o încercare reală de conectare, nu cu marcajul temporal al fișierului.

Știți când un CRL este instrumentul greșit

Dacă cheia privată a emitentului nu mai este de încredere, retragerea seriilor cunoscute nu poate împiedica un deținător neautorizat să semneze certificate noi. Aceasta este o tranziție de încredere a emitentului, adică o CA nouă și un plan de distribuție, nu încă o intrare în CRL. Faptul că un fost administrator a avut acces nu este în sine dovada utilizării abuzive a cheii, așa că obțineți faptele înainte de a reconstrui încrederea.

Editarea manuală a bazei de date de emitere pentru a inversa o literă de stare nu înlocuiește o revocare semnată și lasă CRL-ul inconsecvent cu înregistrările.

Păstrați seria, CRL-ul și pasul de distribuție într-o singură notă, iar următorul audit devine un exercițiu de lectură. Proiectul Easy-RSA documentează comenzile acceptate pentru versiunea instalată, iar aceasta este singura interfață care merită urmată.

Articole similare