VPN-certifikatinventering: vad CA-huvudboken kan bevisa
En mapp på servern, en CA-huvudbok, en återkallningslista och en sessionstabell svarar på olika frågor. Håll dem åtskilda när du inventerar VPN-identiteter.
Din gateway accepterar ett klientcertifikat som den aldrig har sett, eftersom det den är konfigurerad med är en betrodd utgivare, och certifikatet anländer under handskakningen. Så ska protokollet fungera, och det är också därför en mapplista på servern är en dålig inventering. Utgivaren vet vad den skapade, servern vet vad som anslöt, och återkallningsstatusen vet vad som drogs tillbaka. En inventering som blandar dessa tre register påstår till slut något som ingen av dem har sagt.
Gatewayen litar på en utgivare, inte på en fillista
Valideringen jämför ett framlagt certifikat med ett förtroendeankare, så en identitet som samma utgivare skapade i går ansluter utan att någonsin ha funnits på serverns disk. Inget behöver kopieras för att det ska ske, och ingen behöver godkänna det för hand. Serverns egna register beskriver därför ankomster, inte populationen av identiteter som skulle kunna anlända.
Den omvända luckan är lika besvärlig. En mapp kan innehålla utgångna certifikat, återkallade och identiteter utfärdade för enheter som aldrig rullades ut. Att räkna filer svarar på hur många filer som finns, vilket är en fråga som ingen ställde. Börja i stället med de register som bär betydelse.
Fyra frågor, fyra olika register
Varje registertyp svarar bra på en fråga och dåligt på de andra, därför ser en rapport som slår ihop dem fullständig ut medan den är fel på ett särskilt sätt. Tabellen nedan sorterar dem efter frågan de avgör, inte efter systemet som producerar dem.
| Question you are answering | Where the answer lives | How quickly it changes | What it will never show |
|---|---|---|---|
| Was this identity ever created? | The issuer's issuance database | Only when something is issued | Whether the device still exists |
| Is a copy sitting on this host? | The paths you actually inspected | Whenever anyone copies files | Certificates that were never copied here |
| Has the issuer withdrawn it? | Published revocation state | When the issuer next publishes | Withdrawals that are not published yet |
| Is it connected right now? | The live session table | Continuously | Anything about past or future sessions |
Ett arkiv med offentliga certifikat är ingen hemlighet, eftersom det inte innehåller privata nycklar, men det är inte heller delbart. Subjekt och enhetsnamn avslöjar operativa detaljer, och rapporten bör stanna hos den publik som behöver den. Privata nycklar hålls helt utanför inventeringen, eftersom inventeringen behöver metadata och inte inloggningsuppgifter.
Utgivare plus serienummer är den enda stabila nyckeln
Subjekt återanvänds och filnamn återbrukas, så ett namn som i fjol pekade ut en enhet kan nu peka ut en annan. Ingen av dem är en nyckel, och en rapport byggd på någon av dem kommer till slut att slå ihop två identiteter till en rad.
Paret utgivare och serienummer identifierar ett certifikat unikt, och båda fälten kommer från certifikatet självt. Registrera dem tillsammans med subjektet, giltighetsdatumen, källan kopian kom från och den ansvariga personen eller enheten. Lägg till återkallnings- och utrullningsstatus som separata fält med egna observationstider, eftersom ett certifikat inom sitt giltighetsfönster inte är automatiskt auktoriserat. Dessa två fakta lever i olika system, och att slå ihop dem döljer fallet där en identitet drogs tillbaka medan dess fil fortfarande ser aktuell ut.
Läs ett certifikat i taget
Ett jokertecken som expanderar över en mapp är inget batchgränssnitt, och det döljer vilken fil som gav vilken utdata. Läs metadata per certifikat, och läs återkallningssidan från dess eget artefakt. OpenSSL x509-referensen listar de fält som dessa flaggor skriver ut.
openssl x509 -in <cert>.pem -noout -issuer -serial -subject -dates -fingerprint -sha256
openssl crl -in <issuer>.crl -noout -text | head -n 40
För en hanterad Easy-RSA PKI, fråga utfärdandedatabasen genom det arbetsflöde som verktyget stöder i stället för att anta en mappstruktur, och håll originalen skrivskyddade medan inventeringen sätts samman. Huvudbokens format är tillräckligt regelbundet för att räkna giltiga poster och lista de återkallade utan att öppna databasen för hand.
grep -c '^V' pki/index.txt
grep '^R' pki/index.txt | cut -f4,5
En inventering som överlever nästa utfärdande
En engångsdump av en mapp blir inaktuell i samma stund som nästa certifikat utfärdas, så bygg rapporten från utfärdandearbetsflödet och låt den uppdateras som en del av normal drift. Det gör också rapporten reproducerbar, vilket spelar roll när två personer är oense om vad som utfärdades.
Använd resultatet för beslut om förnyelse och avveckling i stället för som en kalkylbladsövning. Att radera en lokal kopia ogiltigförklarar inte de fjärrkopior som redan finns. Dra tillbaka identiteten genom det konfigurerade arbetsflödet för återkallning och auktorisering, och registrera sedan återkallningen med dess datum. En identitet som har försvunnit från servern men som utgivaren fortfarande litar på är inte avvecklad, och den skillnaden skiljer en korrekt inventering från en som bara lugnar.