Jūsų VPN klientas pašalintas, profilis dingo iš Nustatymų, o tunelis vis tiek keliamas su senais prisijungimo duomenimis. Arba ištrinate jį, perkraunate ir kitą rytą vėl randate. Nė vienas variantas nėra sugedęs trynimo mygtukas. Profilis yra konfigūracija; sertifikatas yra raktų medžiaga ir patikimumo sprendimas, įrašytas saugykloje, į kurią profilis tik nurodo. Kurią iš šių dviejų laikote, lemia, ką turi reikšti 'pašalinti'.

Profilis nėra sertifikatas

VPN sąrankoje 'sertifikatu' vadinami trys skirtingi objektai. Kliento tapatybė yra galinis sertifikatas su privačiu raktu, ir šliuzas juo nustato, kas esate. Serverio galinis sertifikatas ir jo tarpinis sertifikatas yra tai, ką jūsų klientas tikrina jungdamasis. Patikimumo inkaras, dažniausiai šakninis arba privatus CA sertifikatas, yra tai, kas grandinę apskritai padaro patikrinamą. RFC 5280 vadina juos patikimumo inkaru, tarpiniu sertifikatu ir galiniu subjektu, o grandinė galioja tik tol, kol kiekviena grandis pasirašo žemiau esančią.

Ištrinkite tapatybę ir vienas įrenginys neteks prieigos. Ištrinkite inkarą ir kiekviena programa, tikrinanti pagal tą saugyklą, neteks galimybės patikrinti visko, kas joje išduota, įskaitant ryšius, neturinčius nieko bendra su VPN. Ši asimetrija yra visa rizika čia: vienam šliuzui įdiegta šaknis dažnai yra ta pati šaknis, kuri pasirašo vidinį portalą, pašto serverį ar paketų veidrodį. Atsiminkite, kurią iš dviejų laikote.

Nuosavybė lemia, ar trynimas liks ištrintas. Savo nešiojamajame kompiuteryje sertifikatą grąžinti galite tik jūs. Valdomame įrenginyje konfigūracijos profilis arba MDM naudingoji apkrova gali jį įdiegti iš naujo kito prisijungimo metu, todėl jis 'grįžta' ir todėl stipresnis trynimas nepadeda.

Išsiaiškinkite, kuri saugykla jį dar laiko

Žmonės pradeda nuo Nustatymų programėlės, o tai vienintelė vieta, kur sertifikatas nesaugomas. Tikrosios vietos yra OS patikimumo saugyklos, pačios naršyklės saugykla ir privačioji programos saugykla.

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

Sutapdinkite pagal serijos numerį arba piršto atspaudą, niekada pagal rodomą pavadinimą. Rodomus pavadinimus nustato sertifikatą išdavęs asmuo ir jie naudojami pakartotinai: 'Example VPN' gali būti trys sertifikatai su trimis skirtingais raktais, vienas jų dar kasdien naudojamas.

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

macOS security įrankis pateikia tuos pačius faktus, ir find-identity parodo, kurie sertifikatai vis dar turi pridėtą privatų raktą:

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

Ištrinkite siaurą objektą, palikite bendrą išdavėją

Eksportuokite prieš ištrindami. Be atsarginės kopijos vienintelis atkūrimas yra pakartotinis išdavimas, o privačioje CA tai reiškia grįžimą pas tą, kas valdo PKI. Eksportuotas PFX taip pat yra tai, ką perduodate, jei pašalinimas pasirodo esąs klaidingas sprendimas.

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

Vėliava -user yra ta, kurią žmonės netyčia praleidžia. Be jos certutil dirba su mašinos saugykla, o tai reiškia pakeltą shell, kitą sertifikatų rinkinį ir poveikio spindulį, kuris dabar apima visas kitas mašinos paskyras.

