VPN-sertifikaatin tarkastaminen avainta paljastamatta
Lue julkiset kentät, päivämäärät ja sormenjäljet tulostamatta avainaineistoa. Turvallinen komento riippuu siitä, mitä tiedosto sisältää ja kuka tulosteen näkee.
Sertifikaatin julkisten kenttien lukeminen ei koskaan edellytä sitä vastaavan yksityisen avaimen näyttämistä, ja siihen tarvittavat työkalut tulevat jokaisen VPN:n päättävän järjestelmän mukana. Riski on yhden askeleen aiemmin: käteen saatu tiedosto ei välttämättä ole sertifikaatti lainkaan. PEM-sertifikaatti, DER-möykky, PKCS#12-nippu ja OpenVPN-profiili voivat saapua samalla nimellä ja sisältää hyvin erilaista aineistoa, joten tunnista säiliö ennen kuin valitset komennon.
Kolme seikkaa ratkaisee, mikä komento on turvallinen: mitä tiedosto sisältää, mitä siitä pitää lukea ja kuka näkee tulosteen. Jos yksikin niistä menee pieleen, itse tarkastuksesta tulee tapaus.
Mikä kolmesta tiedostosta sinulle annettiin
PEM-sertifikaatti on tekstiä, jossa on näkyvät BEGIN- ja END-merkinnät, DER-tiedosto on binääriä, joka vaatii syötemuotolipun, ja nippu on säiliö, joka voi pitää avaimen sertifikaatin rinnalla. file server.crt erottaa tekstin binääristä sekunnissa, ja vilkaisu ensimmäiseen riviin erottaa paljaan sertifikaatin profiilista, johon sellainen on upotettu. Arvaaminen juuri tässä muuttaa tarkastuksen tapaukseksi.
Jos tiedosto on profiili eikä sertifikaatti, kohtele sitä tunnistetietona, kunnes toisin todistetaan. Se oletus ei maksa mitään ja estää koko tehtävän yleisimmän virheen.
PEM-sertifikaatin julkisten kenttien lukeminen
Sertifikaatille, jonka tarkastamiseen sinulla on lupa, x509-alikomento tulostaa -noout-valitsimella juuri valitsemasi kentät eikä mitään muuta. Rungon vaimentaminen pitää tulosteen metatietoina, mikä tekee siitä myös turvallisen liitettäväksi tikettiin. Alla olevat valitsimet ovat julkisia, ja openssl x509 -dokumentaatio luettelee loput.
openssl x509 -in server.crt -noout -subject -issuer -dates -fingerprint -sha256
Paikallisesti luodulla testisertifikaatilla kyseinen komento tulostaa subject- ja issuer-rivin, notBefore- ja notAfter-parin sekä yhden SHA-256-sormenjäljen. Ne kentät yksilöivät objektin; ne eivät vahvista kelvollista luottamusketjua, joka on erillinen varmennustehtävä omalla komennollaan ja omalla vastauksellaan. Ketjutiedosto voi myös tulostaa vain ensimmäisen sertifikaatin, ellet itse käy tiedostoa läpi. Kahden tiedoston vertaaminen tällä tavoin maksaa yhden komennon ja ratkaisee, kumman vertaisesi todella esittää.
Niput, joissa avain on sertifikaatin rinnalla
Tiedosto .p12 tai .pfx voi sisältää yksityisen avaimen, ja jäsennyskomento tulostaa sen, ellet vaienna tulosteen sitä osaa. Valitsimella -nokeys sama komento raportoi edelleen säiliön rakenteen, mukaan lukien verhotun avainpussin, tulostamatta lainkaan avainaineistoa; jos pudotat lipun, avainlohko ilmestyy päätteeseesi ja komentohistoriaasi.
openssl pkcs12 -in bundle.p12 -nokeys -info -passin env:P12PASS
OpenVPN-profiili upottaa saman aineiston tekstinä, joten raja on näkyvissä, jos tiedät mistä katsoa. Julkinen aineisto on BEGIN CERTIFICATE- ja END CERTIFICATE -rivien välissä, kun taas kaikki BEGIN PRIVATE KEY- ja sitä vastaavan END-rivin välissä on avainta eikä se saa poistua koneelta. Profiilin kopioiminen sellaisenaan julkaisee molemmat.
Vertailuarvon hankkiminen muualta
Yhteydestä luettu sormenjälki, jota yrität varmentaa, ei todista mitään, koska sen toimitti osapuoli, johon et luota. Tämä ei ole argumentti sormenjälkiä vastaan; se on argumentti alkuperästä. Vertaa arvoa sellaiseen, joka on saatu kanavalta, johon vertaisesi ei voi kirjoittaa, kuten sisäiseen tietovarastoon julkaistu sertifikaatti tai allekirjoitettuun muutostietueeseen tulostettu tiiviste.
Kun luottamusvarasto tekee validoinnin, anna sen tehdä se ja lue sen tuottama virhe sen sijaan että korvaisit sen omalla vertailullasi. Ratkaiseva ero on siinä, kuka vertailuarvon toimitti, ei siinä, mitä tiivistefunktiota käytettiin.
Tuloksen jakaminen ja mitä tehdä lipsahduksen jälkeen
Lähetä tarkka validointivirhe, asiaankuuluvat päivämäärät ja vain ne identiteettitiedot, joita vastaanottaja tarvitsee. Sisäiset konenimet ja tilien tunnisteet ovat arkaluontoisia myös silloin, kun avainta ei ole, eikä julkinen liitepalvelu ole oikea paikka millekään niistä. Liitä tikettiin, älä muistioon, jonka joku muu jakaa.
Jos avainaineistoa todella ilmestyi näytölle tai tiedostoon, kohtele sitä vaarantuneena ja kierrätä se sen sijaan että toivoisit, ettei kukaan katsonut. Kirjaa sitten tarkastettu tiedosto, käytetty komento ja se, minne tuloste meni, koska juuri se merkintä muuttaa säikähdyksen menettelytavaksi. Kierrätys on halpaa verrattuna siihen, mitä maksaa olettaa, ettei kukaan ottanut kuvakaappausta, ja sama merkintä kertoo seuraavalle insinöörille, mitä tiedostoja ylipäätään koskettiin. Tee molemmat ennen kuin tiketti suljetaan.