Satu server memiliki klien yang macet beberapa saat lalu menyambung ulang, dan server lain langsung menolak koneksi dengan pesan tentang ukuran kunci. Keduanya tampak seperti bug berbeda dan sebenarnya bug yang sama yang menunjuk arah berlawanan. Kriptografi jabat tangan memiliki biaya yang tumbuh seiring ukuran parameter, dan juga memiliki batas bawah yang tidak dilalui pustaka modern. Menentukan ukuran materi adalah daftar periksa, dan butir pertama adalah memutuskan mana dari dua kesalahan ini yang sebenarnya Anda hadapi.

Baca kegagalan sebelum membuat ulang apa pun

Waktu memberi tahu Anda sebagian besarnya. Jabat tangan yang memakan beberapa detik lalu mati biasanya berarti perhitungan melampaui kesabaran mitra, yang menunjuk ke parameter terlalu besar untuk perangkat keras atau untuk batas waktu. Penolakan langsung yang menyebut ukuran kunci atau grup menunjuk ke arah lain, ke materi yang sama sekali tidak akan diterima pustaka.

Keduanya memerlukan perbaikan berlawanan, dan di sinilah sebagian besar percobaan salah. Membuat ulang parameter 8192-bit pada klien yang sudah menolak grup kecil memperburuk kasus lambat tanpa melakukan apa pun untuk kasus cepat. Catat gejala mana yang Anda amati sebelum menyentuh berkas.

Lalu periksa apa yang diminta dari mitra. Server yang dikonfigurasi untuk grup medan hingga besar memaksa setiap klien menghabiskan waktu CPU yang sama pada setiap negosiasi ulang, bukan hanya saat menyambung. Jika masalah muncul pada interval teratur alih-alih saat mulai, interval itu adalah petunjuk kuat pengaturan mana yang mahal. Negosiasi ulang mengulang seluruh perhitungan, jadi kemacetan yang berulang setiap jam biasanya biaya yang sama dibayar lagi.

Kasus lambat: materi yang tidak terjangkau perangkat keras

Pekerjaan Diffie-Hellman dan RSA tumbuh cepat seiring ukuran kunci, dan semuanya terjadi sebelum lalu lintas apa pun mengalir melalui terowongan. Pada router kecil atau klien berdaya rendah, grup yang cukup besar dapat mendorong pertukaran melewati batas waktu pihak lain, sehingga koneksi mencoba lagi atau tampak macet tanpa kesalahan apa pun.

Perbaikannya adalah turun ke ukuran yang didukung setiap mitra dan dapat dihitung dengan nyaman oleh setiap perangkat. Kunci RSA 2048-bit dan grup 2048-bit tetap menjadi garis dasar yang kompatibel luas; lebih besar hanya membantu bila semua pihak setuju dan CPU mampu membayarnya pada setiap negosiasi ulang. Apa pun di atas garis dasar itu adalah pertukaran yang disengaja, bukan peningkatan.

Ukuran bukan skor, dan angka terbesar dalam tabel perbandingan bukan otomatis pilihan yang benar. Pilih nilai terkecil yang diizinkan kebijakan Anda dan diterima semua mitra, lalu ukur jabat tangan alih-alih menganggapnya membaik. Grup lebih kecil yang tetap kehabisan waktu memberi tahu Anda bahwa ukuran tidak pernah menjadi seluruh cerita.

Kasus cepat: grup yang ditolak pustaka

Build OpenSSL modern menolak grup medan hingga terkecil secara langsung, dan tingkat keamanan yang dinaikkan mendorong batas bawah lebih tinggi lagi. Firmware router yang membawa berkas parameter berumur puluhan tahun adalah sumber biasa, dan gejalanya adalah koneksi yang gagal seketika dengan pesan yang menyebut grup atau ukuran kunci. Tidak ada yang berselang-seling pada kegagalan itu, dan itulah yang membuatnya mudah dikenali.

Ganti berkasnya alih-alih menyunting konfigurasi untuk melewati pemeriksaan. Buat grup terkini, validasi, lalu pasang di tempat daemon benar-benar membacanya. Simpan berkas lama sampai klien berhasil tersambung dengan yang baru:

openssl dhparam -out /etc/openvpn/ffdhe2048.pem 2048
openssl dhparam -in /etc/openvpn/ffdhe2048.pem -check -noout
ls -l /etc/openvpn/ffdhe2048.pem

Perintah pemeriksaan memvalidasi berkas dan tidak mencetak apa pun yang berguna saat lolos; daftar menegaskan Anda mengganti berkas yang dimuat layanan, bukan salinan usang di sebelahnya. Arahkan konfigurasi ke jalur itu, mulai ulang daemon, dan pastikan klien yang sebelumnya gagal kini menyelesaikan jabat tangan.

Jika server juga mengatur tingkat keamanan atau profil sertifikat, baca itu sebelum menyimpulkan grupnya salah. Profil yang menuntut kelas lebih ketat dapat menolak materi yang akan diterima bawaan, dan menghapus pengaturan itu adalah perubahan yang lebih sempit daripada mematikan pemeriksaan secara global.

Pilih ukuran untuk mitra dan perangkat keras

Cari tahu apa yang dapat ditanggung ujung jauh sebelum membuat sesuatu yang eksotis. Perangkat yang terlalu tua untuk grup 2048-bit adalah perangkat untuk diganti, karena mengarahkan server ke grup yang lebih lemah hanya mengubah keluhan kompatibilitas menjadi gangguan. Perbaikan tahan lama bergerak ke perangkat lunak yang lebih baru, bukan parameter yang lebih tua. Setiap pengecualian sementara di bidang ini punya cara untuk menjadi konfigurasi permanen.

Ketika CPU server menjadi batasnya, ubah algoritme alih-alih turun di bawah kebijakan. Pertukaran kunci kurva eliptik seperti X25519 jauh lebih murah daripada grup medan hingga besar dan didukung luas, yang menjadikannya jawaban lebih baik untuk keluhan kinerja daripada modulus RSA yang lebih kecil.

Apa pun yang Anda pilih, uji dengan satu koneksi nyata dan perhatikan berapa lama jabat tangan berlangsung, bukan hanya apakah akhirnya tersambung. Koneksi yang berhasil dalam dua belas detik memiliki akar penyebab yang sama dengan yang gagal pada lima belas.

Catat pilihan agar pembangunan ulang tidak membatalkannya

Simpan berkas parameter di bawah manajemen konfigurasi dan tuliskan ukuran, alasan, dan tanggal di sebelahnya. Server yang dibangun ulang dan diam-diam membuat bawaannya sendiri adalah cara kesalahan yang sama kembali enam bulan kemudian tanpa ada yang bisa menjelaskan keputusan awalnya.

Catat informasi yang sama di samping endpoint dan profil, agar tinjauan tidak perlu merekonstruksinya dari ukuran berkas. Ketika koneksi berikutnya macet, catatan itu adalah perbedaan antara pemeriksaan lima menit dan penyelidikan baru. Ini juga mencegah insinyur berikutnya menyelesaikan kasus lambat dengan perbaikan yang dimaksudkan untuk kasus cepat.

Artikel terkait