Cara mengesahkan cap jari sijil VPN melalui saluran berasingan
Cap jari hanya membuktikan identiti apabila nilai yang dijangka tiba melalui saluran yang tidak dikawal oleh penyerang. Jalankan pemeriksaan mengikut urutan ini.
Cap jari hanya sekuat saluran yang memberitahu anda apa yang patut dijangka. Jika nilai yang anda bandingkan tiba melalui sambungan yang sama dengan yang anda uji, perbandingan itu tidak membuktikan apa-apa selain bahawa pihak yang mengawal sambungan itu konsisten. Pemeriksaan mesti berjalan dalam urutan tetap, dan langkah yang gagal sepatutnya menghentikan anda dan bukannya menolak anda ke langkah seterusnya. Berikut ialah urutan yang saya gunakan apabila klien VPN melaporkan bahawa sijil telah berubah.
Namakan objek sebelum anda menamakan nilai
Tentukan sama ada nilai yang dijangka itu milik sijil daun pelayan, milik CA yang mengeluarkannya, atau milik kunci awam di dalam daun. Itu tiga pemeriksaan berbeza, dan ketiga-tiganya gagal dengan cara yang berbeza. Cap jari CA yang sepadan tidak memakukan pelayan, dan cincang kunci awam sengaja bertahan melalui pengeluaran semula yang mengekalkan kunci yang sama.
Catat juga algoritmanya. SHA-256 ialah jangkaan biasa sekarang, tetapi alat lama mencetak SHA-1 melainkan anda meminta yang lain, dan nilai hex 40 aksara ialah tanda bahawa anda akan membandingkan dua perkara berbeza.
Dapatkan nilai yang dijangka melalui saluran kedua
Saluran kedua mestilah saluran yang tidak boleh ditulis oleh pihak yang anda lindungi diri daripadanya. Sistem peruntukan yang anda sudah mengesahkan diri dengannya, rekod bercetak di dalam peti besi, pangkalan data konfigurasi, atau dokumen bertandatangan yang dihantar oleh proses lain, semuanya layak. Mesej sembang daripada rakan sekerja, halaman sokongan yang dicapai melalui hasil carian, dan apa-apa yang ditampal ke dalam terminal tempat anda sudah menyahpepijat tidak layak.
Minta nilai penuh dan algoritmanya, jangan sekali-kali awalan. Titik bertindih dan huruf besar atau kecil tidak penting, tetapi pemotongan menjadikan pemeriksaan 256 bit sebagai permainan meneka.
Jika tiada sesiapa dapat menghasilkan nilai yang dijangka daripada sumber bebas, hasil jujurnya ialah sijil ini tidak dapat disahkan hari ini. Berkata begitu lebih baik daripada memakukan apa yang baru ditunjukkan oleh klien, yang menjadikan amaran sebagai kebiasaan.
Ekstrak nilai di pihak anda
Untuk fail sijil, perintahnya ialah openssl x509 -in server.crt -noout -fingerprint -sha256. Digest eksplisit penting: tanpanya, output bergantung pada versi OpenSSL anda. Hasilnya ialah rentetan hex yang dipisahkan titik bertindih, jadi buang titik bertindih itu dan tukar kedua-dua pihak kepada huruf kecil sebelum membandingkan.
Untuk titik hujung yang bercakap TLS secara langsung, sambung dan salurkan sijil itu keluar: openssl s_client -connect vpn.example.com:443 -servername vpn.example.com < /dev/null | openssl x509 -noout -fingerprint -sha256. Ini berfungsi untuk panel pentadbir web atau pendengar TLS, bukan untuk OpenVPN, yang saluran kawalannya berada di dalam terowong. Untuk OpenVPN, baca sijil daripada profil di cakera dan bukannya cuba menangkapnya daripada soket.
Perbandingan sepatutnya mekanikal. Normalkan kedua-dua nilai dengan tr -d ':' dan penyeragaman huruf, kemudian bandingkan keseluruhan rentetan. Melakukannya dengan mata ialah cara sesuatu awalan yang sepadan menyembunyikan percanggahan pada bait terakhir. Jika rentetan berbeza, anggap perbezaan itu nyata sebelum anda mencari penjelasan.
Syarat berhenti
Berhenti jika objeknya berbeza, kerana cap jari CA tidak boleh membersihkan sijil daun dan daun tidak boleh membersihkan CA. Berhenti jika algoritmanya berbeza, kerana nilai SHA-1 berbanding nilai SHA-256 tidak memberitahu anda apa-apa. Berhenti jika cap jari sepadan tetapi sijil telah tamat tempoh, dicabut atau dikeluarkan untuk nama lain; cincang yang sepadan bukan pemeriksaan kesahihan dan tidak membaiki rantai yang rosak. Berhenti juga jika nombor sirinya tidak sepadan dengan nombor siri dalam rekod rujukan anda, kerana itu cara paling murah untuk mengesan sijil yang diganti.
Berhenti jika nilai baharu tiba melalui saluran yang anda uji. Putaran boleh mengubah cap jari secara sah, tetapi nilai ganti masih mesti datang daripada proses yang dipercayai, bukan daripada dialog amaran yang mencetuskan soalan itu.
Berhenti jika pembetulan yang dicadangkan ialah mematikan pengesahan nama hos atau rantai. Cap jari menambah satu kekangan pada pemeriksaan biasa; ia tidak menggantikannya melainkan penggunaan itu sengaja memilih model pin sahaja, dan pilihan itu membawa kos operasinya sendiri.
Selepas perbandingan
Catat apa yang anda bandingkan, dari mana nilai yang dijangka datang, dan bila. Jika sijil dikeluarkan semula, kemas kini jangkaan tersimpan melalui saluran dipercayai yang sama dan catat nombor siri baharu, kerana nombor sirilah yang menjadikan putaran seterusnya boleh diaudit.
Kemudian jelaskan tentang hadnya. Cap jari mengesahkan bahawa sijil yang anda pegang ialah yang seseorang beritahu anda untuk dijangka. Ia tidak mengatakan apa-apa tentang hos yang tidak dicerobohi, dan tidak mengatakan apa-apa tentang sama ada perkhidmatan merekod atau mengehadkan apa yang boleh dicapai oleh sijil itu.