Dua mesin yang hanya berbicara satu sama lain dapat mempertahankan topologi itu dan tetap mendapatkan kunci lalu lintas yang dinegosiasikan. Bentuk jaringan dan mode perlindungan adalah pilihan yang independen, dan mencampuradukkan keduanya itulah yang membuat orang mencoba merotasi rahasia statis dengan menukar berkas sementara kedua daemon tetap berjalan. Menukar berkas kunci di bawah pasangan yang sedang berjalan tidak merotasi apa pun. Mode kunci statis, yang ditandai usang oleh OpenVPN 2.6, menyimpan satu kunci selama umur terowongan, sehingga berkas di disk dan kunci di memori baru cocok lagi setelah kedua ujung dimulai ulang. Jika pembaruan otomatis adalah persyaratannya, mode perlindungan harus berubah.

Apa yang tidak bisa dilakukan mode kunci statis

Dalam mode rahasia, kedua peer berbagi kunci yang telah dibagikan sebelumnya yang mengenkripsi dan mengautentikasi terowongan secara langsung. Tidak ada jabat tangan, jadi tidak ada mekanisme bagi pihak mana pun untuk mengusulkan materi kunci baru, membuktikan identitas, atau pulih dari ketidakcocokan tanpa campur tangan operator. Kedua sifat itu berasal dari tidak adanya kanal kendali, bukan dari opsi yang hilang, dan tidak ada bendera konfigurasi yang menambahkannya ke mode ini.

Manual OpenVPN 2.6 menyatakan dengan tegas bahwa kunci bertahan sampai kunci baru dibuat. Itu dapat diterima untuk tautan laboratorium atau pasangan perangkat tetap dengan prosedur rotasi yang terdokumentasi, dan tidak dapat diterima di mana pun rahasia berumur panjang merupakan risiko nyata. Menukar berkas tidak menciptakan kunci baru bagi pasangan yang sedang berjalan; itu menciptakan dua peer yang tidak sepakat. Karena itu mengganti berkas menambah gangguan tanpa menambah rotasi.

Juga tidak ada gagasan identitas peer selain kepemilikan berkas. Siapa pun yang memegang kunci adalah peer, dan tidak ada apa pun di terowongan yang mencatat sisi mana yang mana, jadi pencabutan bersifat semua atau tidak sama sekali.

Beralih ke TLS tanpa merancang ulang tautan

Mode TLS menambahkan kanal kendali, dan dengannya kemampuan untuk menegosiasikan kunci kanal data. Dalam penerapan titik-ke-titik, satu sisi mengambil peran server dan sisi lain peran klien, tetapi topologi tetap tautan antara dua peer: setiap sisi mengetahui titik akhir sisi lain, dan tidak muncul kumpulan maupun layanan multiuser. Peran itu detail jabat tangan, bukan arsitektur baru.

Beri setiap mesin identitasnya sendiri. Setiap sisi membutuhkan sertifikat dan kunci privat, jangkar kepercayaan yang memvalidasi sisi lain, dan aturan verifikasi peer yang menyebut siapa yang diharapkan. Jangan menggunakan ulang kunci privat satu peer pada peer lain untuk menghemat waktu; itu mengubah dua identitas menjadi satu dan menghapus kemampuan mencabut salah satu sisi secara terpisah. Pendaftaran adalah tempat untuk melakukannya dengan benar, karena memperbaikinya nanti berarti menerbitkan ulang sertifikat.

Pertahankan kontrak jaringan tanpa perubahan sementara perlindungan berubah. Alamat terowongan, rute, dan layanan yang diizinkan yang sama harus berlaku sebelum dan sesudahnya, sehingga kegagalan selama migrasi merupakan masalah perlindungan, bukan kejutan perutean yang tersamar. Catat alamat dan rute sebelum perubahan; membandingkannya setelahnya lebih cepat daripada merekonstruksinya dari ingatan.

