Mencabut sertifikat VPN yang salah? Opsi pemulihan dan batasannya
Identifikasi penerbit, nomor seri, dan kode alasan sebelum menyentuh CA. Pencabutan permanen, penangguhan sertifikat, dan jeda penerimaan adalah tiga perbaikan.
Seseorang mencabut sertifikat di konsol CA dan kini pengguna tidak dapat terhubung. Naluri pertama adalah mencari pembatalan, dan pada sebagian besar PKI hal itu tidak ada: pencabutan adalah fakta yang dinyatakan tentang nomor seri, dan jalur kembali yang didukung adalah sertifikat baru, bukan catatan yang dibalik. Jalankan pemeriksaan di bawah ini secara berurutan, karena perbaikan yang boleh Anda gunakan bergantung pada kode alasan dan pada apakah kunci pernah terekspos.
Identifikasi sertifikatnya, bukan orangnya
Nama umum berulang. Pengguna yang mendaftar ulang kuartal lalu mungkin memiliki dua sertifikat dengan CN sama dan nomor seri berbeda, dan mencabut satu membuat yang lain tetap berfungsi. Tetapkan dulu objek yang tepat:
openssl x509 -in client.crt -noout -serial -issuer -subject -dates
openssl crl -in ca.crl -noout -text | head -40
Catat nomor seri, penerbit, tanggal pencabutan, dan alasan yang tercatat di CRL. Lalu pastikan perangkat mana yang menyajikan nomor seri itu, karena sertifikat yang dicabut mungkin masih terpasang di laptop, ponsel, dan router cadangan, dan penggantian yang hanya menjangkau salah satunya menimbulkan insiden kedua.
Pemeriksaan perilaku singkat memastikan status tanpa mengubah apa pun:
openssl verify -crl_check -CAfile ca.crt -CRLfile ca.crl client.crt
Jika ia melaporkan sertifikat sebagai dicabut, CRL dan klien setuju; jika verifikasinya bersih, klien yang Anda pegang bukan yang dicabut, dan pencarian berlanjut.
Periksa apakah CA memakai penangguhan atau pencabutan permanen
RFC 5280 mendefinisikan certificateHold sebagai status sementara, dan removeFromCRL sebagai sinyal yang melepaskannya. Siklus hidup itu nyata, tetapi bukan tombol pembatalan umum. Membaca kode alasan memberi tahu Anda apakah penerbit pernah bermaksud mendukung pelepasan.
Jebakannya adalah menganggap niat sementara berarti catatan sementara. Jika entri CA memuat keyCompromise atau cessationOfOperation, sertifikat dicabut permanen, apa pun yang dimaksudkan orang yang menekan tombol. Sebaliknya, entri bertanda certificateHold pada CA yang tidak menerapkan pelepasan penangguhan bersifat permanen dalam praktik, karena tidak ada yang akan pernah menerbitkan pelepasan itu.
CA berbasis OpenSSL menggambarkan batasnya. Perintah ca menerima nilai -crl_reason, termasuk certificateHold dan removeFromCRL, tetapi tidak menghasilkan CRL delta — dokumentasi OpenSSL CA menyebutkan batasan itu untuk keluaran CRL-nya. CRL penuh yang sekadar menghilangkan nomor seri adalah model penerbitan yang berbeda dari delta yang mengatakan "entri ini dilepaskan", jadi menempelkan removeFromCRL ke CA VPN berbasis OpenSSL tidak menghasilkan pelepasan yang didefinisikan standar.
Jika kunci mungkin telah terekspos, gantilah
Sertifikat yang dicabut adalah pernyataan bahwa kunci ini mungkin tidak lagi dipercaya. Jika pencabutan itu benar secara substansi — laptop hilang, kunci disalin ke disk bersama, kunci privat ditempel di tiket — memulihkan sertifikat yang sama membalik keputusan keamanan yang berjalan sebagaimana mestinya.
Terbitkan pasangan kunci baru melalui proses pendaftaran, distribusikan profil baru, dan biarkan nomor seri lama dicabut sepanjang masa hidupnya. Perbarui semua yang mematok identitas berdasarkan nomor seri atau sidik jari, termasuk daftar penerimaan, inventaris perangkat, dan pemantauan yang mengharapkan sertifikat tertentu.
Argumen kenyamanan untuk memulihkan yang lama itu nyata, tetapi harus dijawab secara eksplisit, bukan diam-diam. "Pengguna perlu akses hari ini" adalah alasan untuk mempercepat penerbitan, bukan alasan untuk membatalkan pencabutan kunci yang tidak dapat Anda pertanggungjawabkan.
Jika itu kesalahan administratif, gantilah secara terkendali
Ketika pencabutan memang keliru dan kunci tidak pernah terekspos, perbaikannya tetap penggantian terkendali, bukan penyuntingan. Gunakan proses yang didukung penerbit, pertahankan nomor seri dan riwayat penerbitan, dan hindari dua jalan pintas yang menggiurkan: membalik karakter status di index.txt dari R kembali ke V, dan menghapus baris penerbitan agar sertifikat baru dapat memakai ulang nomor seri.
Pada CA OpenSSL basis datanya dipisahkan tab dan mudah salah baca, yang membuat penyuntingan manual menarik:
awk -F'\t' '$1=="R" {print $4, $3, $6}' index.txt
Bacalah, jangan tulis. Menyunting berkas mengubah CRL berikutnya tanpa jejak audit apa pun, dan setiap instans CA kedua atau cadangan yang masih menyimpan baris asli akan berselisih dengannya nanti.
Setelah menerbitkan penggantian, terbitkan CRL baru melalui mekanisme biasa dan biarkan klien mengambilnya. Menghapus CRL, memendekkan masa hidupnya menjadi nol, atau menonaktifkan pemeriksaan pencabutan di profil klien memperbaiki satu pengguna dengan melemahkan setiap pencabutan lain yang pernah diterbitkan CA.
Pastikan penerimaan baru dan simpan catatannya
Uji dengan koneksi baru, bukan sesi yang sudah terbuka. Terowongan yang hidup mungkin tidak menjalankan ulang pemeriksaan penerimaan yang dilakukan jabat tangan baru, dan cache CRL berarti klien dapat terus terhubung sampai menyegarkan. Putuskan, sambungkan lagi, dan pastikan di log server nomor seri mana yang diterima.
Catat apa yang terjadi selagi masih segar: nomor seri mana yang dicabut, oleh siapa, dengan alasan apa, penggantian apa yang diterbitkan, dan kapan CRL diterbitkan ulang. Catatan itulah yang memungkinkan tinjauan pencabutan berikutnya, dan itu juga bukti bahwa kesalahan ditangani, bukan disembunyikan.
Untuk penangguhan singkat di masa mendatang, gunakan mekanisme jeda penerimaan jika penerapannya memilikinya — akun dinonaktifkan di lapisan identitas, keanggotaan grup dihapus, profil klien ditahan. Itu menjaga keputusan kebijakan sementara terpisah dari pertanyaan apakah sertifikat yang diterbitkan masih tepercaya, dan justru perbedaan itulah yang hilang pertama kali.