WireGuard menyatakan panjang kunci privat salah: apa yang harus dilakukan sekarang?
Kunci 32 bita dalam base64 berukuran 44 karakter. Tentukan apakah teks Anda rusak atau identitasnya keliru sebelum membuat ulang apa pun.
Pesan itu menyatakan kunci privat memiliki panjang yang salah, dan susunan kata tersebut menunjuk pada penyandian terlebih dahulu, baru kemudian pada kriptografi. Kunci WireGuard menyandikan 32 bita sebagai base64, yang menghasilkan 44 karakter termasuk tambahan akhir, jadi nilai berukuran lain bukanlah kunci sekacau apa pun tampilannya. Mengisi string sampai pengurai menerimanya menghasilkan nilai yang terbentuk rapi yang tidak akan dikenali oleh mitra mana pun.
Ada dua pekerjaan berbeda di balik galat ini: memperbaiki teks kunci yang sah, dan mengganti identitas yang tidak lagi Anda pegang. Keduanya berakibat berbeda, dan salah satunya membatalkan ujung yang lain.
Apa yang diharapkan pengurai
Kunci WireGuard adalah 32 bita bahan kunci dalam base64 dengan tambahan standar, yang menghasilkan string tetap sepanjang 44 karakter. Perkakas menolak apa pun yang tidak terurai tepat menjadi 32 bita, karena kurva yang mendasarinya mengambil skalar 32 bita dan tidak yang lain. Nilai publik dan privat memakai penyandian yang sama, sehingga pengurai tidak bisa tahu dari formatnya saja mana yang Anda tempel. Ambiguitas itulah yang menyebabkan separuh kebingungan seputar galat ini.
wg genkey | tee private.key | wg pubkey > public.key
base64 -d private.key | wc -c
wc -c private.key
wg show wg0 public-key
Jika nilai Anda terurai menjadi 32 bita, panjangnya benar dan keluhan datang dari tempat lain di berkas. Jika terurai menjadi sesuatu yang lebih pendek, Anda memegang bahan yang terpotong, bukan masalah pemformatan.
Kerusakan pemformatan atau bahan yang keliru?
Kerusakan pemformatan menumpuk di tepi: tanda kutip yang ditambahkan shell, label seperti private_key yang ikut tersalin bersama nilainya, jeda baris yang disisipkan klien obrolan, atau spasi akhir yang bertahan dari penempelan. Setiap perubahan itu mengubah string tanpa mengubah bitanya, jadi menghapusnya memulihkan identitas asli. Bandingkan berkas dengan catatan penyediaan karakter demi karakter alih-alih membuang tanda baca sampai pengurai diam.
Bahan yang keliru adalah situasi lain. Kata sandi, kunci sertifikat, atau nilai publik semuanya bisa tampak masuk akal dan terurai ke ukuran yang salah. Tidak ada pembersihan yang mengubah salah satunya menjadi skalar yang diharapkan mitra. Kasus itu memerlukan identitas baru, bukan penyuntingan.
Kunci publik di bidang privat
Kekeliruan yang paling umum adalah nilai publik ditempel ke bidang privat, atau sebaliknya. Keduanya base64 sah sepanjang 32 bita, jadi pemeriksaan panjang lolos dan jabat tangan gagal belakangan tanpa pesan yang berguna. Kunci privat adalah skalar yang menghasilkan kunci publik, jadi Anda bisa memastikannya dengan menurunkan nilai publik dan membandingkannya dengan yang diizinkan mitra. Bila nilai turunan tidak cocok dengan catatan, Anda memegang identitas yang salah, bukan salah ketik.
Mengganti kunci privat klien tanpa memperbarui kunci publik yang diizinkan di ujung lain menciptakan ulang ketidakcocokan yang sama, dengan kebingungan tambahan bahwa berkas klien sendiri kini tampak konsisten. Ubah kedua ujung dalam satu operasi, atau orang berikutnya akan men-debug separuh yang salah.
Perbaiki profil, lalu buktikan jabat tangan
Setelah kunci terurai ke ukuran yang benar dan cocok dengan pasangan yang diizinkan, pekerjaan yang tersisa adalah profil dan jalurnya. Perintah di bawah ini membuat pasangan baru saat diperlukan, memeriksa ukuran terurai kunci yang ada, dan membaca nilai publik yang benar-benar dipakai antarmuka. Jangan pernah menempelkan nilai privat ke tiket atau situs pengurai.
wg genkey | tee new.key | wg pubkey > new.pub
base64 -d private.key | wc -c
ip route get 10.60.9.5
wg show wg0 latest-handshakes
Pemeriksaan ukuran menjawab apakah bahannya berbentuk kunci, dan kueri rute menjawab apakah sebuah paket akan pernah mencapai antarmuka. Baris jabat tangan yang tetap kosong setelah kedua pemeriksaan lolos memindahkan diagnosis ke titik akhir mitra dan alamat yang diizinkan. Baca kunci publik antarmuka terhadap catatan penyediaan satu kali lagi, karena profil tersimpan yang usang bisa tampak benar sementara yang aktif berbeda].
Catat nilai mana yang Anda ganti dan di mana salinan yang diizinkan berada. Siapa pun yang menyentuh mitra ini berikutnya perlu tahu ujung mana yang berubah.