Mengapa AES-256 Tidak Menghuraikan Sut Penyulitan VPN
Sut memenuhi empat peranan: penyulitan pukal, integriti, penubuhan kunci dan pengesahan rakan. Nama sifer hanya meliputi satu daripadanya, pada satu lapisan.
Tanya penyulitan apa yang digunakan oleh VPN dan jawapannya biasanya datang sebagai satu perkataan: AES-256, atau ChaCha20, atau mungkin WireGuard. Jawapan itu menamakan satu komponen satu lapisan, sedangkan yang benar-benar melindungi sambungan ialah satu set algoritma yang memenuhi empat peranan berbeza. Mengelirukan komponen dengan susunannya ialah kesilapan paling biasa dalam perbualan ini, dan ia menghasilkan perbandingan yang tidak dapat diselesaikan.
Empat kerja dalam satu sambungan
Penyulitan pukal menukar teks biasa kepada teks sifer untuk saluran data, dan kuncinya diterbitkan bukan dihantar. Perlindungan integriti mengesan perubahan, yang merupakan kerja berasingan walaupun satu binaan melakukan kedua-duanya. Penubuhan kunci menghasilkan bahan trafik bersama, dan pengesahan rakan memutuskan siapa di hujung sana. Jika salah satu tiada, sambungan tidak selamat, sekuat mana pun bahagian yang tinggal.
Sesetengah reka bentuk menggabungkan dua peranan menjadi satu. AES-GCM dan ChaCha20-Poly1305 ialah binaan penyulitan yang disahkan, jadi kerahsiaan dan integriti datang bersama; AES-CBC tidak, dan memerlukan kod pengesahan mesej berasingan dengan kuncinya sendiri. Oleh itu membaca cadangan sebagai beg nombor bebas salah membaca yang direka sebagai pasangan.
Peranan itu juga terletak pada lapisan berbeza, kerana itu perkataan yang sama boleh bermakna lain dalam dua produk. Sifer blok dalam ESP dan sifer blok dalam TLS ialah primitif yang sama dalam rundingan berbeza dengan keperluan berbeza. Oleh itu memetik primitif tanpa mod dan lapisannya boleh lebih buruk daripada tidak memetik apa-apa.
Mengapa nama sifer hampir tidak mengatakan apa-apa
Ambil frasa AES-256 dengan serius seketika: ia menandakan sifer blok dan saiz kunci. Ia tidak mengatakan apa-apa tentang mod operasi, sama ada integriti disediakan, bagaimana kunci ditubuhkan atau bagaimana rakan disahkan. Dua produk boleh kedua-duanya mengiklankan AES-256 dan berbeza dalam segala hal lain, termasuk satu yang memasangkannya dengan mod tidak disahkan dan satu lagi yang menggunakan mod AEAD dengan pertukaran kunci moden.
TLS 1.3 membawa pemisahan ini ke dalam piawaian, yang merupakan pembetulan berguna bagi sesiapa yang mempelajari kosa kata lama. Sut sifernya hanya menamakan AEAD dan hash, manakala kumpulan pertukaran kunci dan algoritma tandatangan dirundingkan sebagai parameter berasingan. Oleh itu nama sut TLS 1.3 tidak setanding dengan nama sut TLS 1.2 pada asas yang sama, walaupun kedua-duanya muncul dalam medan yang sama dalam fail konfigurasi. Juruaudit yang membandingkan dua rentetan itu secara langsung membuat kesimpulan yang tidak disokong oleh protokol. Baca juga kumpulan yang dirundingkan dan parameter tandatangan, jika tidak perbandingan itu tidak lengkap.
WireGuard memilih jalan bertentangan dan membuang rundingan hampir sepenuhnya: protokol menetapkan set algoritma tetap, jadi dua pelaksanaan sama ada bekerjasama atau tidak. Itu pilihan reka bentuk yang sah, dan ia juga bermakna soalan sut apa yang dirundingkan oleh WireGuard tidak mempunyai jawapan yang wajar dibandingkan. Jika anda mengauditnya, baca spesifikasi sekali dan kemudian audit pengendalian kunci di sekelilingnya dan bukan rundingannya.
Lapisan menentukan kosa kata
Penggunaan IPsec berunding dua kali: cadangan IKE untuk saluran kawalan dan transformasi ESP untuk data, dan kedua-duanya boleh berbeza secara sah. Membaca yang pertama dan menganggap ia menghuraikan yang kedua ialah sumber kekeliruan biasa semasa audit, kerana fail konfigurasi menyebut kedua-duanya dan yang menarik ialah yang kedua.
| Layer | What is negotiated there | What it does not cover |
|---|---|---|
| IKE proposal | Algorithms and groups for the control channel that builds the tunnel | The algorithms protecting the data itself |
| ESP transform | Encryption and integrity for tunneled packets | Peer identity, which authentication already settled |
| TLS handshake | AEAD and hash, plus separately negotiated groups and signatures | Routing, authorization or retention policy |
| WireGuard | Nothing; the algorithm set is fixed by the protocol | Everything above the cryptographic arrangement |
Nama yang tersedia dalam satu pustaka tidak dilaksanakan secara automatik untuk laluan data lain. Oleh itu dakwaan bahawa produk kami menyokong AES-256 lebih lemah daripada bunyinya, dan kerana itu masalah kesalingoperasian biasanya diselesaikan dengan mencari persilangan yang dikekalkan dan bukannya mengaktifkan setiap algoritma lama pada kedua-dua pihak.
Spesifikasi TLS 1.3 ialah contoh terbit yang paling jelas bagi pemisahan itu, kerana ia mentakrifkan sut sebagai pasangan dan memindahkan selebihnya ke rundingannya sendiri. Setelah bentuk itu biasa, cadangan IPsec dan satu set tetap WireGuard dibaca sebagai variasi idea yang sama.
Baca hasil rundingan, kemudian berhenti
Cadangan yang dikonfigurasi bukan bukti apa yang dipilih oleh dua rakan. Sesi hidup membawa jawapannya, dan setiap pelaksanaan arus perdana boleh melaporkannya tanpa menangkap paket.
openssl s_client -connect vpn.example.net:443 -brief
ipsec statusall
wg show
Dalam output baca algoritma yang dipilih dan bukan senarai yang ditawarkan. Jika jawapannya lebih lemah daripada yang dimaksudkan dasar, pembetulan terletak pada konfigurasi cadangan di salah satu pihak, dan ketidakseragaman dalam pelaksanaan moden biasanya muncul sebagai rundingan gagal dan bukan penurunan senyap.
Kemudian ingat apa yang tidak diliputi sut. Laluan, kebenaran aplikasi, pengelogan dan penyimpanan ialah keputusan berasingan dengan semakannya sendiri, dan susunan kriptografi yang serasi tidak mengatakan apa-apa tentangnya. Perbincangan tentang sifer wajar dilakukan, tetapi ia menjawab soalan yang lebih sempit daripada yang sebenarnya ditanya oleh kebanyakan orang.
Kekalkan kosa kata yang tepat dan hujahnya menjadi lebih pendek. Sut ialah satu set peranan pada satu lapisan, sifer ialah satu komponen, dan hasil rundingan ialah satu-satunya yang menghuraikan sambungan yang benar-benar anda miliki. Segala-galanya dalam perbandingan hanyalah hiasan.