Gatewayul dumneavoastră acceptă un certificat de client pe care nu l-a văzut niciodată, pentru că ceea ce este configurat este un emitent de încredere, iar certificatul sosește în timpul handshake-ului. Așa ar trebui să funcționeze protocolul, și de aceea o listare de director pe server este un inventar slab. Emitentul știe ce a creat, serverul știe ce s-a conectat, iar starea de revocare știe ce a fost retras. Un inventar care amestecă aceste trei înregistrări ajunge să afirme ceva ce niciuna dintre ele nu a spus.

Gatewayul are încredere într-un emitent, nu într-o listă de fișiere

Validarea compară un certificat prezentat cu o ancoră de încredere, astfel încât o identitate creată ieri de același emitent se conectează fără a fi existat vreodată pe discul serverului. Nu trebuie copiat nimic pentru ca acest lucru să se întâmple, și nimeni nu trebuie să îl aproape manual. Înregistrările proprii ale serverului descriu deci sosiri, nu populația de identități care ar putea sosi.

Golul invers este la fel de incomod. Un director poate conține certificate expirate, revocate și identități emise pentru dispozitive care nu au fost niciodată implementate. Numărarea fișierelor răspunde la câte fișiere există, ceea ce este o întrebare pe care nimeni nu a pus-o. Începeți în schimb cu înregistrările care poartă sens.

Patru întrebări, patru registre diferite

Fiecare tip de înregistrare răspunde bine la o întrebare și prost la celelalte, de aceea un raport care le fuzionează pare complet, deși este greșit într-un mod precis. Tabelul de mai jos le ordonează după întrebarea pe care o rezolvă, nu după sistemul care le produce.

Question you are answeringWhere the answer livesHow quickly it changesWhat it will never show
Was this identity ever created?The issuer's issuance databaseOnly when something is issuedWhether the device still exists
Is a copy sitting on this host?The paths you actually inspectedWhenever anyone copies filesCertificates that were never copied here
Has the issuer withdrawn it?Published revocation stateWhen the issuer next publishesWithdrawals that are not published yet
Is it connected right now?The live session tableContinuouslyAnything about past or future sessions

O arhivă de certificate publice nu este un secret, deoarece nu conține chei private, dar nici nu poate fi partajată. Subiecții și numele dispozitivelor dezvăluie detalii operaționale, iar raportul ar trebui să rămână la publicul care are nevoie de el. Cheile private rămân complet în afara inventarului, pentru că inventarul are nevoie de metadate, nu de acreditări.

Emitentul și numărul de serie sunt singura cheie stabilă

Subiecții sunt reciclați și numele fișierelor sunt refolosite, așa că un nume care anul trecut identifica un dispozitiv poate acum să identifice altul. Niciunul nu este o cheie, iar un raport construit pe oricare dintre ele va fuziona în cele din urmă două identități într-o singură linie.

Perechea emitent și număr de serie identifică un certificat în mod unic, iar ambele câmpuri provin din certificatul însuși. Înregistrați-le împreună cu subiectul, datele de valabilitate, sursa din care a venit copia și persoana sau dispozitivul responsabil. Adăugați starea de revocare și de implementare ca câmpuri separate, cu propriile momente de observare, pentru că un certificat în interiorul ferestrei sale de valabilitate nu este automat autorizat. Aceste două fapte trăiesc în sisteme diferite, iar fuzionarea lor ascunde cazul în care o identitate a fost retrasă în timp ce fișierul ei încă pare actual.

Citiți un certificat pe rând

Un metacaracter care se extinde pe un director nu este o interfață batch și ascunde ce fișier a produs ce ieșire. Citiți metadatele certificat cu certificat și citiți partea de revocare din propriul său artefact. Referința OpenSSL x509 enumeră câmpurile pe care le tipăresc acele opțiuni.

openssl x509 -in <cert>.pem -noout -issuer -serial -subject -dates -fingerprint -sha256
openssl crl -in <issuer>.crl -noout -text | head -n 40

Pentru o PKI Easy-RSA administrată, interogați baza de date de emitere prin fluxul de lucru acceptat de instrument în loc să presupuneți o dispunere de directoare, și păstrați originalele doar în citire cât timp inventarul este asamblat. Formatul registrului este suficient de regulat pentru a număra intrările valide și a le lista pe cele retrase fără a deschide baza de date manual.

grep -c '^V' pki/index.txt
grep '^R' pki/index.txt | cut -f4,5

Un inventar care supraviețuiește următoarei emiteri

O descărcare unică a unui director devine depășită în momentul în care este emis certificatul următor, așa că construiți raportul din fluxul de emitere și lăsați-l să se actualizeze ca parte a funcționării normale. Aceasta face raportul și reproductibil, ceea ce contează atunci când două persoane nu sunt de acord cu privire la ce s-a emis.

Folosiți rezultatul pentru decizii de reînnoire și retragere și nu ca exercițiu de foaie de calcul. Ștergerea unei copii locale nu invalidează copiile la distanță care există deja. Retrageți identitatea prin fluxul de revocare și autorizare configurat, apoi înregistrați retragerea cu data ei. O identitate care a dispărut de pe server, dar în care emitentul încă are încredere, nu a fost retrasă, iar această diferență separă un inventar exact de unul care doar liniștește.

Articole similare