macOS ir Linux atveju forma ta pati: nustatykite, eksportuokite, tada pašalinkite iš siauriausios saugyklos, kuri paaiškina simptomą. /usr/local/share/ca-certificates esantį failą pašalinti ir update-ca-certificates paleisti iš naujo pakanka; --fresh padeda tik tada, kai /etc/ssl/certs esantys simboliniai saitai jau nenuoseklūs. RHEL šeimos sistemos inkarus laiko /etc/pki/ca-trust/source/anchors, kur trust anchor --remove atlieka tą patį darbą.

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

Prieš ištrindami CA sertifikatą, patikrinkite, kas dar grandinėja prie jo. Pakete esančių subjektų išvardijimas yra dviejų eilučių patikra ir ji atsako, ar tas inkaras atlieka kitą darbą:

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

Failo trynimas nėra tapatybės atšaukimas

Vietinis trynimas pašalina vieną kopiją. Privatus raktas gali vis dar būti p12, pridėtame prie seno bilieto, atsarginių kopijų aplanke ar antrame nešiojamajame kompiuteryje, sukonfigūruotame tuo pačiu metu. Jei tai buvo kliento tapatybė, šliuzas toliau priima bet kurią to rakto kopiją, kol tapatybė atmetama serverio pusėje.

Vienai OpenVPN PKI tai reiškia sertifikato atšaukimą ir užtikrinimą, kad CRL, į kurią nurodo crl-verify , yra aktualus; easyrsa revoke tada easyrsa gen-crl yra trumpoji versija. Šliuzui, susietam su tapatybės teikėju, ten išjunkite vartotoją arba pašalinkite įrenginį, nes sertifikatas yra tik vieni prisijungimo duomenys žaidime. Vietinės kopijos trynimas, kol paskyra lieka aktyvi, atrodo kaip tvarkymas ir juo nėra.

Incidento darbas turi kitą tvarką: pirmiausia išsaugokite sertifikatą, jo serijos numerį ir atšaukimo įrašą, tada trinkite ir atšaukite. Tie įrašai nieko nekainuoja ir nereikalauja palikti veikiančių prisijungimo duomenų vietoje.

Patikrinkite rankos paspaudimu ir antrąja programa

Grandinę tikrinkite iš išorės, o ne iš ką tik redaguotos saugyklos sąrašo. Saugykla rodo jūsų pakeitimą; rankos paspaudimas rodo 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

Grąžinimo kodas 0 reiškia, kad likę inkarai vis dar patvirtina šliuzą. Grandinės klaida pašalinus inkarą yra laukiamas rezultatas ir patvirtina, kad pataikėte į naudojamą inkarą, o ne į dublikatą saugykloje, kurios klientas niekada neskaito. Jei ryšys vis dar veikia, ieškokite antros kopijos, programoje įtaisytos saugyklos ar prisegto sertifikato, visi jie dažni klientuose, kurie atsineša savo patikimumo sąrašą.

Tada išbandykite ką nors nesusijusio: vidinę svetainę, pašto klientą, paketų veidrodį. Tai pigiai išmatuoja poveikio spindulį, kol nepasirodė pakeitimų langas.

  • Vaidmuo nustatytas kaip tapatybė, tarpinis sertifikatas arba patikimumo inkaras
  • Serijos numeris ir piršto atspaudas užfiksuoti, o kopija eksportuota į patvirtintą vietą
  • Trynimas atliktas siauriausiu mastu, kuris paaiškina simptomą
  • Serverio pusės autorizacija atšaukta, kai žmogus ar įrenginys išėjo
  • Rankos paspaudimas paaiškintas, ir viena nesusijusi programa išbandyta dar kartą
  • MDM naudingoji apkrova arba valdymo profilis atnaujintas, kitaip sertifikatas grįš

Jei sertifikatas grįžo po perkrovimo, darbas nebaigtas: kažkas jį valdo ir įdiegia iš naujo. Raskite tą savininką prieš vėl trindami, nes trečias trynimas elgsis lygiai kaip pirmieji du.

Susiję straipsniai