Menerbitkan ulang sertifikat laptop dengan nama umum yang sama terasa seperti penggantian, dan semua orang menganggap yang lama sudah mati. Tidak. Pendahulunya tetap sertifikat sah yang ditandatangani otoritas yang sama, dan kontrol apa pun yang menerima klien berdasarkan nama akan terus menerimanya. Yang memisahkan pemeriksaan identitas dari pemeriksaan kredensial adalah nomor seri, dan di situlah perbaikannya.

Mulailah dari kebijakan penamaan yang digunakan server

Dua kontrol tercampur: menerima klien karena siapa yang ia klaim, dan mengeluarkan satu sertifikat tertentu dari layanan. Yang pertama adalah pemeriksaan nama, yang kedua pemeriksaan pencabutan. Keduanya menjawab pertanyaan berbeda, dan satu penerapan bisa memiliki yang satu tanpa yang lain.

Baca konfigurasi server dan catat sumber identitas mana yang berlaku. username-as-common-name menjadikan nama pengguna terautentikasi sebagai nama efektif untuk pencarian khusus klien. Tanpanya, nama umum subjek dari sertifikat yang digunakan. Apa pun jawabannya, catat sebelum Anda menyentuh daftar izin mana pun.

Kedua jalur menghasilkan kumpulan nama yang diizinkan berbeda untuk sertifikat yang sama. Menebak di sini berarti menyunting berkas yang salah dan menyimpulkan bahwa kontrol tidak berfungsi.

Periksa apa yang benar-benar menerima klien

Sebuah client-config-dir dengan berkas yang cocok menyediakan opsi per klien; sendirian itu bukan aturan penerimaan. Penerimaan berdasarkan nama memerlukan ccd-exclusive, yang menolak klien yang tidak memiliki berkas yang cocok. Mengaktifkannya pada penerapan langsung memutus semua yang namanya tidak memiliki berkas, jadi hitung berkasnya sebelum Anda mengubah apa pun.

grep -nE 'ccd-exclusive|client-config-dir|username-as-common-name' /etc/openvpn/server/server.conf
ls -1 /etc/openvpn/ccd/

Hitungannya adalah pemeriksaan: bandingkan daftar direktori dengan identitas yang Anda harapkan terhubung.

Lalu pastikan setiap nama berkas cocok persis dengan identitas efektif, termasuk huruf besar-kecil dan spasi. Berkas untuk office-laptop tidak melakukan apa pun untuk sertifikat yang subjeknya berbunyi Office-Laptop. Spasi di akhir juga tersembunyi dari daftar biasa, dan itulah cara berkas yang tampak ada tetap tidak terbaca.

Periksa CRL yang dimuat gateway

CRL menyebut sertifikat yang dicabut berdasarkan penerbit dan nomor seri, itulah perincian yang tidak dimiliki pemeriksaan nama. Dua sertifikat dapat berbagi nama umum dan berbeda nomor seri, dan hanya daftar pada tingkat nomor seri yang memisahkannya.

Pastikan jalur yang dikonfigurasi, tanggal penerbitan, dan bidang pembaruan berikutnya sebelum memercayai berkas itu sama sekali.

openssl crl -in /etc/openvpn/crl.pem -noout -lastupdate -nextupdate
openssl x509 -in office-laptop.crt -noout -serial -subject

Bandingkan nomor seri di CRL dengan nomor seri pada sertifikat yang ingin Anda pertahankan. Perbandingan itulah seluruh ujiannya, dan melakukannya sekali dengan mata lebih bernilai daripada memercayai skrip yang tidak dibaca siapa pun. Distribusikan CRL yang diperbarui melalui jalur yang sudah dibaca gateway. CRL di direktori yang salah tidak menegakkan apa pun, dan tidak ada log klien yang akan menyebutkannya.

Ganti, lalu buktikan kedua hasil

Terbitkan pengganti dengan nama umum yang sama, catat kedua nomor seri, dan baru setelah itu cabut yang lama. Urutan itu menjaga identitas yang berfungsi tetap tersedia saat Anda menyiapkan perubahan.

Uji pengganti lebih dulu: ia harus terautentikasi dan mencapai apa pun yang menjadi hak namanya. Lalu uji sertifikat lama dan pastikan ia ditolak, karena penggantian yang berhasil tidak mengatakan apa pun tentang pencabutan. Jika keduanya masih terhubung, masukan pencabutan tidak dibaca atau nomor seri lama tidak pernah dicantumkan. Jika tidak ada yang terhubung, Anda merusak aturan penerimaan, bukan kredensialnya.

Sesi yang sudah terbentuk adalah hal terpisah, karena pencabutan berlaku untuk autentikasi baru kecuali gateway juga dikonfigurasi untuk memutus koneksi yang sedang berjalan. Putuskan apakah penghapusan segera diperlukan sebelum Anda menjanjikannya kepada siapa pun.

Apa yang tidak pernah bisa dilakukan pemeriksaan nama

Daftar izin menjawab apakah identitas ini boleh terhubung. Ia tidak dapat mengatakan sertifikat mana yang digunakan identitas itu, dan ia akan menerima kredensial yang lebih lama selama kredensial itu tetap sah dan tidak dicabut. Celah itu muncul saat insiden, ketika pengganti diterbitkan berbulan-bulan lalu dan pendahulunya masih berfungsi.

Di mana kontrol tingkat sertifikat diperlukan, gunakan mekanisme yang menamai sertifikat: entri CRL, atau hook verifikasi yang memeriksa sidik jari yang dipelihara operator. Keduanya membutuhkan pemeliharaan, dan keduanya jujur tentang objek yang mereka periksa. manual OpenVPN 2.6 mendokumentasikan crl-verify dan penerimaan khusus klien sebagai opsi terpisah karena alasan itu.

Catat kontrol mana yang melakukan tugas apa, lalu uji kasus negatifnya. Pencabutan yang belum pernah Anda lihat menolak koneksi adalah konfigurasi yang Anda harap berfungsi.

Artikel terkait