Vanhentuneen VPN-varmenteen poistaminen luottamusvarastosta
VPN-profiilin poistaminen jättää varmenteen käyttöjärjestelmään, selaimeen tai sovelluskauppaan. Yhdistä sormenjälkeen, poista kapein kopio ja tarkista sitten ketju.
VPN-asiakasohjelmasi on asennettu pois, profiili on kadonnut Asetuksista, ja tunneli nousee silti vanhoilla tunnistetiedoilla. Tai poistat sen, käynnistät uudelleen ja löydät sen takaisin seuraavana aamuna. Kumpikaan ei ole rikkinäinen poistopainike. Profiili on kokoonpano; varmenne on avainmateriaalia plus luottamuspäätös, joka on kirjattu varastoon, johon profiili vain viittaa. Kumpi sinulla on kädessä, määrää mitä 'poistaminen' tarkoittaa.
Profiili ei ole varmenne
VPN-asennuksessa 'varmenteeksi' kutsutaan kolmea eri objektia. Asiakkaan identiteetti on päätevarmente, jossa on yksityinen avain, ja yhdyskäytävä käyttää sitä päättääkseen, kuka olet. Palvelimen oma päätevarmente ja sen välivarmenne ovat se, mitä asiakasohjelmasi tarkistaa yhdistäessään. Luottamusankkuri, yleensä juuri- tai yksityinen CA-varmenne, on se, mikä tekee ketjusta ylipäätään tarkistettavan. RFC 5280 kutsuu näitä luottamusankkuriksi, välivarmenteeksi ja pääte-entiteetiksi, ja ketju vahvistuu vain niin kauan kuin jokainen lenkki allekirjoittaa alempansa.
Poista identiteetti, ja yksi laite menettää pääsyn. Poista ankkuri, ja jokainen kyseistä varastoa vasten validoiva sovellus menettää kyvyn tarkistaa mitään sen alla myönnettyä, mukaan lukien yhteydet, joilla ei ole mitään tekemistä VPN:n kanssa. Tämä epäsymmetria on koko riski tässä: yhtä yhdyskäytävää varten asennettu juuri on usein sama juuri, joka allekirjoittaa sisäisen portin, sähköpostipalvelimen tai pakettipeilin. Muista, kumpi kahdesta sinulla on kädessä.
Omistus ratkaisee, pysyykö poisto poistettuna. Omistamallasi kannettavalla vain sinä voit laittaa varmenteen takaisin. Hallinnoidulla laitteella kokoonpanoprofiili tai MDM-hyötykuorma voi asentaa sen uudelleen seuraavassa tarkistuksessa, minkä vuoksi se 'tulee takaisin' ja minkä vuoksi kovempi poistaminen ei auta.
Selvitä, mikä varasto pitää sitä yhä
Ihmiset aloittavat Asetukset-sovelluksesta, joka on ainoa paikka, jossa varmennetta ei säilytetä. Todelliset sijainnit ovat käyttöjärjestelmän luottamusvarastot, selaimen oma varasto ja sovelluksen yksityinen varasto.
| Store | What deleting from it affects |
|---|---|
| Windows CurrentUser\My | your login session only |
| Windows LocalMachine Root | every user and service on the machine |
| macOS login or System keychain | one account, or all of them with sudo |
| Linux ca-certificates bundle | curl, git, Python, anything using the system bundle |
| Firefox cert9.db | Firefox only; it does not read the OS store |
Yhdistä sarjanumeroon tai sormenjälkeen, älä koskaan näyttönimeen. Näyttönimet asettaa varmenteen myöntäjä, ja niitä käytetään uudelleen: 'Example VPN' voi olla kolme varmennetta kolmella eri avaimella, joista yksi on yhä päivittäisessä käytössä.
certutil -user -store My
certutil -store Root
openssl x509 -in vpn-client.pem -noout -subject -issuer -serial -fingerprint -sha256
macOS:ssä security-työkalu antaa samat tosiasiat, ja find-identity näyttää, millä varmenteilla on yhä yksityinen avain liitettynä:
security find-certificate -a -c "Example VPN" -Z /Library/Keychains/System.keychain
security find-identity -v -p ssl-client
Poista kapea objekti, säilytä jaettu myöntäjä
Vie ennen kuin poistat. Ilman varmuuskopiota ainoa palautus on myöntää uudelleen, mikä yksityisellä CA:lla tarkoittaa paluuta sen luo, joka hallinnoi PKI:tä. Viety PFX on myös se, minkä luovutat, jos poistaminen osoittautuu vääräksi päätökseksi.
certutil -user -exportPFX -p backup My <serial> C:\temp\vpn-id.pfx
certutil -user -delstore My <serial>
Remove-Item Cert:\CurrentUser\My<thumbprint>
Lippu -user on se, joka ihmisiltä unohtuu vahingossa. Ilman sitä certutil toimii koneen varastossa, mikä tarkoittaa korotettua kuorta, eri varmennejoukkoa ja vaikutusalaa, joka kattaa nyt kaikki muut koneen tilit.
macOS:ssä ja Linuxissa muoto on sama: tunnista, vie ja poista sitten kapeimmasta varastosta, joka selittää oireen. Tiedoston poistaminen hakemistosta /usr/local/share/ca-certificates ja komennon update-ca-certificates uudelleen suorittaminen riittää; --fresh auttaa vain, kun hakemiston /etc/ssl/certs symboliset linkit ovat jo epäjohdonmukaisia. RHEL-perheen järjestelmät pitävät ankkurit hakemistossa /etc/pki/ca-trust/source/anchors, jossa trust anchor --remove tekee saman työn.
sudo security delete-certificate -Z <sha1> /Library/Keychains/System.keychain
sudo rm /usr/local/share/ca-certificates/example-vpn.crt
sudo update-ca-certificates
sudo trust anchor --remove /etc/pki/ca-trust/source/anchors/example-vpn.crt
Ennen CA-varmenteen poistamista tarkista, mitä muuta siihen ketjuttuu. Paketin subjektien listaaminen on kahden rivin tarkistus ja vastaa, tekeekö tuo ankkuri muuta työtä:
openssl crl2pkcs7 -nocrl -certfile /etc/ssl/certs/ca-certificates.crt \
| openssl pkcs7 -print_certs -noout | grep -i example
Tiedoston poistaminen ei ole identiteetin mitätöinti
Paikallinen poisto poistaa yhden kopion. Yksityinen avain voi yhä olla p12-tiedostossa, joka on liitetty vanhaan tikettiin, varmuuskopiokansioon tai toiseen kannettavaan, joka otettiin käyttöön samaan aikaan. Jos tämä oli asiakkaan identiteetti, yhdyskäytävä hyväksyy edelleen minkä tahansa kopion tuosta avaimesta, kunnes identiteetti hylätään palvelinpuolella.
Kun kyse on OpenVPN PKI:stä, se tarkoittaa varmenteen mitätöintiä ja varmistamista, että CRL, johon crl-verify viittaa, on ajan tasalla; easyrsa revoke sitten easyrsa gen-crl on lyhyt versio. Identiteetintarjoajaan sidotulle yhdyskäytävälle poista käyttäjä käytöstä tai poista laite siellä, koska varmenne on vain yksi pelissä oleva tunnistetieto. Paikallisen kopion poistaminen tilin pysyessä aktiivisena näyttää siivoukselta eikä ole sitä.
Tapahtumatyöllä on eri järjestys: säilytä ensin varmenne, sen sarjanumero ja mitätöintimerkintä, sitten poista ja mitätöi. Ne merkinnät eivät maksa mitään eivätkä vaadi toimivan tunnistetiedon jättämistä paikalleen.
Tarkista kättelyllä ja toisella sovelluksella
Tarkista ketju ulkopuolelta, ei juuri muokkaamastasi varastoluettelosta. Varasto näyttää muokkauksesi; kättely näyttää tuloksen.
openssl s_client -connect vpn.example.com:443 -servername vpn.example.com \
-CAfile /etc/ssl/certs/ca-certificates.crt -verify_return_error < /dev/null
openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt vpn-gateway.pem
Paluukoodi 0 tarkoittaa, että jäljellä olevat ankkurit validoivat yhdyskäytävän yhä. Ketjuvirhe ankkurin poistamisen jälkeen on odotettu tulos, ja se vahvistaa, että osuit käytössä olevaan ankkuriin etkä duplikaattiin varastossa, jota asiakasohjelma ei koskaan lue. Jos yhteys toimii yhä, etsi toista kopiota, sovellukseen sisällytettyä varastoa tai kiinnitettyä varmennetta, kaikki yleisiä asiakasohjelmissa, jotka toimittavat oman luottamusluettelonsa.
Testaa sitten jotain asiaankuulumatonta: sisäistä sivustoa, sähköpostiohjelmaa, pakettipeiliä. Se mittaa vaikutusalan halvalla ennen muutosikkunan sulkeutumista.
- Rooli tunnistettu identiteetiksi, välivarmenteeksi tai luottamusankkuriksi
- Sarjanumero ja sormenjälki kirjattu, ja kopio viety hyväksyttyyn paikkaan
- Poisto tehty kapeimmassa laajuudessa, joka selittää oireen
- Palvelinpuolen valtuutus mitätöity, kun henkilö tai laite lähti
- Kättely selitetty ja yksi asiaankuulumaton sovellus testattu uudelleen
- MDM-hyötykuorma tai hallintaprofiili päivitetty, muuten varmenne palaa
Jos varmenne on palannut uudelleenkäynnistyksen jälkeen, työ ei ole valmis: jokin omistaa sen ja asentaa sen uudelleen. Löydä se omistaja ennen kuin poistat uudelleen, koska kolmas poisto käyttäytyy täsmälleen kuten kaksi ensimmäistä.