Seseorang melaporkan bahwa kunci VPN bersifat publik, dan kalimat itu menyembunyikan tiga situasi yang sama sekali berbeda. Bisa jadi itu sertifikat CA yang seharusnya dimiliki setiap klien, kunci identitas privat yang seharusnya tidak pernah keluar dari satu mesin, atau rahasia kanal kontrol bersama yang harus dipegang kedua ujung. Perbaikan, urgensi, dan cakupan dampaknya berbeda pada tiap kasus, jadi tugas pertama adalah klasifikasi, bukan tindakan. Salah menentukan kategori berarti setiap langkah berikutnya adalah usaha yang sia-sia.

Mulai dari direktifnya, bukan dari nama berkas

Baca konfigurasi aktif dan temukan direktif mana yang menunjuk materi yang dimaksud. Opsi TLS OpenVPN memakai ca untuk materi sertifikat tepercaya, cert untuk sertifikat peer lokal, dan key untuk kunci privat yang menyertainya.

Nama berkas tidak membuktikan apa pun. Berkas bernama key.pem bisa berisi sertifikat, dan blok sebaris di profil bisa berisi objek yang persis sama dengan berkas terpisah di disk. Buka berkasnya dan lihat headernya daripada memercayai namanya. Satu pemeriksaan itu menghapus sebagian besar ketidakjelasan dalam laporan.

Jika profil adalah bundel PKCS#12, bongkar di tempat terkendali untuk melihat isinya sebenarnya. Satu bundel dapat membawa sertifikat, rantainya, dan kunci privat, yang berarti kebocoran bundel adalah kebocoran ketiganya.

Tuliskan klasifikasinya sebelum siapa pun mengubah berkas: objek, direktif, peer mana yang memegangnya, dan siapa yang bisa membacanya. Kalimat itulah yang menjadi dasar seluruh tanggapan.

Sertifikat CA dirancang untuk dibagikan

Sertifikat CA publik adalah materi kepercayaan. Klien memerlukannya untuk memverifikasi server, dan mendistribusikannya adalah hal normal, bukan insiden. Menerbitkannya tidak menerbitkan kunci penandatanganan privat CA, dan objek itulah yang akan memungkinkan penyerang membuat identitas baru.

Pembedaan itu layak ditulis eksplisit di tiket, karena keduanya terus tertukar. Pertanyaan yang harus dijawab adalah apakah berkas yang bocor itu sertifikat atau kunci penandatanganan, dan sekali lihat isi berkas sudah menyelesaikannya. Sertifikat memuat kunci publik dan tanda tangan; kunci penandatanganan sama sekali tidak muncul di dalamnya.

Distribusi tetap perlu kehati-hatian. Klien sebaiknya memperoleh sertifikat melalui jalur pengiriman profil yang disetujui, bukan dari situs tempel, dan sertifikat yang tiba lewat jalur tak tepercaya bisa diganti di tengah jalan.

Kunci peer dan rahasia tls-auth bukanlah

Kunci privat peer adalah materi identitas. Setelah disalin, server tidak lagi dapat membedakan perangkat yang dimaksud dari siapa pun yang memegang salinannya, karena kepemilikan eksklusif adalah sifat yang sedang dibuktikan. Melanjutkan otorisasi dan penggantian adalah keputusan pemilik VPN, bukan orang yang menemukan berkasnya.

Rahasia tls-auth adalah hal ketiga. Ia menambahkan autentikasi HMAC di sekitar paket kanal kontrol agar paket yang salah terautentikasi dibuang sebelum pertukaran TLS, dan ia bukan kunci privat peer dan bukan pula kunci yang mengenkripsi data aplikasi.

Jika rahasia bersama itu publik, penghalang yang diberikannya hilang bagi semua orang yang memilikinya. Bukan berarti setiap pemegang lolos pemeriksaan sertifikat dan pengguna di belakangnya, itulah sebabnya klasifikasi lebih penting daripada tingkat alarm. Sebutkan penghalang mana yang jatuh, dan sebutkan mana yang tersisa.

Perbaiki peran yang bocor, bukan peran tetangga

Rahasia bersama tidak bisa dibuat privat lagi dengan mengganti nama berkas atau menyembunyikan tautan unduhan. Penggantian berarti membuat nilai baru dan mendistribusikannya ke setiap peer dalam perubahan terkoordinasi, dan mengganti hanya satu sisi merusak kesepakatan bagi semua yang masih memegang nilai lama.

Jika identitas peer terekspos, gunakan proses pencabutan dan pendaftaran ulang operator untuk identitas itu. Mengganti kata sandi akun yang tidak terkait tidak membatalkan sertifikat yang tersalin, begitu pula menukar berkas tls-auth.

Pastikan apa yang benar-benar ditegakkan server yang terpasang sebelum mengandalkan salah satunya. Daftar pencabutan yang tidak diperbarui, atau pemeriksaan peran yang dinonaktifkan selama gangguan, mengubah jawabannya sepenuhnya. Baca konfigurasi yang berjalan, bukan salinan di repositori.

Nilai lalu lintas masa lalu dengan syaratnya sendiri

Berkas yang terekspos tidak dengan sendirinya memberi tahu apakah sesi yang terekam sebelumnya bisa didekripsi. Itu bergantung pada metode pembentukan kunci, materi yang terekspos, dan catatan apa yang ada, dan baik ‘semua lalu lintas hilang’ maupun ‘tidak terjadi apa-apa’ adalah dugaan tanpa fakta itu.

Jangan mengunggah salinan lain dari kredensial sambil menanyakan kategori mana yang dimaksud. Bagikan nama direktif dan metadata non-rahasia melalui jalur dukungan yang disetujui.

Kesimpulan yang berguna menyebutkan objeknya, perannya, perlindungan yang hilang, dan tindakan terkoordinasi yang diperlukan. Apa pun yang lebih pendek adalah judul, bukan penilaian.

Artikel terkait