Membaca bidang publik sebuah sertifikat tidak pernah menuntut menampilkan kunci privat yang cocok dengannya, dan alat untuk melakukannya sudah tersedia di setiap sistem yang menutup VPN. Risikonya muncul satu langkah lebih awal: berkas yang Anda terima mungkin bukan sertifikat sama sekali. Sertifikat PEM, blob DER, bundel PKCS#12, dan OpenVPN profil dapat datang dengan nama yang sama namun memuat materi yang sangat berbeda, jadi kenali wadahnya sebelum Anda memilih perintah.

Tiga fakta menentukan perintah mana yang aman: apa isi berkasnya, apa yang perlu Anda baca darinya, dan siapa yang akan melihat keluarannya. Salah satu saja keliru, pemeriksaan itu sendiri menjadi insiden.

Dari tiga berkas, yang mana yang Anda terima

Sertifikat PEM adalah teks dengan penanda BEGIN dan END yang terlihat, berkas DER adalah biner yang memerlukan flag format masukan, dan bundel adalah wadah yang mungkin menyimpan kunci di samping sertifikat.file server.crt memisahkan teks dari biner dalam hitungan detik, dan sekali lihat pada baris pertama memisahkan sertifikat polos dari profil yang menyematkan sertifikat. Menduga-duga di sini itulah yang mengubah pemeriksaan menjadi insiden.

Jika berkasnya adalah profil dan bukan sertifikat, perlakukan sebagai kredensial sampai terbukti sebaliknya. Asumsi itu tidak berbiaya apa pun, dan mencegah kesalahan paling umum dalam seluruh tugas ini.

Membaca bidang publik sertifikat PEM

Untuk sertifikat yang Anda berwenang memeriksanya, subperintah x509 dengan -noout mencetak bidang yang Anda pilih dan tidak yang lain. Menekan isi tubuh itulah yang menjaga keluaran tetap berupa metadata, yang juga membuatnya aman ditempel ke tiket. Selektor di bawah ini adalah yang publik, dan dokumentasi openssl x509 mencantumkan sisanya.

openssl x509 -in server.crt -noout -subject -issuer -dates -fingerprint -sha256

Pada sertifikat uji yang dibuat secara lokal, perintah itu mencetak baris subjek dan penerbit, pasangan notBefore dan notAfter, serta satu sidik jari SHA-256. Bidang-bidang itu mengidentifikasi objeknya; bidang itu tidak membentuk jalur kepercayaan yang sah, yang merupakan tugas verifikasi terpisah dengan perintah dan jawabannya sendiri. Berkas rantai juga dapat mencetak hanya sertifikat pertama kecuali Anda mengulanginya sendiri. Membandingkan dua berkas dengan cara ini hanya perlu satu perintah dan memastikan mana yang benar-benar disajikan oleh rekan.

Bundel yang menyimpan kunci di samping sertifikat

Berkas .p12atau .pfx dapat membawa kunci privat, dan perintah penguraian akan mencetaknya kecuali Anda menekan bagian keluaran itu. Dengan -nokeys perintah yang sama tetap melaporkan struktur wadah, termasuk kantong kunci terselubung, tanpa memancarkan materi kunci apa pun; hilangkan flag itu dan blok kunci muncul di terminal serta di riwayat shell Anda.

openssl pkcs12 -in bundle.p12 -nokeys -info -passin env:P12PASS

Profil OpenVPN menyematkan materi yang sama sebagai teks, jadi batasnya terlihat jika Anda tahu di mana mencarinya. Materi publik berada di antara BEGIN CERTIFICATE dan END CERTIFICATE, sedangkan apa pun di antara BEGIN PRIVATE KEY dan baris END pasangannya adalah kunci dan tidak boleh meninggalkan host. Menyalin profil secara utuh menerbitkan keduanya.

Mendapatkan nilai rujukan dari tempat lain

Sidik jari yang dibaca dari koneksi yang hendak Anda verifikasi tidak membuktikan apa pun, karena pihak yang Anda curigai yang menyediakannya. Itu bukan argumen menentang sidik jari; itu argumen tentang asal-usul. Bandingkan nilainya dengan nilai yang diperoleh melalui saluran yang tidak dapat ditulis oleh rekan, seperti sertifikat yang diterbitkan di repositori internal atau hash yang tercetak dalam catatan perubahan bertanda tangan.

Jika penyimpanan kepercayaan melakukan validasi, biarkan ia yang melakukannya, dan baca galat yang dihasilkannya alih-alih menggantinya dengan perbandingan Anda sendiri. Yang penting adalah siapa yang menyediakan rujukannya, bukan fungsi hash mana yang dipakai.

Membagikan hasilnya, dan apa yang dilakukan setelah kelalaian

Kirim galat validasi yang persis, tanggal yang relevan, dan hanya detail identitas yang dibutuhkan penerima. Nama host internal dan pengenal akun tetap sensitif meski tidak ada kunci di dalamnya, dan layanan tempel publik adalah tujuan yang salah untuk semua itu. Tempelkan ke tiket, bukan ke penyangga sementara yang dipakai bersama orang lain.

Jika materi kunci sempat muncul di layar atau di berkas, anggap sudah terbongkar dan putar ulang alih-alih berharap tidak ada yang melihat. Lalu catat berkas yang diperiksa, perintah yang dipakai, dan ke mana keluarannya pergi, karena catatan itulah yang mengubah ketakutan menjadi prosedur. Merotasi jauh lebih murah daripada biaya menganggap tidak ada yang menyimpan tangkapan layar, dan catatan yang sama memberi tahu insinyur berikutnya berkas mana yang tersentuh. Lakukan keduanya sebelum tiket ditutup.

Artikel terkait