Din gateway accepterer et klientcertifikat, den aldrig har set, fordi det, den er konfigureret med, er en betroet udsteder, og certifikatet ankommer under håndtrykket. Sådan er protokollen ment at fungere, og det er også derfor en mappeliste på serveren er et dårligt inventar. Udstederen ved, hvad den har oprettet, serveren ved, hvad der har forbundet, og tilbagekaldelsestilstanden ved, hvad der er trukket tilbage. Et inventar, der blander disse tre registre, ender med at hævde noget, som ingen af dem har sagt.

Gatewayen stoler på en udsteder, ikke på en filliste

Validering sammenligner et fremvist certifikat med et betroet anker, så en identitet, der blev oprettet i går af den samme udsteder, forbinder uden nogensinde at have eksisteret på serverens disk. Der skal ikke kopieres noget for, at det sker, og ingen skal godkende det manuelt. Serverens egne registre beskriver derfor ankomster, ikke populationen af identiteter, der kunne ankomme.

Hullet den anden vej er lige så akavet. En mappe kan indeholde udløbne certifikater, tilbagekaldte og identiteter udstedt til enheder, der aldrig blev udrullet. At tælle filer besvarer, hvor mange filer der findes, hvilket er et spørgsmål, ingen stillede. Begynd i stedet med de registre, der bærer betydning.

Fire spørgsmål, fire forskellige registre

Hver registreringstype besvarer ét spørgsmål godt og de andre dårligt, og derfor ser en rapport, der sammenfletter dem, komplet ud, mens den er forkert på en bestemt måde. Tabellen nedenfor sorterer dem efter det spørgsmål, de afgør, og ikke efter det system, der producerer dem.

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

Et arkiv med offentlige certifikater er ikke en hemmelighed, da det ikke indeholder private nøgler, men det er heller ikke delbart. Subjekter og enhedsnavne afslører operationelle detaljer, og rapporten bør blive hos det publikum, der har brug for den. Private nøgler holdes helt uden for inventaret, fordi inventaret har brug for metadata, ikke legitimationsoplysninger.

Udsteder plus serienummer er den eneste stabile nøgle

Subjekter genbruges, og filnavne genbruges, så et navn, der sidste år identificerede én enhed, kan nu identificere en anden. Ingen af dem er en nøgle, og en rapport bygget på en af dem vil til sidst smelte to identiteter sammen i én linje.

Parret udsteder og serienummer identificerer et certifikat entydigt, og begge felter kommer fra certifikatet selv. Registrer dem sammen med subjektet, gyldighedsdatoerne, kilden kopien kom fra, og den ansvarlige person eller enhed. Tilføj tilbagekaldelses- og udrulningsstatus som separate felter med deres egne observationstider, fordi et certifikat inden for sin gyldighedsperiode ikke automatisk er autoriseret. Disse to fakta lever i forskellige systemer, og at slå dem sammen skjuler det tilfælde, hvor en identitet blev trukket tilbage, mens dens fil stadig ser aktuel ud.

Læs ét certifikat ad gangen

Et jokertegn, der udvider sig over en mappe, er ikke en batchgrænseflade, og det skjuler, hvilken fil der gav hvilket output. Læs metadata for hvert certifikat, og læs tilbagekaldelsessiden fra dens eget artefakt. OpenSSL x509-referenceopslaget viser de felter, som disse valgmuligheder udskriver.

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

For en administreret Easy-RSA PKI skal du forespørge udstedelsesdatabasen gennem den arbejdsgang, værktøjet understøtter, i stedet for at antage en mappestruktur, og holde originalerne skrivebeskyttede, mens inventaret samles. Hovedbogsformatet er regelmæssigt nok til at tælle gyldige poster og liste de tilbagekaldte uden at åbne databasen manuelt.

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

Et inventar der overlever næste udstedelse

Et engangsudtræk af en mappe er forældet i det øjeblik, det næste certifikat udstedes, så byg rapporten fra udstedelsesarbejdsgangen og lad den opdatere som en del af normal drift. Det gør også rapporten reproducerbar, hvilket betyder noget, når to personer er uenige om, hvad der blev udstedt.

Brug resultatet til beslutninger om fornyelse og udfasning i stedet for som en regnearksøvelse. Hvis en lokal kopi slettes, gør det ikke de fjernkopier, der allerede findes, ugyldige. Træk identiteten tilbage gennem den konfigurerede tilbagekaldelses- og autorisationsarbejdsgang, og notér derefter tilbagekaldelsen med dens dato. En identitet, der er forsvundet fra serveren, men som udstederen stadig stoler på, er ikke udfaset, og den forskel adskiller et præcist inventar fra et, der blot beroliger.

Relaterede artikler