Beberapa penerapan juga melindungi kanal kendali dengan kunci statisnya sendiri, yang tidak berotasi bersama kanal data. Kunci itu menjaga jabat tangan, bukan muatan, sehingga komprominya mengungkap negosiasi, bukan lalu lintas. Simpan terpisah dari materi kanal data, dan beri tanggal penggantian yang dimiliki oleh orang yang disebut namanya. Merotasinya berarti memulai ulang kedua peer dalam jendela terkoordinasi, karena itu ia layak mendapat entri kalender, bukan ingatan.

Siapa memperbarui apa, dan kapan

Dalam mode TLS, pembaruan didorong oleh batas yang dikonfigurasi: interval waktu, jumlah byte, atau jumlah paket. Kontrol waktu yang terdokumentasi adalah yang diandalkan sebagian besar penerapan, dan nilai efektif yang lebih rendah di antara kedua peer dapat memulai penggantian, jadi menaikkannya di satu sisi saja tidak akan menahan peristiwa itu. Batas berbasis volume ada karena tautan yang sibuk dapat menghabiskan kunci jauh sebelum jam melakukannya. Tidak ada batas yang merupakan pemeriksaan kesehatan, dan tidak ada yang memberi tahu Anda bahwa pembaruan berhasil.

Itulah sebabnya mendiagnosis negosiasi ulang yang berulang dari satu berkas konfigurasi menyesatkan. Baca pengaturan pada kedua peer, lalu lihat transisi di log alih-alih menganggap ada kesalahan. Pembaruan yang selesai dengan bersih tampak seperti semburan singkat lalu lintas kanal kendali, bukan seperti pemutusan.

Jaga objek-objek tetap terpisah di kepala Anda. Sertifikat membuktikan identitas jangka panjang dan diganti menurut jadwal yang Anda kendalikan. Kunci kanal data disegarkan secara otomatis, dan pertukaran autentikasi terpisah, jika penerapan memerlukannya, mengikuti kebijakan akun dan mungkin memerlukan pengaturan sendiri untuk pertukaran berikutnya.

Menonaktifkan pembaruan sepenuhnya, dengan menyetel interval ke nol, bukan perbaikan untuk log yang berisik. Itu mengubah peristiwa siklus hidup yang sehat menjadi kunci permanen, yang mengembalikan Anda ke sifat yang ingin Anda tinggalkan.

Menerima perubahan

Bangun konfigurasi baru dari contoh yang didukung pada rilis yang terpasang, bukan dari cuplikan minimal lama yang algoritme dan jalur berkasnya diwarisi dari tempat lain. Koordinasikan pergantian agar kedua peer berubah bersama, dan pertahankan jalur pemulihan yang disetujui jika satu sisi gagal menyala. Turunkan tautan dengan sengaja alih-alih menunggu gangguan untuk menguji pengembalian. Pengembalian yang Anda latih bernilai lebih daripada pengembalian yang Anda deskripsikan.

Uji tiga hal: verifikasi identitas awal berhasil, alur aplikasi yang dimaksud berfungsi, dan pembaruan terkendali terjadi tanpa kehilangan lalu lintas. Lalu baca transisi di log untuk apa yang sebenarnya dibuktikan: pengenal kunci baru berarti para peer menyelesaikan penggantian, bukan bahwa terowongan tersambung kembali. Perlakukan itu sebagai bukti satu langkah, dan periksa penghitung lalu lintas sebelum menyatakan migrasi selesai.

Apa yang akan disembunyikan oleh janji tanpa gangguan adalah kegagalan yang belum Anda lihat. Pembaruan yang gagal, sertifikat yang kedaluwarsa, atau kesalahan jalur masih dapat mengganggu tautan, dan tidak satu pun dikesampingkan oleh uji yang bersih. Sifat yang layak dirancang adalah lebih sempit dan lebih berguna: penggantian kunci rutin berhenti menjadi penukaran berkas manual.

Artikel terkait