Klien VPN Anda sudah dicopot, profilnya hilang dari Pengaturan, dan terowongan tetap muncul dengan kredensial lama. Atau Anda menghapusnya, mem-boot ulang, dan menemukannya kembali keesokan paginya. Keduanya bukan tombol hapus yang rusak. Profil adalah konfigurasi; sertifikat adalah materi kunci ditambah keputusan kepercayaan yang dicatat di penyimpanan yang hanya dirujuk oleh profil. Mana di antara keduanya yang Anda pegang menentukan apa arti 'hapus'.

Profil bukan sertifikat

Tiga objek berbeda disebut 'sertifikat' dalam penyiapan VPN. Identitas klien adalah sertifikat daun dengan kunci privat, dan gateway memakainya untuk memutuskan siapa Anda. Sertifikat daun server itu sendiri dan perantaraannya adalah yang diperiksa klien Anda saat terhubung. Jangkar kepercayaan, biasanya sertifikat akar atau CA privat, adalah yang membuat rantai itu sama sekali dapat diverifikasi. RFC 5280 menyebut ini jangkar kepercayaan, perantara, dan entitas akhir, dan rantai hanya valid selama setiap mata rantai menandatangani yang di bawahnya.

Hapus identitasnya dan satu perangkat kehilangan akses. Hapus jangkarnya dan setiap aplikasi yang memvalidasi terhadap penyimpanan itu kehilangan kemampuan memeriksa apa pun yang diterbitkan di bawahnya, termasuk koneksi yang sama sekali tidak ada hubungannya dengan VPN. Asimetri itulah seluruh risikonya di sini: akar yang dipasang untuk satu gateway sering kali akar yang sama yang menandatangani portal internal, server surat, atau cermin paket. Ingat mana di antara keduanya yang Anda pegang.

Kepemilikan menentukan apakah penghapusan tetap terhapus. Di laptop yang Anda miliki, hanya Anda yang dapat mengembalikan sertifikat. Di perangkat terkelola, profil konfigurasi atau payload MDM dapat memasangnya lagi saat check-in berikutnya, itulah sebabnya ia 'kembali' dan mengapa menghapus lebih keras tidak membantu.

Cari tahu penyimpanan mana yang masih menyimpannya

Orang mulai dari aplikasi Pengaturan, satu-satunya tempat sertifikat tidak disimpan. Lokasi sebenarnya adalah penyimpanan kepercayaan OS, penyimpanan milik browser, dan penyimpanan privat aplikasi.

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

Cocokkan dengan nomor seri atau sidik jari, jangan pernah dengan nama tampilan. Nama tampilan ditetapkan oleh siapa pun yang menerbitkan sertifikat dan dipakai ulang: 'Example VPN' bisa berarti tiga sertifikat dengan tiga kunci berbeda, satu masih dipakai sehari-hari.

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

Di macOS alat security memberikan fakta yang sama, dan find-identity menunjukkan sertifikat mana yang masih memiliki kunci privat terlampir:

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

Hapus objek yang sempit, pertahankan penerbit bersama

Ekspor sebelum menghapus. Tanpa cadangan, satu-satunya pemulihan adalah menerbitkan ulang, yang pada CA privat berarti kembali kepada siapa pun yang menjalankan PKI. PFX yang diekspor juga yang Anda serahkan jika penghapusan ternyata keputusan yang salah.

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

Flag -user adalah yang orang lewatkan secara tidak sengaja. Tanpanya certutil bekerja pada penyimpanan mesin, yang berarti shell yang dinaikkan, kumpulan sertifikat berbeda, dan radius dampak yang kini mencakup setiap akun lain di mesin itu.

Di macOS dan Linux bentuknya sama: identifikasi, ekspor, lalu hapus dari penyimpanan tersempit yang menjelaskan gejalanya. Menghapus berkas di bawah /usr/local/share/ca-certificates dan menjalankan ulang update-ca-certificates sudah cukup; --fresh hanya membantu bila symlink di /etc/ssl/certs sudah tidak konsisten. Sistem keluarga RHEL menyimpan jangkar di /etc/pki/ca-trust/source/anchors, tempat trust anchor --remove melakukan pekerjaan yang sama.

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

Sebelum menghapus sertifikat CA, periksa apa lagi yang berantai ke sana. Mendaftar subjek di dalam bundel adalah pemeriksaan dua baris dan menjawab apakah jangkar itu melakukan pekerjaan lain:

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

Menghapus berkas bukan mencabut identitas

Penghapusan lokal menghilangkan satu salinan. Kunci privat masih bisa berada di p12 yang terlampir pada tiket lama, folder cadangan, atau laptop kedua yang disiapkan bersamaan. Jika ini identitas klien, gateway tetap menerima salinan kunci itu sampai identitasnya ditolak di sisi server.

Untuk OpenVPN PKI, itu berarti mencabut sertifikat dan memastikan CRL yang dirujuk oleh crl-verify masih berlaku; easyrsa revoke lalu easyrsa gen-crl adalah versi singkatnya. Untuk gateway yang terikat pada penyedia identitas, nonaktifkan pengguna atau hapus perangkat di sana, karena sertifikat hanyalah satu kredensial yang bermain. Menghapus salinan lokal sementara akun tetap aktif terlihat seperti pembersihan dan bukan.

Pekerjaan insiden memiliki urutan berbeda: pertahankan sertifikat, nomor serinya, dan catatan pencabutan lebih dulu, lalu hapus dan cabut. Catatan itu tidak memakan biaya dan tidak menuntut kredensial yang berfungsi ditinggalkan di tempatnya.

Verifikasi dengan handshake dan aplikasi kedua

Periksa rantai dari luar, bukan dari daftar penyimpanan yang baru Anda sunting. Penyimpanan menunjukkan suntingan Anda; handshake menunjukkan hasilnya.

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

Kode kembali 0 berarti jangkar yang tersisa masih memvalidasi gateway. Kesalahan rantai setelah jangkar dihapus adalah hasil yang diharapkan, dan itu menegaskan Anda mengenai jangkar yang dipakai, bukan duplikat di penyimpanan yang tidak pernah dibaca klien. Jika koneksi masih berfungsi, cari salinan kedua, penyimpanan yang tertanam di aplikasi, atau sertifikat yang dipin, semuanya umum pada klien yang membawa daftar kepercayaan sendiri.

Lalu uji sesuatu yang tidak terkait: situs internal, klien surat, cermin paket. Itu mengukur radius dampak dengan murah sebelum jendela perubahan ditutup.

  • Peran diidentifikasi sebagai identitas, perantara, atau jangkar kepercayaan
  • Nomor seri dan sidik jari dicatat, dan salinan diekspor ke lokasi yang disetujui
  • Penghapusan dilakukan dalam cakupan tersempit yang menjelaskan gejala
  • Otorisasi sisi server dicabut saat orang atau perangkat keluar
  • Handshake dijelaskan, dan satu aplikasi tak terkait diuji ulang
  • Payload MDM atau profil manajemen diperbarui, atau sertifikat kembali

Jika sertifikat kembali setelah boot ulang, pekerjaan belum selesai: ada yang memilikinya dan memasangnya lagi. Temukan pemilik itu sebelum menghapus lagi, karena penghapusan ketiga akan berperilaku persis seperti dua yang pertama.

Artikel terkait