VPN-klienten din er avinstallert, profilen er borte frå Innstillingar, og tunnelen kjem likevel opp med dei gamle påloggingsdataa. Eller du slettar han, startar på nytt og finn han att neste morgon. Ingen av delane er ein øydelagd slett-knapp. Ein profil er konfigurasjon; eit sertifikat er nøkkelmateriale pluss ei tillitsavgjerd registrert i eit lager som profilen berre peikar på. Kva av dei to du held i handa avgjer kva 'fjern' må tyde.

Ein profil er ikkje eit sertifikat

Tre ulike objekt vert kalla 'sertifikatet' i eit VPN-oppsett. Klientidentiteten er eit bladsertifikat med ein privat nøkkel, og gatewayen brukar det til å avgjere kven du er. Bladsertifikatet til serveren sjølv og mellomleddet er det klienten din sjekkar når han koplar til. Tillitsankeret, vanlegvis eit rot- eller privat CA-sertifikat, er det som gjer kjeda verifiserbar i det heile. RFC 5280 kallar desse tillitsankeret, mellomleddet og sluttentiteten, og kjeda vert validert berre så lenge kvar lenkje signerer lenkja under.

Slett identiteten, og éi eining mistar tilgang. Slett ankeret, og kvar applikasjon som validerer mot det lageret, mistar evna til å sjekke noko som helst utstedt under det, inkludert tilkoplingar som ikkje har noko med VPN å gjere. Den asymmetrien er heile risikoen her: eit rot installert for éin gateway er ofte det same rota som signerer ein intern portal, ein e-posttenar eller eit pakkespegel. Hugs kva av dei to du held i handa.

Eigarskap avgjer om slettinga vert sletta. På ein berbar PC du eig, er du den einaste som kan setje sertifikatet tilbake. På ei styrt eining kan ein konfigurasjonsprofil eller ei MDM-nyttelast installere det på nytt ved neste innsjekking, og det er derfor det 'kjem tilbake' og derfor hardare sletting ikkje hjelper.

Finn kva lager som framleis har det

Folk byrjar i Innstillingar-appen, som er den eine staden eit sertifikat ikkje vert lagra. Dei verkelege stadene er tillitslagera til operativsystemet, det eigne lageret til nettlesaren og det private lageret til applikasjonen.

StoreWhat deleting from it affects
Windows CurrentUser\Myyour login session only
Windows LocalMachine Rootevery user and service on the machine
macOS login or System keychainone account, or all of them with sudo
Linux ca-certificates bundlecurl, git, Python, anything using the system bundle
Firefox cert9.dbFirefox only; it does not read the OS store

Match på serienummeret eller fingeravtrykket, aldri på visingsnamnet. Visingsnamn vert sette av den som gav ut sertifikatet og vert brukte om att: 'Example VPN' kan vere tre sertifikat med tre ulike nøklar, eitt framleis i dagleg bruk.

certutil -user -store My
certutil -store Root
openssl x509 -in vpn-client.pem -noout -subject -issuer -serial -fingerprint -sha256

På macOS gir security-verktøyet dei same fakta, og find-identity viser kva sertifikat som framleis har ein privat nøkkel knytt til seg:

security find-certificate -a -c "Example VPN" -Z /Library/Keychains/System.keychain
security find-identity -v -p ssl-client

Slett det smale objektet, hald på den felles utgivaren

Eksporter før du slettar. Utan ein tryggingskopi er den einaste gjenopprettinga å gje ut på nytt, som på ein privat CA tyder å gå tilbake til den som driv PKI-en. Den eksporterte PFX-fila er òg det du overleverer om fjerninga viser seg å vere feil avgjerd.

certutil -user -exportPFX -p backup My <serial> C:\temp\vpn-id.pfx
certutil -user -delstore My <serial>
Remove-Item Cert:\CurrentUser\My<thumbprint>

