Membatalkan sijil VPN yang salah? Pilihan pemulihan dan hadnya
Kenal pasti pengeluar, nombor siri dan kod sebab sebelum menyentuh CA. Pembatalan kekal, tahanan sijil dan jeda kemasukan ialah tiga pembaikan.
Seseorang telah membatalkan sijil dalam konsol CA dan kini pengguna tidak dapat menyambung. Naluri pertama ialah mencari pembatalan, dan bagi kebanyakan PKI ia tiada: pembatalan ialah fakta yang dinyatakan tentang nombor siri, dan laluan kembali yang disokong ialah sijil baharu, bukan rekod terbalik. Lakukan semakan di bawah mengikut urutan, kerana pembaikan yang dibenarkan bergantung pada kod sebab dan sama ada kunci pernah terdedah.
Kenal pasti sijil, bukan orang
Nama biasa berulang. Pengguna yang mendaftar semula suku lalu mungkin mempunyai dua sijil dengan CN yang sama dan nombor siri berbeza, dan membatalkan satu membiarkan yang lain berfungsi. Tetapkan objek yang tepat dahulu:
openssl x509 -in client.crt -noout -serial -issuer -subject -dates
openssl crl -in ca.crl -noout -text | head -40
Catat nombor siri, pengeluar, tarikh pembatalan dan sebab yang direkodkan dalam CRL. Kemudian sahkan peranti mana yang membentangkan nombor siri itu, kerana sijil yang dibatalkan mungkin masih dipasang pada komputer riba, telefon dan penghala ganti, dan penggantian yang hanya sampai kepada salah satunya menghasilkan insiden kedua.
Semakan tingkah laku pantas mengesahkan keadaan tanpa mengubah apa-apa:
openssl verify -crl_check -CAfile ca.crt -CRLfile ca.crl client.crt
Jika ia melaporkan sijil sebagai dibatalkan, CRL dan klien bersetuju; jika ia disahkan bersih, klien yang anda pegang bukan yang dibatalkan, dan pencarian diteruskan.
Semak sama ada CA menggunakan tahan atau pembatalan kekal
RFC 5280 mentakrifkan certificateHold sebagai keadaan sementara, dan removeFromCRL sebagai isyarat yang melepaskannya. Kitaran hayat itu nyata, tetapi ia bukan butang asal umum. Membaca kod sebab memberitahu anda sama ada pengeluar pernah berniat menyokong pelepasan.
Perangkapnya ialah menganggap niat sementara bermakna rekod sementara. Jika entri CA membawa keyCompromise atau cessationOfOperation, sijil dibatalkan secara kekal, apa pun yang dimaksudkan oleh orang yang menekan butang. Sebaliknya, entri bertanda certificateHold pada CA yang tidak melaksanakan pelepasan tahan adalah kekal dalam amalan, kerana tiada apa akan menerbitkan pelepasan itu.
CA berasaskan OpenSSL menggambarkan had itu. Perintah ca menerima nilai -crl_reason, termasuk certificateHold dan removeFromCRL, tetapi ia tidak menjana CRL delta — dokumentasi OpenSSL CA menyatakan had itu untuk keluaran CRLnya. CRL penuh yang hanya meninggalkan nombor siri ialah model penerbitan berbeza daripada delta yang berkata "entri ini dilepaskan", jadi menampal removeFromCRL ke dalam CA VPN berasaskan OpenSSL tidak menghasilkan pelepasan yang ditakrifkan oleh piawaian.
Jika kunci mungkin telah terdedah, gantikannya
Sijil yang dibatalkan ialah kenyataan bahawa kunci ini mungkin tidak lagi boleh dipercayai. Jika pembatalan itu betul dari segi substans — komputer riba hilang, kunci disalin ke cakera kongsi, kunci persendirian ditampal dalam tiket — memulihkan sijil yang sama membalikkan keputusan keselamatan yang berfungsi seperti yang dimaksudkan.
Terbitkan pasangan kunci baharu melalui proses pendaftaran, edarkan profil baharu, dan biarkan nombor siri lama dibatalkan sepanjang hayatnya. Kemas kini semua yang memaku identiti mengikut nombor siri atau cap jari, termasuk senarai kemasukan, inventori peranti dan pemantauan yang menjangkakan sijil tertentu.
Hujah kemudahan untuk memulihkan yang lama adalah nyata, tetapi ia harus dijawab secara jelas, bukan senyap. "Pengguna memerlukan akses hari ini" ialah sebab untuk mempercepatkan penerbitan, bukan sebab untuk membatalkan pembatalan kunci yang anda tidak dapat pertanggungjawabkan.
Jika ia kesilapan pentadbiran, gantikan di bawah kawalan
Apabila pembatalan itu semata-mata salah dan kunci tidak pernah terdedah, pembaikan masih penggantian terkawal dan bukan penyuntingan. Gunakan proses yang disokong pengeluar, kekalkan nombor siri dan sejarah penerbitan, dan elakkan dua jalan pintas yang menggiurkan: membalikkan aksara status dalam index.txt daripada R kembali kepada V, dan memadam baris penerbitan supaya sijil baharu boleh menggunakan semula nombor siri.
Pada CA OpenSSL pangkalan data dipisahkan dengan tab dan mudah salah baca, yang menjadikan penyuntingan manual menarik:
awk -F'\t' '$1=="R" {print $4, $3, $6}' index.txt
Bacalah, jangan tulis. Menyunting fail mengubah CRL seterusnya tanpa sebarang jejak audit, dan mana-mana instans CA kedua atau sandaran yang masih menyimpan baris asal akan berselisih dengannya kemudian.
Selepas menerbitkan penggantian, terbitkan CRL baharu melalui mekanisme biasa dan biarkan klien mengambilnya. Mengalih keluar CRL, memendekkan hayatnya kepada sifar atau melumpuhkan semakan pembatalan dalam profil klien membaiki seorang pengguna dengan melemahkan setiap pembatalan lain yang pernah diterbitkan oleh CA.
Sahkan kemasukan baharu dan simpan rekod
Uji dengan sambungan baharu, bukan sesi yang sudah dibuka. Terowong hidup mungkin tidak menjalankan semula semakan kemasukan yang dilakukan oleh jabat tangan baharu, dan cache CRL bermakna klien boleh terus menyambung sehingga ia dimuat semula. Putuskan, sambung semula, dan sahkan dalam log pelayan nombor siri mana yang dimasukkan.
Catat apa yang berlaku selagi ia masih segar: nombor siri mana yang dibatalkan, oleh siapa, dengan sebab apa, penggantian apa yang diterbitkan, dan bila CRL diterbitkan semula. Rekod itulah yang memungkinkan semakan pembatalan seterusnya, dan ia juga bukti bahawa kesilapan itu dikendalikan, bukan disembunyikan.
Untuk penggantungan singkat pada masa hadapan, gunakan mekanisme jeda kemasukan jika penggunaan ada — akaun dilumpuhkan pada lapisan identiti, keahlian kumpulan dialihkan, profil klien ditahan. Itu memisahkan keputusan dasar sementara daripada persoalan sama ada sijil yang diterbitkan masih boleh dipercayai, dan perbezaan itulah yang hilang kali pertama.