Kebanyakan orang menemui perkataan nonce dalam profil VPN dan menyangka ia satu lagi rahsia kongsi untuk disalin antara rakan sebaya. Bukan. Nonce ialah nilai yang tidak boleh berulang di bawah kunci yang sama, dan dalam kebanyakan penyulitan berasaskan nonce ia bergerak secara terbuka. Kekeliruan itu kekal tidak berbahaya sehingga seseorang mengeditnya dengan tangan, dan di situlah kerosakan sebenar bermula.

Dari Mana Nonce Sebenarnya Datang

Penyulitan disahkan memerlukan nonce berbeza bagi setiap mesej yang disulitkan di bawah kunci. Protokol memenuhi keperluan itu dengan cara berbeza: pembilang yang meningkat secara monoton, garam digabungkan dengan pengecam paket, atau nilai rawak yang cukup panjang. IKEv2 bertukar nonce semasa pertukaran awal, dan ia adalah input awam untuk terbitan kunci, bukan rahsia.

Keunikan boleh bersifat struktur atau kebarangkalian. Pembilang tidak boleh berulang sehingga ia bergolek, sebab itu protokol menetapkan titik pembaharuan kunci jauh lebih awal. Nilai rawak bergantung pada bit yang cukup supaya perlanggaran tidak mungkin dalam had mesej, yang merupakan hujah berbeza dengan mod kegagalan berbeza. Dokumentasi protokol menyebut kaedah mana yang terpakai, dan kedua-duanya selamat hanya selagi had yang dinyatakan dihormati.

DesignWhere uniqueness comes fromExhaustion is handled by
AES-GCM recordsAn IV, typically a counterRekey before the counter wraps
ChaCha20-Poly1305A 96-bit nonce from a counter or generatorA message limit per key
WireGuardA per-key 64-bit counterRekey at a message cap
OpenVPN AEADPacket identifier plus implicit key materialRekey on the packet-id limit
IKEv2Fresh nonces per exchangeA new security association

Apa Sebenarnya Kos Penggunaan Semula

Menggunakan semula nonce di bawah satu kunci bukanlah persoalan kecekapan kecil. Dengan GCM, dua mesej yang berkongsi IV membolehkan pemerhati memulihkan kunci pengesahan dan mengira eksklusif-atau dua teks jelas. Binaan berasaskan aliran menggunakan semula aliran kunci dengan cara yang sama, yang menjadikan teks sifer sebagai teka-teki dan bukan rahsia.

Itulah sebabnya pelaksanaan memperbaharui kunci sebelum pembilang bergolek, dan sebabnya ia berhenti dan bukannya meneruskan apabila keadaannya tidak pasti. But semula yang menetapkan semula pembilang sedangkan rakan sebaya masih memegang kunci lama, atau mesin maya yang dipulihkan daripada snapshot yang diambil di tengah sesi, ialah tepat keadaan yang had itu wujud untuk menghalangnya. Penyerang tidak diperlukan; operasi biasa sudah memadai.

Mengapa Pengeditan Tangan Ialah Pembetulan yang Salah

Pembilang, garam dan pengecam paket ialah mesin keadaan yang dikongsi oleh kedua-dua hujung. Menukar satu pihak menyahsegerakkan pihak yang lain, dan terowong gagal dengan cara yang kelihatan seperti masalah penghalaan. Tuas yang disokong ialah pertukaran kunci baharu, yang menetapkan semula keadaan di kedua-dua hujung sekali gus.

Kata laluan dan nonce juga memainkan peranan berbeza. Kata laluan ialah input rahsia untuk terbitan kunci; nonce ialah input awam bagi setiap mesej. Medan profil berlabel nonce yang meminta rahsia panjang biasanya ialah kunci statik atau rahsia yang dikongsi awal di bawah nama lain, jadi baca dokumentasi medan itu dan bukannya menganggap.

Apabila nasihat berkaitan pengendalian nonce, pembetulannya ialah versi yang dibetulkan oleh penyelenggara, bukan sifer lain atau kunci yang lebih pendek. Menukar sifer untuk mengelakkan perkataan nonce memindahkan masalah dan bukan menyelesaikannya.

Membaca Amaran Tanpa Meneka

Baris log tentang pembilang atau nonce biasanya menerangkan keadaan yang hilang dan bukan serangan. Semak sama ada satu rakan sebaya dimulakan semula, sama ada mesin maya klon menggunakan semula identiti yang sama, dan sama ada kedua-dua hujung bersetuju tentang tetapan pembaharuan kunci. Kemudian wujudkan sesi baharu dan perhatikan sama ada mesej itu kembali.

Asingkan diagnosis daripada kegagalan yang tidak berkaitan. Halaman yang tidak dimuatkan, atau gesaan kelayakan yang berulang, bukan bukti penggunaan semula nonce, dan menganggapnya sedemikian menghantar anda ke lapisan kriptografi sedangkan masalahnya berada di atasnya.

Untuk penggunaan biasa, peraturan selamat itu pendek: biarkan pelaksanaan mengurus nonce, kekalkan kedua-dua hujung pada versi yang disokong, dan anggap sebarang penetapan semula keadaan sebagai sebab untuk memperbaharui kunci dan bukannya mengedit nilai. Jika medan profil tiada dalam dokumentasi vendor, jangan reka nilai untuknya. Membaiki terowong bermula dengan mengetahui lapisan mana yang anda lihat.

Artikel berkaitan