tls-auth lwn tls-crypt: apa yang dilindungi setiap satu dalam OpenVPN
tls-auth menandatangani paket kawalan, tls-crypt turut menyembunyikannya. Kedua-duanya tidak menggantikan pengesahan sijil atau sifer data, dan ketidakpadanan kelihatan seperti senyap.
Kedua-dua pilihan menggunakan fail kunci kongsi dan kedua-duanya menjadikan trafik jabat tangan lebih sukar dipalsukan, sebab itu ia dianggap dua nama bagi ciri yang sama. Ia bukan begitu. Satu menandatangani paket kawalan, satu lagi menyulitkannya juga, dan kedua-duanya tidak ada kaitan dengan sifer yang melindungi muatan anda.
Perbezaan itu penting apabila profil gagal bersambung, apabila semakan keselamatan bertanya apa yang dilindungi kunci, dan apabila seseorang menganggap fail tambahan itu menjadikan terowong tersulit dalam cara yang tidak jelas.
Apa yang sebenarnya dilindungi kunci kongsi
Kunci yang digunakan oleh pilihan ini tergolong dalam saluran kawalan: pertukaran yang merundingkan parameter, membuktikan identiti dan menerbitkan kunci data. Ia ialah rahsia yang dikongsi terlebih dahulu dan mesti ada pada kedua-dua hujung sebelum jabat tangan boleh diteruskan. Kerana ia terletak sebelum pemeriksaan identiti, kunci yang salah menghentikan perbualan lebih awal daripada kata laluan yang salah. Urutan itulah yang menjelaskan mengapa mod kegagalan begitu senyap.
tls-auth menggunakan rahsia itu untuk mengira HMAC atas paket kawalan. Paket tanpa tandatangan sah dibuang sebelum sampai ke pemprosesan TLS yang lebih mahal, sebab itu pilihan ini sering digambarkan sebagai penapis pertama dan bukan pengganti TLS.
tls-crypt melangkah lebih jauh dengan menyulitkan trafik kawalan yang dilindungi selain mengesahkannya. Kandungan sijil, nama sifer yang dirundingkan dan butiran jabat tangan lain tidak lagi kelihatan di rangkaian, dan pemerhati tanpa kunci tidak dapat melihat versi TLS yang dicuba. Bagi penggunaan yang bimbang cap jari VPNnya terdedah, sifat itulah sebab utama memilihnya. Ia masih rahsia kumpulan, bukan kelayakan bagi setiap pengguna.
Tiada mekanisme yang mengeluarkan identiti. Kunci kongsi ialah rahsia kumpulan, dan sesiapa yang memilikinya boleh memenuhi lapisan pemeriksaan itu.
Di mana kedua-dua pilihan berbeza
Perbezaan yang dapat diperhatikan ialah apa yang dilihat oleh pemerhati. Dengan tls-auth jabat tangan kelihatan tetapi tidak dapat disahkan tanpa kunci. Dengan tls-crypt jabat tangan itu legap kepada sesiapa yang tidak memegang kunci.
Konfigurasi juga berbeza. tls-auth digunakan dengan nilai arah, jadi satu pihak menggunakan separuh bahan kunci dan pihak lain menggunakan separuh yang lain. tls-crypt menggunakan satu kunci dalam kedua-dua arah, jadi arahan arah bukan sebahagian daripada susunannya.
Dalam keluaran moden kedua-dua pilihan saling eksklusif. Profil sepatutnya membawa salah satu, bukan kedua-duanya, dan pelayan serta klien mesti bersetuju yang mana, dengan bahan kunci yang sepadan. Menyimpan arahan lama di sebelah yang baru ialah sisa migrasi yang lazim. Buang yang tidak aktif supaya pembaca seterusnya tahu lapisan mana yang sebenarnya berkuat kuasa.
Varian yang lebih baharu, tls-crypt-v2, mengikat setiap klien kepada kuncinya sendiri yang dibalut supaya pembatalan satu klien tidak memerlukan pengeluaran semula kunci kumpulan. Ia wajar diketahui, tetapi ia pilihan berbeza dan bukan sinonim bagi mana-mana dua di sini.
Mengapa ketidakpadanan kelihatan seolah-olah tiada apa berlaku
Apabila bahan kongsi tidak sepadan, rakan itu membuang paket tanpa memberitahu pengirim mengapa. Tiada ralat pengesahan untuk dibaca, kerana paket itu tidak pernah sampai ke lapisan yang akan menghasilkannya.
Klien mencuba lagi, pelayan tidak berkata apa-apa, dan gejala kelihatan seperti masalah rangkaian. Kemudian orang memulakan semula perkhidmatan, menaip semula kata laluan akaun, atau membuang arahan perlindungan untuk «mengujinya», yang mengubah penggunaan dan bukan mendiagnosisnya.
Baca dalam log pelayan aduan peringkat paket yang pertama dan bukan baris cubaan semula yang terakhir. Sahkan kedua-dua pihak membawa pilihan yang sama dengan bahan kunci yang serupa dan fail kunci tidak dijana semula pada satu pihak sahaja.
Membuang arahan itu bukan pembaikan yang selamat. Ia mematikan lapisan perlindungan bagi setiap klien, dan terowong yang berfungsi selepas itu hanya membuktikan lapisan itulah ketidakpadanannya.
Apa yang masih perlu dikonfigurasikan secara berasingan
Pilihan ini tidak mengesahkan siapa rakan itu. Pengesahan sijil, sauh kepercayaan dan nama pelayan yang dijangka kekal sebagai keperluan berasingan, dan tiada satu pun menjadi pilihan kerana adanya kunci kongsi.
Ia juga tidak memilih sifer data. Itu rundingan berasingan yang dikawal oleh tetapan saluran data pada kedua-dua rakan, dan terowong yang dilindungi oleh tls-crypt masih boleh menggunakan sifer yang anda tidak maksudkan.
Akhir sekali, kunci kongsi itu sendiri memerlukan pengendalian. Perlakukan ia sebagai rahsia, agihkan melalui saluran yang diluluskan dan gantikannya apabila sesiapa yang memilikinya pergi. Kerana ia dikongsi, pendedahannya ialah pendedahan setiap hujung yang menggunakannya.