Bakit hindi inilalarawan ng AES-256 ang isang VPN encryption suite
Ang isang suite ay tumutupad ng apat na tungkulin: bulk encryption, integridad, pagtatatag ng susi at pagpapatunay ng kapareha. Ang pangalan ng cipher ay sumasaklaw lamang sa isa, sa isang layer.
Itanong kung anong encryption ang ginagamit ng VPN at ang sagot ay kadalasang dumarating sa isang salita: AES-256, o ChaCha20, o baka WireGuard. Pinapangalanan ng sagot na iyon ang isang bahagi ng isang layer, samantalang ang tunay na nagpoprotekta sa koneksyon ay isang set ng mga algorithm na tumutupad ng apat na magkakaibang tungkulin. Ang paghahalo ng bahagi at ng kaayusan ang pinakakaraniwang pagkakamali sa mga usapang ito, at nagbubunga ito ng mga paghahambing na hindi malulutas.
Apat na gawain sa loob ng isang koneksyon
Ang bulk encryption ay nagpapalit ng malinaw na teksto tungo sa naka-encrypt na teksto para sa channel ng datos, at ang susi nito ay hinango sa halip na ipinadala. Ang proteksyon ng integridad ay nakakaalam ng pagbabago, na isang hiwalay na gawain kahit isang konstruksyon lang ang gumagawa ng dalawa. Ang pagtatatag ng susi ay gumagawa ng pinagsasaluhang materyal ng trapiko, at ang pagpapatunay ng kapareha ay nagpapasya kung sino ang nasa kabilang dulo. Kung may kulang sa mga ito, hindi secure ang koneksyon, gaano man kalakas ang natitirang bahagi.
Pinagsasama ng ilang disenyo ang dalawang tungkulin sa isa. Ang AES-GCM at ChaCha20-Poly1305 ay mga authenticated encryption construction, kaya ang pagiging lihim at integridad ay dumarating nang sabay; ang AES-CBC ay hindi ganoon, at kailangan nito ng hiwalay na message authentication code na may sariling susi. Kaya ang pagbasa ng panukala bilang isang sako ng mga malayang numero ay mali ang pagbasa sa mga dinisenyo bilang pares.
Ang mga tungkulin ay nasa magkakaibang layer din, kaya ang parehong salita ay maaaring mangahulugan ng iba sa dalawang produkto. Ang block cipher sa loob ng ESP at ang block cipher sa loob ng TLS ay ang parehong primitive sa magkakaibang negosasyon na may magkakaibang pangangailangan. Kaya ang pagsipi ng primitive na wala ang mode at layer nito ay maaaring mas masama pa kaysa sa hindi magsipi ng anuman.
Bakit halos walang sinasabi ang pangalan ng cipher
Seryosohin ang pariralang AES-256 sandali: tinutukoy nito ang isang block cipher at isang laki ng susi. Wala itong sinasabi tungkol sa mode ng operasyon, kung may integridad, kung paano itinatag ang mga susi o kung paano pinatunayan ang kapareha. Ang dalawang produkto ay maaaring parehong mag-advertise ng AES-256 at magkaiba sa lahat ng iba pa, kasama ang isa na ipinares ito sa isang mode na hindi authenticated at isa pa na gumagamit ng AEAD mode na may modernong pagpapalitan ng susi.
Dinala ng TLS 1.3 ang paghihiwalay na ito sa pamantayan, na isang kapaki-pakinabang na pagwawasto para sa sinumang natuto ng lumang bokabularyo. Ang mga cipher suite nito ay pinangalanan lamang ang AEAD at ang hash, samantalang ang mga grupo ng pagpapalitan ng susi at mga algorithm ng lagda ay kinakausap bilang hiwalay na parameter. Kaya ang pangalan ng TLS 1.3 suite ay hindi maihahambing sa pangalan ng TLS 1.2 suite sa pantay na batayan, kahit pareho silang lumilitaw sa parehong field ng isang configuration file. Ang auditor na direktang naghahambing ng dalawang string ay humahantong sa konklusyong hindi sinusuportahan ng protocol. Basahin din ang pinagkasunduang grupo at ang mga parameter ng lagda, kung hindi ay hindi kumpleto ang paghahambing.
Pinipili ng WireGuard ang kabaligtaran at halos ganap na tinatanggal ang negosasyon: itinatakda ng protocol ang isang fixed na set ng algorithm, kaya ang dalawang implementasyon ay nagtutulungan o hindi. Ito ay isang lehitimong desisyong disenyo, at nangangahulugan din ito na ang tanong kung anong suite ang kinakausap ng WireGuard ay walang sagot na karapat-dapat ihambing. Kung sinusuri mo ito, basahin ang specifikasyon nang isang beses at pagkatapos ay siyasatin ang pamamahala ng susi sa paligid nito sa halip na ang negosasyon.
Ang layer ang nagtatakda ng bokabularyo
Ang isang deployment ng IPsec ay nakikipagnegosasyon nang dalawang beses: isang IKE proposal para sa control channel at isang ESP transformation para sa datos, at ang dalawa ay maaaring lehitimong magkaiba. Ang pagbasa sa una at pag-aakalang inilalarawan nito ang pangalawa ay karaniwang pinagmumulan ng kalituhan sa panahon ng audit, dahil binabanggit ng configuration file ang dalawa at ang kawili-wili ay ang pangalawa.
| 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 |
Ang isang pangalan na available sa isang library ay hindi awtomatikong ipinatutupad para sa ibang landas ng datos. Kaya ang pahayag na sinusuportahan ng aming produkto ang AES-256 ay mas mahina kaysa sa tunog nito, at kaya ang problema sa interoperability ay kadalasang nalulutas sa pamamagitan ng paghahanap ng pinapanatili na intersection sa halip na paganahin ang bawat lumang algorithm sa magkabilang panig.
Ang specifikasyon ng TLS 1.3 ang pinakamalinaw na nailathalang halimbawa ng paghihiwalay, dahil tinukoy nito ang suite bilang isang pares at inililipat ang natitira sa sarili nitong negosasyon. Kapag pamilyar na ang hugis na iyon, ang IPsec proposal at ang nag-iisang fixed na set ng WireGuard ay binabasa bilang mga variant ng parehong ideya.
Basahin ang pinagkasunduang resulta, pagkatapos ay tumigil
Ang naka-configure na proposal ay hindi patunay ng pinili ng dalawang panig. Ang buhay na session ang may dala ng sagot, at anumang karaniwang implementasyon ay maaaring mag-ulat nito nang hindi humuhuli ng packet.
openssl s_client -connect vpn.example.net:443 -brief
ipsec statusall
wg show
Sa output, basahin ang mga napiling algorithm sa halip na ang iniaalok na listahan. Kung ang sagot ay mas mahina kaysa sa inaasahan ng patakaran, ang pagwawasto ay nasa configuration ng proposal sa isang panig, at ang pagkakaiba sa mga modernong implementasyon ay kadalasang lumilitaw bilang nabigong negosasyon at hindi bilang tahimik na pagbaba.
Pagkatapos ay tandaan kung ano ang hindi saklaw ng suite. Mga ruta, pahintulot ng app, pag-log at pagpapanatili ay hiwalay na desisyon na may sariling pagsusuri, at ang isang compatible na cryptographic arrangement ay walang sinasabi tungkol sa mga ito. Ang talakayan tungkol sa cipher ay sulit, ngunit sinasagot nito ang isang mas makitid na tanong kaysa sa aktwal na itinatanong ng karamihan.
Panatilihing tumpak ang bokabularyo at lumiliit ang argumento. Ang suite ay isang set ng tungkulin sa isang layer, ang cipher ay isang bahagi, at ang pinagkasunduang resulta ang tanging bagay na naglalarawan sa koneksyong mayroon ka talaga. Ang lahat ng iba pa sa paghahambing ay dekorasyon.