VPN-varmenteiden luettelointi: mitä CA-rekisteri voi todistaa
Palvelimen kansio, CA-rekisteri, mitätöintiluettelo ja istuntotaulukko vastaavat eri kysymyksiin. Pidä ne erillään, kun luetteloit VPN-identiteettejä.
Yhdyskäytäväsi hyväksyy asiakasvarmenteen, jota se ei ole koskaan nähnyt, koska se, millä se on määritetty, on luotettu myöntäjä, ja varmenne saapuu kättelyn aikana. Näin protokollan on tarkoitus toimia, ja juuri siksi palvelimen hakemistolistaus on huono luettelo. Myöntäjä tietää, mitä se loi, palvelin tietää, mikä yhdisti, ja mitätöinnin tila tietää, mikä vedettiin pois. Luettelo, joka sekoittaa nämä kolme rekisteriä, väittää lopulta jotain, mitä mikään niistä ei sanonut.
Yhdyskäytävä luottaa myöntäjään, ei tiedostoluetteloon
Validointi vertaa esitettyä varmennetta luottamusankkuriin, joten sama myöntäjä loi eilen identiteetin, joka yhdistää ilman että se olisi koskaan ollut palvelimen levyllä. Mitään ei tarvitse kopioida, jotta näin tapahtuisi, eikä kenenkään tarvitse hyväksyä sitä käsin. Palvelimen omat rekisterit kuvaavat siis saapumisia, eivät identiteettien joukkoa, joka voisi saapua.
Vastakkainen aukko on yhtä kiusallinen. Kansiossa voi olla vanhentuneita varmenteita, mitätöityjä ja identiteettejä laitteille, joita ei koskaan otettu käyttöön. Tiedostojen laskeminen vastaa siihen, kuinka monta tiedostoa on, mikä on kysymys, jota kukaan ei kysynyt. Aloita sen sijaan rekistereistä, joilla on merkitys.
Neljä kysymystä, neljä eri rekisteriä
Jokainen rekisterityyppi vastaa yhteen kysymykseen hyvin ja muihin huonosti, siksi ne yhdistävä raportti näyttää täydelliseltä, vaikka on tietyllä tavalla väärä. Alla oleva taulukko järjestää ne sen kysymyksen mukaan, jonka ne ratkaisevat, ei sen järjestelmän mukaan, joka ne tuottaa.
| 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 |
Julkisten varmenteiden arkisto ei ole salaisuus, koska se ei sisällä yksityisiä avaimia, mutta se ei myöskään ole jaettavissa. Aiheet ja laitenimet paljastavat operatiivisia yksityiskohtia, ja raportin pitäisi jäädä sitä tarvitsevalle yleisölle. Yksityiset avaimet pysyvät täysin luettelon ulkopuolella, koska luettelo tarvitsee metatietoja, ei tunnuksia.
Myöntäjä ja sarjanumero ovat ainoa vakaa avain
Aiheet kierrätetään ja tiedostonimiä käytetään uudelleen, joten nimi, joka viime vuonna yksilöi yhden laitteen, voi nyt yksilöidä toisen. Kumpikaan ei ole avain, ja kumpaankin perustuva raportti sulauttaa lopulta kaksi identiteettiä yhdelle riville.
Myöntäjän ja sarjanumeron pari yksilöi varmenteen ainutlaatuisesti, ja molemmat kentät tulevat varmenteesta itsestään. Kirjaa ne aiheen, voimassaolopäivien, kopion lähteen sekä vastuuhenkilön tai laitteen kanssa. Lisää mitätöinnin ja käyttöönoton tila erillisinä kenttinä omine havaintoaikoineen, koska voimassaoloikkunan sisällä oleva varmenne ei ole automaattisesti valtuutettu. Nämä kaksi tosiasiaa elävät eri järjestelmissä, ja niiden yhdistäminen kätkee tapauksen, jossa identiteetti vedettiin pois, kun sen tiedosto näyttää yhä ajantasaiselta.
Lue yksi varmenne kerrallaan
Kansion yli laajeneva jokerimerkki ei ole eräkäyttöliittymä, ja se kätkee, mikä tiedosto tuotti minkä tulosteen. Lue metatiedot varmenne kerrallaan ja lue mitätöintipuoli sen omasta artefaktista. OpenSSL x509 -viite luettelee kentät, jotka nämä valinnat tulostavat.
openssl x509 -in <cert>.pem -noout -issuer -serial -subject -dates -fingerprint -sha256
openssl crl -in <issuer>.crl -noout -text | head -n 40
Hallitussa Easy-RSA PKI:ssä kysy myöntötietokantaa työnkululla, jota työkalu tukee, sen sijaan että olettaisit hakemistorakenteen, ja pidä alkuperäiset vain luettavina, kun luetteloa kootaan. Rekisterin muoto on riittävän säännöllinen, jotta kelvolliset merkinnät voi laskea ja poistetut luetella avaamatta tietokantaa käsin.
grep -c '^V' pki/index.txt
grep '^R' pki/index.txt | cut -f4,5
Luettelo, joka kestää seuraavan myönnön
Kansion kertaluonteinen vienti vanhenee heti, kun seuraava varmenne myönnetään, joten rakenna raportti myöntötyönkulusta ja anna sen päivittyä osana normaalia toimintaa. Se tekee raportista myös toistettavan, millä on merkitystä, kun kaksi ihmistä on eri mieltä siitä, mitä myönnettiin.
Käytä tulosta uusimis- ja käytöstäpoistopäätöksiin, älä taulukkolaskentaharjoituksena. Paikallisen kopion poistaminen ei mitätöi jo olemassa olevia etäkopioita. Vedä identiteetti pois määritetyn mitätöinti- ja valtuutusprosessin kautta ja kirjaa sitten poisveto päivämäärineen. Identiteetti, joka on kadonnut palvelimelta mutta johon myöntäjä luottaa edelleen, ei ole poistettu käytöstä, ja juuri tämä ero erottaa täsmällisen luettelon pelkästään rauhoittavasta.