Kako odstraniti zastarelo potrdilo VPN iz shrambe zaupanja
Brisanje profila VPN pusti potrdilo v operacijskem sistemu, brskalniku ali trgovini z aplikacijami. Ujemite po prstnem odtisu, izbrišite najožjo kopijo in nato preverite verigo.
Odjemalec VPN je odstranjen, profil je izginil iz Nastavitev, tunel pa se vseeno dvigne s starimi poverilnicami. Ali pa ga izbrišete, znova zaženete in naslednje jutro ga najdete nazaj. Nobeno od tega ni pokvarjen gumb za brisanje. Profil je konfiguracija; potrdilo je ključni material in odločitev o zaupanju, zapisana v shrambi, na katero profil samo kaže. Katero od dveh imate v rokah, določa, kaj mora 'odstraniti' pomeniti.
Profil ni potrdilo
V nastavitvi VPN se trije različni objekti imenujejo 'potrdilo'. Identiteta odjemalca je končno potrdilo z zasebnim ključem in prehod z njim odloča, kdo ste. Lastno končno potrdilo strežnika in njegov posrednik sta tisto, kar vaš odjemalec preveri ob povezavi. Sidro zaupanja, običajno korensko ali zasebno potrdilo CA, je tisto, kar verigo sploh naredi preverljivo. RFC 5280 jih imenuje sidro zaupanja, posrednik in končni subjekt, veriga pa je veljavna le, dokler vsak člen podpiše člen pod seboj.
Izbrišite identiteto in ena naprava izgubi dostop. Izbrišite sidro in vsaka aplikacija, ki preverja proti tej shrambi, izgubi zmožnost preveriti karkoli izdanega pod njo, vključno s povezavami, ki nimajo nič z VPN. Ta asimetrija je tu vsa nevarnost: koren, nameščen za en prehod, je pogosto isti koren, ki podpisuje notranji portal, poštni strežnik ali zrcalo paketov. Zapomnite si, katero od dveh imate v rokah.
Lastništvo odloča, ali brisanje ostane izbrisano. Na vašem prenosniku lahko potrdilo vrnete le vi. Na upravljani napravi lahko konfiguracijski profil ali tovor MDM potrdilo znova namesti ob naslednji prijavi, zato se 'vrne' in zato močnejše brisanje ne pomaga.
Ugotovite, katera shramba ga še drži
Ljudje začnejo v aplikaciji Nastavitve, ki je edino mesto, kjer potrdilo ni shranjeno. Prave lokacije so shrambe zaupanja operacijskega sistema, lastna shramba brskalnika in zasebna shramba aplikacije.
| 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 |
Ujemite po serijski številki ali prstnem odtisu, nikoli po prikazanem imenu. Prikazana imena nastavi tisti, ki je potrdilo izdal, in se znova uporabijo: 'Example VPN' so lahko tri potrdila s tremi različnimi ključi, eno je še vedno v vsakodnevni uporabi.
certutil -user -store My
certutil -store Root
openssl x509 -in vpn-client.pem -noout -subject -issuer -serial -fingerprint -sha256
V macOS orodje security daje ista dejstva in find-identity pokaže, katera potrdila imajo še priložen zasebni ključ:
security find-certificate -a -c "Example VPN" -Z /Library/Keychains/System.keychain
security find-identity -v -p ssl-client
Izbrišite ozek objekt, obdržite skupnega izdajatelja
Izvezite, preden izbrišete. Brez varnostne kopije je edina obnovitev ponovna izdaja, kar pri zasebni CA pomeni vrnitev k tistemu, ki upravlja PKI. Izvoženi PFX je tudi tisto, kar predate, če se odstranitev izkaže za napačno odločitev.
certutil -user -exportPFX -p backup My <serial> C:\temp\vpn-id.pfx
certutil -user -delstore My <serial>
Remove-Item Cert:\CurrentUser\My<thumbprint>
Zastavica -user je tista, ki jo ljudje po nesreči spustijo. Brez nje certutil dela s shrambo stroja, kar pomeni povišano lupino, drugačen nabor potrdil in doseg škode, ki zdaj vključuje vse druge račune na stroju.
V macOS in Linuxu je oblika enaka: prepoznajte, izvozite in nato odstranite iz najožje shrambe, ki pojasni simptom. Odstranitev datoteke v /usr/local/share/ca-certificates in ponoven zagon update-ca-certificates zadostuje; --fresh pomaga le, ko so simbolne povezave v /etc/ssl/certs že nedosledne. Sistemi iz družine RHEL hranijo sidra v /etc/pki/ca-trust/source/anchors, kjer trust anchor --remove opravi isto delo.
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
Preden izbrišete potrdilo CA, preverite, kaj se še veriži nanj. Izpis subjektov v svežnju je pregled v dveh vrsticah in odgovori, ali to sidro opravlja drugo delo:
openssl crl2pkcs7 -nocrl -certfile /etc/ssl/certs/ca-certificates.crt \
| openssl pkcs7 -print_certs -noout | grep -i example
Brisanje datoteke ni preklic identitete
Lokalno brisanje odstrani eno kopijo. Zasebni ključ lahko še vedno sedi v p12, priloženem staremu tiketu, v mapi varnostnih kopij ali na drugem prenosniku, nastavljenem ob istem času. Če je bila to identiteta odjemalca, prehod še naprej sprejema vsako kopijo tega ključa, dokler identiteta ni zavrnjena na strežniku.
Za OpenVPN PKI to pomeni preklic potrdila in zagotovitev, da je CRL, na katero se sklicuje crl-verify aktualna; easyrsa revoke in nato easyrsa gen-crl je kratka različica. Za prehod, vezan na ponudnika identitete, tam onemogočite uporabnika ali odstranite napravo, ker je potrdilo le ena poverilnica v igri. Brisanje lokalne kopije, medtem ko račun ostaja aktiven, je videti kot čiščenje in ni.
Incidentno delo ima drugačen vrstni red: najprej ohranite potrdilo, njegovo serijsko številko in zapis o preklicu, nato izbrišite in prekličite. Ti zapisi nič ne stanejo in ne zahtevajo, da na mestu ostane delujoča poverilnica.
Preverite s stiskom roke in drugo aplikacijo
Verigo preverite od zunaj, ne s seznama shrambe, ki ste ga pravkar uredili. Shramba kaže vašo spremembo; stisk roke kaže rezultat.
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
Koda vračanja 0 pomeni, da preostala sidra še vedno potrjujejo prehod. Napaka verige po odstranitvi sidra je pričakovan izid in potrjuje, da ste zadeli sidro v uporabi, ne dvojnika v shrambi, ki ga odjemalec nikoli ne bere. Če povezava še deluje, poiščite drugo kopijo, v aplikacijo vgrajeno shrambo ali pripeto potrdilo, vse to je običajno pri odjemalcih, ki prinesejo svoj seznam zaupanja.
Nato preizkusite nekaj nepovezanega: notranje spletišče, poštnega odjemalca, zrcalo paketov. To poceni izmeri doseg škode, preden se okno sprememb zapre.
- Vloga prepoznana kot identiteta, posrednik ali sidro zaupanja
- Serijska številka in prstni odtis zabeležena, kopija pa izvožena na odobreno mesto
- Brisanje izvedeno v najožjem obsegu, ki pojasni simptom
- Avtorizacija na strežniku preklicana, ko je oseba ali naprava odšla
- Stisk roke pojasnjen in ena nepovezana aplikacija znova preizkušena
- Tovor MDM ali profil upravljanja posodobljen, sicer se potrdilo vrne
Če je potrdilo po ponovnem zagonu spet tu, delo ni končano: nekaj ga ima v lasti in ga znova namesti. Poiščite tega lastnika, preden znova brišete, ker se bo tretje brisanje obnašalo natanko kot prvi dve.