Ako odstrániť zastaraný certifikát VPN z úložiska dôvery
Odstránenie profilu VPN necháva certifikát v operačnom systéme, prehliadači alebo obchode s aplikáciami. Porovnajte podľa odtlačku, odstráňte najužšiu kópiu a potom overte reťaz.
Klient VPN je odinštalovaný, profil zmizol z Nastavení a tunel napriek tomu vstáva so starými prihlasovacími údajmi. Alebo ho odstránite, reštartujete a na druhý deň ráno ho nájdete späť. Ani jedno nie je pokazené tlačidlo odstránenia. Profil je konfigurácia; certifikát je kľúčový materiál plus rozhodnutie o dôvere zapísané v úložisku, na ktoré profil iba ukazuje. Ktorý z tých dvoch držíte, rozhoduje o tom, čo musí 'odstrániť' znamenať.
Profil nie je certifikát
V nastavení VPN sa tri rôzne objekty nazývajú 'certifikát'. Identita klienta je koncový certifikát s privátnym kľúčom a brána ho používa na rozhodnutie, kto ste. Vlastný koncový certifikát servera a jeho sprostredkovateľ sú to, čo váš klient kontroluje pri pripojení. Kotva dôvery, zvyčajne koreňový alebo privátny certifikát CA, je to, čo vôbec robí reťaz overiteľnou. RFC 5280 nazýva ich kotvou dôvery, sprostredkovateľom a koncovou entitou, a reťaz je platná len dovtedy, kým každý článok podpisuje článok pod sebou.
Odstráňte identitu a jedno zariadenie stratí prístup. Odstráňte kotvu a každá aplikácia overujúca voči tomu úložisku stratí schopnosť skontrolovať čokoľvek vydané pod ním, vrátane pripojení, ktoré nemajú s VPN nič spoločné. Táto asymetria je tu celé riziko: koreň nainštalovaný pre jednu bránu je často ten istý koreň, ktorý podpisuje interný portál, poštový server alebo zrkadlo balíkov. Pamätajte, ktorý z tých dvoch držíte.
Vlastníctvo rozhoduje, či odstránenie zostane odstránené. Na vlastnom notebooku ste jediný, kto môže certifikát vrátiť späť. Na spravovanom zariadení môže konfiguračný profil alebo náklad MDM znova nainštalovať pri ďalšej registrácii, a preto sa 'vracia' a preto silnejšie odstraňovanie nepomáha.
Zistite, ktoré úložisko ho ešte drží
Ľudia začínajú v aplikácii Nastavenia, ktorá je jediným miestom, kde sa certifikát neukladá. Skutočné miesta sú úložiská dôvery operačného systému, vlastné úložisko prehliadača a súkromné úložisko aplikácie.
| 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 |
Porovnávajte podľa sériového čísla alebo odtlačku, nikdy podľa zobrazovaného názvu. Zobrazované názvy nastavuje ten, kto certifikát vydal, a znova sa používajú: 'Example VPN' môžu byť tri certifikáty s tromi rôznymi kľúčmi, jeden z nich sa stále denne používa.
certutil -user -store My
certutil -store Root
openssl x509 -in vpn-client.pem -noout -subject -issuer -serial -fingerprint -sha256
V macOS nástroj security dáva rovnaké fakty a find-identity ukazuje, ktoré certifikáty majú ešte pripojený privátny kľúč:
security find-certificate -a -c "Example VPN" -Z /Library/Keychains/System.keychain
security find-identity -v -p ssl-client
Odstráňte úzky objekt, ponechajte spoločného vydavateľa
Exportujte pred odstránením. Bez zálohy je jediná obnova opätovné vydanie, čo pri privátnej CA znamená vrátiť sa k tomu, kto prevádzkuje PKI. Exportovaný PFX je aj to, čo odovzdáte, ak sa odstránenie ukáže ako nesprávne rozhodnutie.
certutil -user -exportPFX -p backup My <serial> C:\temp\vpn-id.pfx
certutil -user -delstore My <serial>
Remove-Item Cert:\CurrentUser\My<thumbprint>
Prepínač -user je ten, ktorý ľudia omylom vynechajú. Bez neho certutil pracuje s úložiskom stroja, čo znamená zvýšený shell, inú sadu certifikátov a rádius účinku, ktorý teraz zahŕňa všetky ostatné účty na stroji.
V macOS a Linuxe je tvar rovnaký: identifikujte, exportujte a potom odstráňte z najužšieho úložiska, ktoré vysvetľuje príznak. Odstránenie súboru v /usr/local/share/ca-certificates a opätovné spustenie update-ca-certificates stačí; --fresh pomáha len vtedy, keď sú symbolické odkazy v /etc/ssl/certs už nekonzistentné. Systémy z rodiny RHEL držia kotvy v /etc/pki/ca-trust/source/anchors, kde trust anchor --remove robí rovnakú prácu.
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
Pred odstránením certifikátu CA skontrolujte, čo ďalšie sa naň reťazí. Vypísanie subjektov v balíku je kontrola na dva riadky a odpovedá, či tá kotva robí inú prácu:
openssl crl2pkcs7 -nocrl -certfile /etc/ssl/certs/ca-certificates.crt \
| openssl pkcs7 -print_certs -noout | grep -i example
Odstránenie súboru nie je zrušenie identity
Lokálne odstránenie odoberie jednu kópiu. Privátny kľúč môže stále ležať v p12 pripojenom k starému tiketu, v priečinku záloh alebo na druhom notebooku nastavenom v tom istom čase. Ak išlo o identitu klienta, brána naďalej prijíma akúkoľvek kópiu toho kľúča, kým sa identita nezamietne na strane servera.
Pre OpenVPN PKI to znamená zrušiť certifikát a uistiť sa, že CRL, na ktorú odkazuje crl-verify je aktuálna; easyrsa revoke a potom easyrsa gen-crl je krátka verzia. Pre bránu prepojenú s poskytovateľom identity tam deaktivujte používateľa alebo odstráňte zariadenie, pretože certifikát je len jeden prihlasovací údaj v hre. Odstránenie lokálnej kópie, kým účet zostáva aktívny, vyzerá ako upratovanie a nie je ním.
Incidentová práca má iné poradie: najprv uchovajte certifikát, jeho sériové číslo a záznam o zrušení, potom vymažte a zrušte. Tie záznamy nič nestoja a nevyžadujú nechať na mieste funkčné prihlasovacie údaje.
Overte podaním ruky a druhou aplikáciou
Kontrolujte reťaz zvonka, nie z výpisu úložiska, ktoré ste práve upravili. Úložisko ukazuje vašu úpravu; podanie ruky ukazuje výsledok.
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
Návratový kód 0 znamená, že zostávajúce kotvy stále overujú bránu. Chyba reťaze po odstránení kotvy je očakávaný výsledok a potvrdzuje, že ste zasiahli používanú kotvu, a nie duplikát v úložisku, ktoré klient nikdy nečíta. Ak spojenie stále funguje, hľadajte druhú kópiu, úložisko zabudované v aplikácii alebo pripnutý certifikát, všetko bežné u klientov, ktorí si nosia vlastný zoznam dôvery.
Potom otestujte niečo nesúvisiace: internú stránku, poštového klienta, zrkadlo balíkov. To lacno zmeria rádius účinku, kým sa okno zmien neuzavrie.
- Rola identifikovaná ako identita, sprostredkovateľ alebo kotva dôvery
- Sériové číslo a odtlačok zaznamenané a kópia exportovaná do schváleného umiestnenia
- Odstránenie vykonané v najužšom rozsahu, ktorý vysvetľuje príznak
- Autorizácia na strane servera zrušená, keď osoba alebo zariadenie odišli
- Podanie ruky vysvetlené a jedna nesúvisiaca aplikácia znova otestovaná
- Náklad MDM alebo profil správy aktualizovaný, inak sa certifikát vráti
Ak je certifikát po reštarte späť, práca nie je hotová: niečo ho vlastní a znova ho inštaluje. Nájdite toho vlastníka, kým budete znova odstraňovať, pretože tretie odstránenie sa bude správať presne ako prvé dve.