Orang menerangkan VPN sebagai „yang menggunakan penyulitan kunci awam“ dan kemudian membayangkan setiap paket dikunci oleh sijil pelayan. Gambaran itu salah dalam cara yang penting apabila anda membaca fail konfigurasi atau tangkapan paket. Separuh kunci awam VPN ialah tentang membuktikan siapa rakannya dan bersetuju tentang bahan rahsia; separuh simetri ialah bahagian yang benar-benar melindungi trafik, paket demi paket, sepanjang hayat sesi.

Kedua-dua separuh mempunyai jangka hayat, mod kegagalan dan perkara yang selamat diterbitkan yang berbeza. Setelah anda memisahkannya, soalan seperti „adakah RSA 2048 lebih lemah daripada AES-128“ berhenti mengelirukan, kerana kedua-duanya tidak pernah setanding.

Tiga operasi yang dicampur aduk

Kriptografi kunci awam ialah payung kepada sekurang-kurangnya tiga operasi berbeza. Tandatangan membuktikan bahawa pemegang kunci persendirian telah meluluskan mesej tertentu. Persetujuan kunci membolehkan dua rakan sebaya memperoleh rahsia bersama daripada nilai yang mereka tukar secara terbuka. Penyulitan kunci awam menyembunyikan data di bawah kunci awam seseorang supaya hanya kunci persendirian boleh membukanya.

Jabat tangan VPN kebanyakannya menggunakan dua yang pertama. Sijil bukan kunci penyulitan; ia ialah pernyataan bertandatangan yang mengikat nama kepada kunci awam dan membolehkan pihak lain memutuskan sama ada mempercayai kunci yang baru diterimanya. Sebagai contoh, penubuhan kunci TLS 1.3 berdasarkan persetujuan kunci (EC)DHE serta tandatangan sijil, bukan penyulitan sesi dengan kunci awam pelayan.

Apa yang sebenarnya dihasilkan oleh jabat tangan

Dalam jabat tangan moden, setiap pihak menjana pasangan kunci efemeral, menukar separuh awam dan mengira rahsia bersama yang tidak pernah melintasi wayar. Rahsia itu kemudian melalui fungsi terbitan kunci untuk menghasilkan kunci berasingan bagi setiap arah, serta nonce dan bahan IV yang diperlukan lapisan rekod. WireGuard melakukannya dengan binaan berasaskan Noise; TLS 1.3 melakukannya dengan HKDF atas transkrip jabat tangan.

Kelayakan jangka panjang — sijil dan kunci persendirian, atau kunci WireGuard statik — mengesahkan pertukaran itu. Ia menandatangani atau bercampur ke dalam transkrip supaya orang luar tidak dapat menyelesaikan jabat tangan menggantikan rakannya. Selepas itu kelayakan tidak melakukan kerja setiap paket. Jika ia berbuat demikian, setiap paket memerlukan operasi kunci persendirian, dan terowong yang sibuk akan terhad oleh operasi paling perlahan dalam timbunan.

Dua kesan sampingan menyusul. Pertama, kunci sesi sentiasa baharu, jadi penyerang yang kemudian mencuri kunci jangka panjang tidak boleh menyahsulit sesi yang dirakam sebelum ini, dengan syarat persetujuan itu efemeral. Kedua, kunci sesi yang bocor menjejaskan satu sesi, bukan identiti.

Mengapa data besar menggunakan kunci simetri

Sifer simetri mengendalikan jumlah dengan baik: AES-GCM atau ChaCha20-Poly1305 memproses setiap paket dengan kunci yang sudah ada dalam memori, mengesahkan pengepala dan menaikkan pembilang. Pihak penerima memeriksa nonce dan tag pengesahan serta membuang apa-apa yang gagal atau berulang. Ia cukup murah untuk berjalan pada kelajuan talian pada perkakasan biasa, dan binaan yang sama memberikan kerahsiaan dan integriti dalam satu laluan.

Binaan itu juga tempat kebanyakan pepijat pelaksanaan tinggal. Nonce berulang dalam GCM memecahkan kerahsiaan dan ketulenan sekali gus, jadi protokol menerbitkan kunci bagi setiap arah dan mengekalkan pembilang atau epok yang jelas. Jika anda membaca tangkapan paket dan panjang teks sifer sepadan dengan teks biasa ditambah lebihan tetap, lapisan simetri yang berfungsi, bukan operasi kunci awam setiap paket.

Jangka hayat, pembaharuan kunci dan kerahsiaan ke hadapan

Kunci sesi dimaksudkan untuk tamat. TLS 1.3 membenarkan mesej KeyUpdate menggulung kunci trafik; WireGuard memperbaharui sesi selepas masa atau bilangan mesej yang dikonfigurasikan dan menyimpan yang lama sebentar untuk paket dalam perjalanan. OpenVPN berunding semula kunci saluran datanya mengikut jadual, dengan reneg-sec mengawal selang.

Tiada satu pun daripada putaran itu sama dengan memperbaharui sijil. Sijil boleh sah setahun sementara kunci sesi berubah setiap beberapa minit, dan sijil boleh diganti tanpa menyentuh kunci terowong yang berjalan. Apabila merancang tamat tempoh, tanya objek mana yang anda putarkan; jawapannya menentukan sama ada klien menyambung semula atau hanya memperbaharui kunci.

Membaca konfigurasi dan diagnostik tanpa mencampur objek

Dalam amalan anda memilih protokol lengkap dan primitif yang disokongnya, bukan memasang sendiri. Kunci --tls-crypt OpenVPN melindungi saluran kawalan; saluran data menggunakan sifer simetri yang dirundingkan. Entri PrivateKey dan PublicKey WireGuard ialah bahan identiti, manakala kunci pengangkutannya diterbitkan secara dalaman. Membaca medan itu sebagai jenis rahsia yang sama membawa kepada kesilapan seperti menampal kunci awam di tempat kunci persendirian sepatutnya berada.

Asingkan bahan awam daripada bahan persendirian. Sijil, kunci awam WireGuard dan cap jari selamat dikongsi dalam tiket. Kunci persendirian, kunci pra-kongsi dan kunci sesi yang dieksport tidak. Apabila membandingkan kekuatan, bandingkan dalam satu jenis: pengecam lengkung eliptik, saiz modulus RSA dan saiz kunci AES mengukur perkara berbeza di bawah andaian berbeza. Spesifikasi TLS 1.3 ialah rujukan berguna tentang bagaimana dua lapisan itu serasi, walaupun terowong anda bukan TLS.

Artikel berkaitan