Flagget -user er det folk mistar ved eit uhell. Utan det jobbar certutil mot maskinlageret i staden, noko som tyder eit forhøgd skal, eit anna sett sertifikat og ein skadeflate som no omfattar alle andre kontoar på maskina.

På macOS og Linux er forma den same: identifiser, eksporter og fjern deretter frå det smalaste lageret som forklarer symptomet. Å fjerne fila under /usr/local/share/ca-certificates og køyre update-ca-certificates på nytt er nok; --fresh hjelper berre når symbolkoplingane i /etc/ssl/certs allereie er inkonsistente. System i RHEL-familien held anker i /etc/pki/ca-trust/source/anchors, der trust anchor --remove gjer den same jobben.

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

Før du slettar eit CA-sertifikat, sjekk kva anna som kjedar til det. Å liste opp subjekta i bunten er ein sjekk på to linjer, og han svarar på om ankeret gjer anna arbeid:

openssl crl2pkcs7 -nocrl -certfile /etc/ssl/certs/ca-certificates.crt \
  | openssl pkcs7 -print_certs -noout | grep -i example

Å slette fila er ikkje å trekkje attende identiteten

Ei lokal sletting fjernar éin kopi. Den private nøkkelen kan framleis liggje i ein p12 fest til ein gammal billett, ei tryggingskopimappe eller den andre berbare PC-en som vart sett opp samstundes. Om dette var ein klientidentitet, held gatewayen fram med å godta kvar kopi av den nøkkelen til identiteten vert avvist på tenarsida.

For ein OpenVPN PKI tyder det å trekkje attende sertifikatet og syte for at CRL-en som det vert referert til av crl-verify er oppdatert; easyrsa revoke og deretter easyrsa gen-crl er kortversjonen. For ein gateway knytt til ein identitetstilbydar, deaktiver brukaren eller fjern eininga der, fordi sertifikatet berre er éi legitimasjon i spel. Å slette den lokale kopien medan kontoen er aktiv ser ut som opprydding og er det ikkje.

Hendingsarbeid har ei anna rekkjefølgje: ta vare på sertifikatet, serienummeret og attkallingsoppføringa først, og slett og trekk attende deretter. Dei oppføringane kostar ingenting og krev ikkje at ein fungerande legitimasjon vert liggjande.

Verifiser med eit handtrykk og ein andre app

Sjekk kjeda utanfrå, ikkje frå lagerlista du nettopp redigerte. Lageret viser redigeringa di; handtrykket viser resultatet.

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

Ein returkode på 0 tyder at dei attverande ankera framleis validerer gatewayen. Ein kjedefeil etter at ankeret er fjerna er det forventa utfallet, og det stadfestar at du trefte ankeret som er i bruk og ikkje ein duplikat i eit lager klienten aldri les. Om tilkoplinga framleis verkar, sjå etter ein andre kopi, eit app-innpakka lager eller eit fastsett sertifikat, alt vanleg i klientar som leverer si eiga tillitsliste.

Test deretter noko urelatert: ein intern nettstad, ein e-postklient, eit pakkespegel. Det måler skadeflata billig, før endringsvindauget stengjer.

  • Rolla identifisert som identitet, mellomledd eller tillitsanker
  • Serienummer og fingeravtrykk registrerte, og kopien eksportert til den godkjende staden
  • Sletting utført i det smalaste omfanget som forklarer symptomet
  • Autorisasjon på tenarsida trekt attende då ein person eller eining forsvann
  • Handtrykket forklart, og éin urelatert app testa på nytt
  • MDM-nyttelast eller styringsprofil oppdatert, elles kjem sertifikatet tilbake

Om sertifikatet er tilbake etter ein omstart, er jobben ikkje ferdig: noko eig det og installerer det på nytt. Finn den eigaren før du slettar igjen, for ei tredje sletting vil oppføre seg nøyaktig som dei to første.

Relaterte artiklar