Fail DH atau kunci tls-auth? Membezakan dua fail OpenVPN
Satu fail menyimpan parameter kumpulan awam, yang lain bahan rahsia kongsi. Tiga syarat menentukan direktif mana yang menjadi milik setiap satu.
Dua fail, dua direktif, dan tabiat menamakan kedua-duanya sempena perkara yang dikonfigurasikannya. Begitulah dh.pem berakhir pada baris tls-auth dan klien gagal dengan mesej tentang format kunci yang tidak dijangka. Keputusan di hadapan anda bukanlah fail mana yang lebih kuat. Ia adalah peranan mana yang benar-benar diperlukan oleh penggunaan, dan tiga syarat menentukannya: pertukaran kunci apa yang akan dirundingkan oleh tindanan TLS anda, sama ada anda mahu pengesahan saluran kawalan, dan sama ada bahan itu mesti kekal rahsia.
Jawab semuanya mengikut urutan dan soalan fail akan terjawab sendiri. Langkau dan nama direktif mula kelihatan boleh ditukar ganti, iaitu keadaan yang tepat dari mana kesilapan itu datang.
Baca label sebelum nama fail
Baris pertama fail lebih bermaklumat daripada namanya, kerana nama ialah konvensyen manusia manakala label dihasilkan oleh alat. Parameter Diffie-Hellman membawa label PEM BEGIN DH PARAMETERS. Kunci statik OpenVPN ialah struktur yang sama sekali berbeza, dengan pengepala dan muatan heksadesimalnya sendiri.
Menamakan semula tidak menukar apa-apa. Fail parameter bernama ta.key masih parameter, dan kunci statik bernama dh.pem masih kunci statik; penghurai membaca kandungan dan menolak ketidakpadanan. Semak sebelum menyunting profil:
head -n 1 dh.pem
head -n 1 ta.keyTiga syarat yang menentukan fail mana yang anda perlukan
Syarat pertama ialah pertukaran. Jabat tangan Diffie-Hellman medan terhingga memerlukan kumpulan, dan direktif dh ialah tempat pelayan menamakan parameternya. Jabat tangan lengkung eliptik sama sekali tidak memerlukan fail itu, kerana lengkung itu sendiri ialah set parameter. Jika pelayan anda hanya merundingkan suite ECDHE, fail DH ialah beban mati dan bukannya kekuatan tambahan.
Syarat kedua ialah pengesahan saluran kawalan, ciri berasingan dengan bahannya sendiri. Fail tls-auth ialah kunci statik kongsi yang dipegang kedua-dua rakan, digunakan untuk menandatangani paket saluran kawalan supaya rakan yang tidak disahkan tidak dapat menyelesaikan jabat tangan. Ia wujud sama ada anda menggunakan DH medan terhingga atau tidak, dan tiada kaitan dengan parameter kumpulan.
Syarat ketiga ialah kerahsiaan dan pengedaran. Parameter DH boleh diterbitkan tanpa melemahkan sesi, kerana nilai rahsia dijana bagi setiap jabat tangan dan tidak pernah meninggalkan rakan. Kunci statik tidak boleh diterbitkan: ia bait yang sama pada kedua-dua hujung, tidak berputar sendiri, dan sesiapa yang memilikinya boleh menghasilkan tandatangan saluran kawalan yang sah. Kedua-dua jawapan itu menuju kepada peraturan pengendalian yang sama sekali berbeza, itulah sebabnya satu fail boleh berada dalam repositori dan yang lain tidak.
Jana bahan yang betul bagi setiap peranan
Gunakan alat yang menghasilkan format yang dijangka oleh direktif dan bukannya menukar antara keduanya. Bagi kunci kongsi pada OpenVPN 2.6, bentuk bertaip penjana menyatakan tujuannya secara eksplisit.
openvpn --genkey tls-auth ta.keyPerintah itu mencipta bahan rahsia baharu; ia tidak membaiki atau memeriksa kunci sedia ada, dan menjalankannya semula memberi anda kunci berbeza yang tidak dimiliki rakan lain. Salin fail yang terhasil kepada rakan yang memerlukannya melalui saluran yang anda akan gunakan untuk sebarang rahsia kongsi, dan kekalkan konvensyen arah secara konsisten: dengan tls-auth, satu pihak menggunakan key-direction 0 dan pihak lain key-direction 1.
Parameter DH, apabila diperlukan, datang daripada penjanaan parameter dan bukan daripada penjana kunci, dan asal usulnya penting walaupun outputnya awam. Kumpulan yang diambil daripada sumber tidak diketahui tidak menjadi boleh dipercayai kerana ia awam; ia masih perlu menjadi kumpulan yang dipersetujui rakan anda dan yang tidak dilemahkan oleh saiz atau pembinaannya.
Apa yang dh none lakukan dan apa yang tidak
dh none ialah direktif sebenar dengan makna sempit: tiada fail parameter medan terhingga akan dimuatkan, kerana jabat tangan menggunakan Diffie-Hellman lengkung eliptik. Ia bukan singkatan untuk “langkau langkah DH” dalam erti melemahkan apa-apa, dan ia sudah tentu tidak memberitahu OpenVPN supaya menerima fail lain sebagai pengganti.
Dua kesilapan timbul daripada salah membacanya. Yang pertama ialah menganggap dh none menghapuskan keperluan tls-auth, sedangkan kedua-duanya mengawal perkara berbeza. Yang kedua ialah menyimpan baris dh usang di sebelah konfigurasi hanya lengkung dan kemudian tertanya-tanya fail mana yang sebenarnya digunakan pelayan; jika direktif itu ada, fail itu dibaca, dan laluan yang rosak di situ menggagalkan permulaan atas sebab yang tidak berkaitan dengan pertukaran yang akan dirundingkan.
Jika fail yang salah sudah digunakan
Pulihkan rahsia yang dimaksudkan daripada pemilik profil dan jangan sentuh pengesahan sijil semasa melakukannya. Kegagalan itu ialah ketidakpadanan format, bukan kegagalan kepercayaan, dan mematikan pengesahan untuk melepasi ralat menggantikan masalah permulaan dengan masalah senyap.
Kemudian asingkan dua insiden yang orang cenderung gabungkan. Menerbitkan fail parameter DH hampir tidak berbahaya, kerana parameternya memang awam sejak reka bentuk. Mendedahkan kunci tls-auth ialah peristiwa lain: kunci itu mengesahkan paket saluran kawalan bagi setiap rakan yang memilikinya, jadi penggantiannya mesti diselaraskan di seluruh penggunaan dan bukan digunakan pada satu hos.
Semakan lima minit menentukan kes mana yang anda hadapi: baca baris pertama setiap fail, sahkan direktif yang merujuknya, dan sahkan bahawa pengedaran fail itu sepadan dengan apa yang dituntut oleh bahan. Itu kerja yang lebih kecil daripada menjana semula PKI yang berfungsi, dan itulah yang ditunjukkan oleh tiga syarat tadi sepanjang masa.