Ralat sifer TLS dalam OpenVPN: bandingkan dahulu kedua-dua peer
Ralat „tiada sifer dikongsi“ tergolong dalam saluran kawalan TLS, bukan data-ciphers. Bandingkan versi dahulu, kemudian senarai suite, kemudian buktikan rundingan itu.
Ralat „tiada sifer dikongsi“ kedengaran seperti satu tetapan yang perlu diubah, dan tetapan yang diubah oleh kebanyakan orang ialah yang salah. OpenVPN menyimpan dasar berasingan untuk saluran kawalan yang melakukan jabat tangan TLS dan untuk saluran data yang membawa paket di dalam terowong, dan ralat itu menamakan yang pertama sedangkan orang mengedit yang kedua. Membandingkan apa yang dibenarkan oleh setiap peer, dalam urutan yang betul, menukar tekaan itu kepada dua atau tiga keputusan: versi, kemudian senarai suite, kemudian kelayakan.
Tersilap urutan itu dan anda boleh menghabiskan sejam menambah nama AES pada senarai yang tidak pernah dirujuk.
Dua senarai sifer, dan hanya satu merosakkan jabat tangan
Saluran kawalan merunding sesi TLS, dan dasarnya ditulis dengan tls-cipher untuk TLS 1.2 dan tls-ciphersuites untuk TLS 1.3. Saluran data dikonfigurasikan secara berasingan dengan data-ciphers, di mana ketidakpadanan menghasilkan sambungan yang terbentuk dan kemudian tidak dapat melepaskan trafik. Kedua-duanya menghasilkan ralat yang menyebut sifer, sebab itulah ia dikelirukan. Jabat tangan yang tidak pernah selesai menunjuk kepada saluran kawalan, manakala terowong yang terbentuk tetapi menggugurkan paket menunjuk kepada saluran data.
Baca keseluruhan mesej, bukan baris pertama. Ketidakpadanan versi, suite yang tiada, algoritma tandatangan sijil yang ditolak oleh peer, dan kegagalan pengesahan nama hos semuanya berakhir dengan ralat TLS, dan hanya satu daripadanya berkaitan senarai suite anda. Mengasingkan kategori itu ialah sebahagian besar diagnosis.
Bandingkan versi sebelum membandingkan suite
Peer yang terhad kepada TLS 1.2 dan peer yang memerlukan 1.3 tidak berkongsi versi, dan tiada rentetan sifer yang merapatkan perkara itu. Catat tls-version-min dan tls-version-max pada kedua-dua belah, atau nilai lalai binaan yang digunakan, kerana dasar OpenSSL sesebuah edaran boleh menaikkan had bawah tanpa mana-mana pilihan OpenVPN menyatakannya. Jika satu pihak ialah perkakas atau klien pihak ketiga, tetingkapnya ialah apa yang dibenarkan oleh perisian tegar. Hanya apabila tetingkap bertindih barulah perbandingan suite bermakna.
Rekod itu juga patut menamakan binari sebenar. openvpn baris arahan pada komputer riba anda belum tentu klien yang mengendalikan profil yang diimport.
Senarai TLS 1.2 dan TLS 1.3 tidak bercampur
Nama suite TLS 1.2 kelihatan seperti ECDHE-RSA-AES256-GCM-SHA384 dan tergolong dalam tls-cipher, yang menerima rentetan sifer OpenSSL. Suite TLS 1.3 dinamakan seperti TLS_AES_256_GCM_SHA384 dan tergolong dalam tls-ciphersuites; menambah satu pada rentetan 1.2 tidak mengkonfigurasi senarai 1.3, dan penghurai boleh menerima teks itu tanpa pernah memadankannya. Penapis yang betul untuk satu versi tidak menyatakan apa-apa tentang yang lain. Tulis senarai mana untuk versi mana.
openvpn --show-tls mencetak apa yang disokong oleh binaan tempatan, dan itu inventori, bukan janji: peer jauh mungkin tidak membenarkan suite itu, dan profil aktif mungkin tidak mengaktifkannya. Gunakannya untuk menyingkirkan binaan yang langsung tidak boleh menawarkan suite, kemudian bandingkan senarai yang dikonfigurasikan.
Buktikan rundingan pada sambungan baharu
Jabat tangan yang berjaya ialah satu-satunya bukti yang dikira, dan ia mesti datang daripada klien sebenar dengan profil sebenar. Naikkan verbositi pelayan, sambung sekali, dan baca versi protokol serta suite yang dirundingkan daripada log dan bukan menganggap nilai pertama yang ditawarkan menang. Kemudian sahkan saluran data secara berasingan dengan trafik melalui terowong, kerana jabat tangan yang berfungsi dan saluran data yang gagal ialah pembaikan yang berbeza. Ulang selepas setiap perubahan konfigurasi, kerana profil klien yang lapuk ialah negatif palsu yang biasa.
Jika tiada konfigurasi bersama yang diluluskan, jawapannya ialah peningkatan atau pelan migrasi, bukan dasar yang dilemahkan. tls-version-min menurunkan, mematikan pengesahan, atau mengaktifkan semua suite lama menghapuskan penolakan tanpa memenuhi keperluan keselamatan yang menghasilkannya.
Catat versi yang dirundingkan, suite dan sifer data dalam tiket perubahan. Orang seterusnya yang menemui ralat TLS akan bermula daripada rekod itu, bukan daripada rentetan sifer yang ditemui dalam catatan forum.