VPN-sertifikaatinventaris: wat die CA-grootboek kan bewys
’n Gids op die bediener, ’n CA-grootboek, ’n herroepingslys en ’n sessietabel beantwoord verskillende vrae. Hou hulle apart wanneer jy VPN-identiteite inventariseer.
Jou poort aanvaar ’n kliëntsertifikaat wat dit nog nooit gesien het nie, want wat ingerig is, is ’n vertroude uitreiker, en die sertifikaat kom tydens die handdruk binne. Dit is hoe die protokol bedoel is om te werk, en dit is ook waarom ’n gidslys op die bediener ’n swak inventaris maak. Die uitreiker weet wat hy geskep het, die bediener weet wat gekonnekteer het, en die herroepingstoestand weet wat teruggetrek is. ’n Inventaris wat daardie drie rekords vermeng, beweer uiteindelik iets wat nie een van hulle gesê het nie.
Die poort vertrou ’n uitreiker, nie ’n lêerlys nie
Validasie vergelyk ’n aangebode sertifikaat met ’n vertrouensanker, so ’n identiteit wat gister deur dieselfde uitreiker geskep is, konnekteer sonder dat dit ooit op die bediener se skyf bestaan het. Niks hoef gekopieer te word om dit te laat gebeur nie, en niemand hoef dit met die hand goed te keur nie. Die bediener se eie rekords beskryf dus aankomste, nie die bevolking identiteite wat kan aankom nie.
Die omgekeerde gaping is net so ongemaklik. ’n Gids kan verstrykte sertifikate bevat, herroepte sertifikate, en identiteite wat uitgereik is vir toestelle wat nooit ontplooi is nie. Om lêers te tel antwoord hoeveel lêers daar is, wat ’n vraag is wat niemand gevra het nie. Begin eerder by die rekords wat betekenis dra.
Vier vrae, vier verskillende rekords
Elke rekordtipe beantwoord een vraag goed en die ander sleg, en daarom lyk ’n verslag wat hulle saamvoeg volledig terwyl dit op ’n spesifieke manier verkeerd is. Die tabel hieronder rangskik hulle volgens die vraag wat hulle besleg, nie volgens die stelsel wat hulle produseer nie.
| 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 |
’n Argief van openbare sertifikate is nie ’n geheim nie, want dit bevat geen private sleutels nie, maar dit is ook nie deelbaar nie. Subjekte en toestelname verraai operasionele besonderhede, en die verslag moet by die gehoor bly wat dit nodig het. Private sleutels bly heeltemal buite die inventaris, want die inventaris het metadata nodig, nie geloofsbriewe nie.
Uitreiker plus reeksnommer is die enigste stabiele sleutel
Subjekte word hergebruik en lêername word weer gebruik, so ’n naam wat verlede jaar een toestel geïdentifiseer het, kan nou ’n ander een identifiseer. Nie een is ’n sleutel nie, en ’n verslag wat op enige van hulle gebou is, sal uiteindelik twee identiteite in een lyn saamsmelt.
Die paar uitreiker en reeksnommer identifiseer ’n sertifikaat uniek, en beide velde kom uit die sertifikaat self. Teken hulle aan saam met die subjek, die geldigheidsdatums, die bron waaruit die kopie gekom het, en die persoon of toestel wat verantwoordelik is. Voeg herroeping- en ontplooiingstatus as aparte velde by, met hul eie waarnemingstye, want ’n sertifikaat binne sy geldigheidsvenster is nie outomaties gemagtig nie. Daardie twee feite woon in verskillende stelsels, en om hulle saam te voeg verberg die geval waar ’n identiteit teruggetrek is terwyl sy lêer nog aktueel lyk.
Lees een sertifikaat op ’n slag
’n Wildcard wat oor ’n gids uitbrei, is nie ’n bondelkoppelvlak nie, en dit verberg watter lêer watter uitset gelewer het. Lees die metadata per sertifikaat, en lees die herroepingskant uit sy eie artefak. Die OpenSSL x509-verwysing lys die velde wat daardie opsies druk.
openssl x509 -in <cert>.pem -noout -issuer -serial -subject -dates -fingerprint -sha256
openssl crl -in <issuer>.crl -noout -text | head -n 40
Vir ’n bestuurde Easy-RSA PKI, vra die uitreikingsdatabasis deur die werkvloei wat die gereedskap ondersteun eerder as om ’n gidsuitleg te aanvaar, en hou die oorspronklikes leesalleen terwyl die inventaris saamgestel word. Die grootboekformaat is reëlmatig genoeg om geldige inskrywings te tel en die teruggetrekte ene te lys sonder om die databasis met die hand oop te maak.
grep -c '^V' pki/index.txt
grep '^R' pki/index.txt | cut -f4,5
’n Inventaris wat die volgende uitreiking oorleef
’n Eenmalige uitgooi van ’n gids is verouderd die oomblik wanneer die volgende sertifikaat uitgereik word, so bou die verslag uit die uitreikingswerkvloei en laat dit opdateer as deel van normale bedryf. Dit maak die verslag ook herproduseerbaar, wat saak maak wanneer twee mense verskil oor wat uitgereik is.
Gebruik die resultaat vir hernuwing- en aftredebesluite, nie as ’n sigbladoefening nie. Om ’n plaaslike kopie te skrap, maak nie die afgeleë kopieë wat reeds bestaan ongeldig nie. Trek die identiteit terug deur die ingestelde herroeping- en magtigingswerkvloei, en teken dan die terugtrekking met sy datum aan. ’n Identiteit wat van die bediener verdwyn het maar steeds deur die uitreiker vertrou word, is nie afgetree nie, en daardie verskil skei ’n inventaris wat akkuraat is van een wat bloot gerusstellend is.