Napa Sampeyan Ora Gunakake WireGuard

WireGuard wis entuk akeh perhatian akhir-akhir iki, nyatane iki minangka bintang anyar ing antarane VPN. Nanging apa dheweke pancen apikan? Aku pengin ngrembug sawetara pengamatan lan mriksa implementasine WireGuard kanggo nerangake kenapa dudu solusi kanggo ngganti IPsec utawa OpenVPN.

Ing artikel iki, aku pengin mbantah sawetara mitos [mubeng WireGuard]. Ya wis suwe anggone maca, mula yen durung gawe secangkir teh utawa kopi, ya wis wayahe. Aku uga pengin matur nuwun kanggo Peter kanggo mbenerake pikiranku sing semrawut.

Aku ora nyetel dhewe goal kanggo discrediting pangembang saka WireGuard, devaluing efforts utawa gagasan. Produk kasebut bisa digunakake, nanging kanthi pribadi aku rumangsa beda banget karo apa sing sejatine - ditampilake minangka pengganti IPsec lan OpenVPN, sing nyatane ora ana saiki.

Minangka cathetan, aku pengin nambah manawa tanggung jawab kanggo posisi WireGuard kasebut ana ing media sing ngomong babagan iki, lan dudu proyek kasebut dhewe utawa sing nggawe.

Ora ana kabar apik babagan kernel Linux akhir-akhir iki. Dadi, kita dikandhani babagan kerentanan prosesor, sing ditandhani dening piranti lunak, lan Linus Torvalds ngomong babagan iki kanthi kasar lan mboseni, ing basa utilitarian pangembang. Penjadwal utawa tumpukan jaringan tingkat nol uga ora dadi topik sing jelas kanggo majalah sing nggilap. Lan iki teka WireGuard.

Ing kertas, kabeh katon apik: teknologi anyar sing nyenengake.

Nanging ayo dideleng luwih rapet.

Kertas putih WireGuard

Artikel iki adhedhasar dokumentasi WireGuard resmiditulis dening Jason Donenfeld. Ing kana dheweke nerangake konsep, tujuan lan implementasi teknis [WireGuard] ing kernel Linux.

Ukara kapisan yaiku:

WireGuard [...] duwe tujuan kanggo ngganti IPsec ing umume kasus panggunaan lan ruang pangguna populer lan / utawa solusi adhedhasar TLS kayata OpenVPN nalika dadi luwih aman, performa lan luwih gampang digunakake [alat].

Mesthine, kauntungan utama kabeh teknologi anyar yaiku kesederhanaan [dibandhingake karo sadurunge]. Nanging VPN uga kudu efektif lan aman.

Dadi, apa sabanjure?

Yen sampeyan ujar manawa iki dudu sing dibutuhake [saka VPN], mula sampeyan bisa mungkasi maca ing kene. Nanging, aku bakal nyathet yen tugas kasebut disetel kanggo teknologi tunneling liyane.

Sing paling menarik saka kutipan ing ndhuwur dumunung ing tembung "ing umume kasus", sing, mesthi, ora digatekake dening pers. Dadi, kita wis rampung amarga kekacauan sing ditindakake dening kelalaian iki - ing artikel iki.

Napa Sampeyan Ora Gunakake WireGuard

Apa WireGuard bakal ngganti VPN situs-situsku [IPsec]?

Ora. Ora ana kemungkinan manawa vendor gedhe kayata Cisco, Juniper lan liya-liyane bakal tuku WireGuard kanggo produke. Padha ora "mlumpat ing sepur liwat" ing pamindhahan kajaba ana sawetara perlu gedhe kanggo nglakoni. Mengko, aku bakal ngrembug sawetara alasan kenapa dheweke bisa uga ora bisa entuk produk WireGuard sanajan dheweke pengin.

Apa WireGuard bakal njupuk RoadWarrior saka laptop menyang pusat data?

Ora. Saiki, WireGuard ora duwe akeh fitur penting sing ditindakake supaya bisa nindakake kaya iki. Contone, ora bisa nggunakake alamat IP dinamis ing sisih server trowongan, lan iki mung ngilangi kabeh skenario saka nggunakake produk kasebut.

IPFire asring digunakake kanggo link Internet murah, kayata DSL utawa sambungan kabel. Iki cocog kanggo bisnis cilik utawa menengah sing ora butuh serat cepet. [Cathetan saka penerjemah: aja lali manawa ing babagan komunikasi, Rusia lan sawetara negara CIS luwih adoh saka Eropa lan Amerika Serikat, amarga kita wiwit mbangun jaringan kita mengko lan kanthi munculΓ© jaringan Ethernet lan serat optik minangka standar, iku luwih gampang kanggo kita mbangun maneh. Ing negara sing padha ing EU utawa AS, akses broadband xDSL kanthi kecepatan 3-5 Mbps isih dadi norma umum, lan sambungan serat optik mbutuhake dhuwit sing ora nyata miturut standar kita. Mulane, penulis artikel kasebut ngomong babagan DSL utawa sambungan kabel minangka norma, lan dudu jaman kuna.] Nanging, DSL, kabel, LTE (lan cara akses nirkabel liyane) duwe alamat IP dinamis. Mesthi, kadhangkala ora kerep owah, nanging uga owah.

Ana subproyek sing diarani "wg-dinamis", sing nambah daemon ruang panganggo kanggo ngatasi kekurangan iki. Masalah gedhe karo skenario pangguna sing diterangake ing ndhuwur yaiku masalah alamat IPv6 dinamis.

Saka sudut pandang distributor, kabeh iki ora katon apik banget. Salah sawijining tujuan desain yaiku supaya protokol tetep prasaja lan resik.

Sayange, kabeh iki wis dadi prasaja banget lan primitif, saengga kita kudu nggunakake piranti lunak tambahan supaya kabeh rancangan iki bisa digunakake kanthi nyata.

Apa WireGuard gampang digunakake?

durung. Aku ora ngandika sing WireGuard ora bakal dadi alternatif apik kanggo tunneling antarane loro TCTerms, nanging saiki iku mung versi alpha saka produk iku mestine.

Nanging banjur apa kang bener apa? Apa IPsec pancen luwih angel dijaga?

Temenan ora. Vendor IPsec wis mikir babagan iki lan ngirim produke bebarengan karo antarmuka, kayata IPFire.

Kanggo nyiyapake trowongan VPN liwat IPsec, sampeyan butuh limang set data sing kudu sampeyan lebokake ing konfigurasi: alamat IP umum sampeyan dhewe, alamat IP umum saka pihak sing nampa, subnet sing pengin sampeyan umumake liwat. sambungan VPN iki lan tombol sing wis dienggo bareng. Mangkono, VPN disetel ing sawetara menit lan kompatibel karo vendor apa wae.

Sayange, ana sawetara pangecualian kanggo crita iki. Sapa wae sing wis nyoba trowongan liwat IPsec menyang mesin OpenBSD ngerti apa sing dakkandhakake. Ana sawetara conto sing luwih nglarani, nanging nyatane, ana akeh praktik sing luwih apik kanggo nggunakake IPsec.

Babagan kerumitan protokol

Pangguna pungkasan ora kudu kuwatir babagan kerumitan protokol.

Yen kita manggon ing donya ing ngendi iki dadi keprihatinan nyata pangguna, mula kita wis suwe nyingkirake SIP, H.323, FTP lan protokol liyane sing digawe luwih saka sepuluh taun kepungkur sing ora bisa digunakake kanthi apik karo NAT.

Ana sebab kenapa IPsec luwih rumit tinimbang WireGuard: nindakake luwih akeh. Contone, otentikasi pangguna nggunakake login / sandhi utawa kertu SIM nganggo EAP. Wis kemampuan lengkap kanggo nambah anyar kriptografi primitif.

Lan WireGuard ora duwe.

Lan iki tegese WireGuard bakal rusak ing sawetara titik, amarga salah sawijining primitif kriptografi bakal nyuda utawa bakal dikompromi. Penulis dokumentasi teknis ujar iki:

Wigati dimangerteni manawa WireGuard duwe pendapat kriptografis. Sengaja ora duwe keluwesan cipher lan protokol. Yen bolongan serius ditemokake ing primitif dhasar, kabeh titik pungkasan kudu dianyari. Kaya sing sampeyan deleng saka aliran kerentanan SLL / TLS, keluwesan enkripsi saiki saya tambah akeh.

Ukara pungkasan pancen bener.

Tekan konsensus babagan enkripsi sing digunakake nggawe protokol kaya IKE lan TLS liyane kompleks. Rumit banget? Ya, kerentanan cukup umum ing TLS/SSL, lan ora ana alternatif.

Ing nglirwakake masalah nyata

Bayangake sampeyan duwe server VPN kanthi 200 klien tempur ing endi wae ing saindenging jagad. Iki minangka kasus panggunaan sing cukup standar. Yen sampeyan kudu ngganti enkripsi, sampeyan kudu ngirim nganyari menyang kabeh salinan WireGuard ing laptop, smartphone, lan liya-liyane. Sekaligus ngirim. Iku secara harfiah mokal. Administrator sing nyoba nindakake iki butuh pirang-pirang wulan kanggo nyebarake konfigurasi sing dibutuhake, lan bakal mbutuhake pirang-pirang taun perusahaan ukuran medium kanggo nindakake acara kasebut.

IPsec lan OpenVPN nawakake fitur negosiasi cipher. Mulane, kanggo sawetara wektu sawise sampeyan nguripake enkripsi anyar, sing lawas uga bakal bisa. Iki bakal ngidini pelanggan saiki bisa nganyarke menyang versi anyar. Sawise nganyari diluncurake, sampeyan mung mateni enkripsi sing rawan. Lan iku! siyap! koe ayu! Klien ora bakal sok dong mirsani.

Iki minangka kasus sing umum banget kanggo panyebaran gedhe, lan malah OpenVPN duwe sawetara kesulitan. Kompatibilitas mundur penting, lan sanajan sampeyan nggunakake enkripsi sing luwih lemah, kanggo akeh, iki dudu alasan kanggo nutup bisnis. Amarga bakal lumpuh karya atusan pelanggan amarga ora bisa nindakake tugase.

Tim WireGuard wis nggawe protokol sing luwih gampang, nanging ora bisa digunakake kanggo wong sing ora duwe kontrol terus-terusan ing loro-lorone ing trowongan. Ing pengalamanku, iki minangka skenario sing paling umum.

Napa Sampeyan Ora Gunakake WireGuard

Kriptografi!

Nanging apa enkripsi anyar sing menarik iki sing digunakake WireGuard?

WireGuard nggunakake Curve25519 kanggo ijol-ijolan kunci, ChaCha20 kanggo enkripsi lan Poly1305 kanggo otentikasi data. Uga dianggo karo SipHash kanggo tombol hash lan BLAKE2 kanggo hashing.

ChaCha20-Poly1305 wis standar kanggo IPsec lan OpenVPN (liwat TLS).

Cetha yen pangembangan Daniel Bernstein asring digunakake. BLAKE2 minangka penerus BLAKE, finalis SHA-3 sing ora menang amarga mirip karo SHA-2. Yen SHA-2 rusak, ana kemungkinan BLAKE uga bakal dikompromi.

IPsec lan OpenVPN ora mbutuhake SipHash amarga desaine. Dadi siji-sijine sing saiki ora bisa digunakake yaiku BLAKE2, lan mung nganti standar. Iki dudu kekurangan gedhe, amarga VPN nggunakake HMAC kanggo nggawe integritas, sing dianggep minangka solusi sing kuwat sanajan bebarengan karo MD5.

Dadi aku nyimpulake manawa piranti kriptografi meh padha digunakake ing kabeh VPN. Mulane, WireGuard ora luwih utawa kurang aman tinimbang produk saiki liyane nalika nerangake enkripsi utawa integritas data sing dikirim.

Nanging malah iki dudu sing paling penting, sing kudu digatekake miturut dokumentasi resmi proyek kasebut. Sawise kabeh, sing utama yaiku kacepetan.

Apa WireGuard luwih cepet tinimbang solusi VPN liyane?

Singkat: ora, ora luwih cepet.

ChaCha20 minangka stream cipher sing luwih gampang diimplementasikake ing piranti lunak. Iku encrypts siji dicokot ing wektu. Blok protokol kaya AES ndhelik blok 128 bit sekaligus. Transistor luwih akeh dibutuhake kanggo ngleksanakake dhukungan hardware, mula prosesor sing luwih gedhe teka karo AES-NI, extension set instruksi sing nindakake sawetara tugas proses enkripsi kanggo nyepetake.

Dikarepake yen AES-NI ora bakal mlebu ing smartphone [nanging bisa - kira-kira. saben.]. Kanggo iki, ChaCha20 dikembangake minangka alternatif sing entheng lan ngirit baterei. Mula, bisa uga ana kabar yen saben smartphone sing bisa sampeyan tuku saiki duwe sawetara jinis akselerasi AES lan luwih cepet lan konsumsi daya sing luwih murah kanthi enkripsi iki tinimbang karo ChaCha20.

Temenan, meh saben prosesor desktop / server sing dituku sajrone sawetara taun kepungkur duwe AES-NI.

Mula, aku ngarepake AES bisa ngalahake ChaCha20 ing saben skenario. Dokumentasi resmi WireGuard nyatakake yen karo AVX512, ChaCha20-Poly1305 bakal ngluwihi AES-NI, nanging extension set instruksi iki mung kasedhiya ing CPU sing luwih gedhe, sing maneh ora bakal mbantu karo hardware sing luwih cilik lan luwih seluler, sing bakal luwih cepet karo AES. - N.I.

Aku ora yakin apa iki bisa wis foreseen sak pembangunan WireGuard, nanging dina iki kasunyatan sing wis mancep kanggo enkripsi piyambak wis drawback sing bisa uga ora mengaruhi operasi banget.

IPsec ngidini sampeyan milih enkripsi sing paling apik kanggo kasus sampeyan. Lan mesthi, iki perlu yen, contone, sampeyan pengin nransfer 10 utawa luwih gigabyte data liwat sambungan VPN.

Masalah integrasi ing Linux

Sanajan WireGuard wis milih protokol enkripsi modern, iki wis nyebabake akeh masalah. Dadi, tinimbang nggunakake apa sing didhukung kernel metu saka kothak, integrasi WireGuard wis ditundha pirang-pirang taun amarga kekurangan primitif kasebut ing Linux.

Aku ora yakin apa kahanan ing sistem operasi liyane, nanging mbokmenawa ora akeh beda saka Linux.

Apa kasunyatan katon kaya?

Sayange, saben klien njaluk aku nyiyapake sambungan VPN kanggo wong-wong mau, aku nemoni masalah yen dheweke nggunakake kredensial lan enkripsi sing wis lawas. 3DES magepokan karo MD5 isih praktek umum, minangka AES-256 lan SHA1. Lan sanajan sing terakhir rada apik, iki dudu barang sing kudu digunakake ing taun 2020.

Kanggo ijol-ijolan kunci tansah RSA digunakake - alat sing alon nanging cukup aman.

Klienku digandhengake karo panguwasa bea cukai lan organisasi lan institusi pemerintah liyane, uga karo perusahaan gedhe sing jenenge dikenal ing saindenging jagad. Kabeh mau nggunakake formulir panyuwunan sing digawe pirang-pirang dekade kepungkur, lan kemampuan kanggo nggunakake SHA-512 ora tau ditambahake. Aku ora bisa ngomong sing piye wae cetha mengaruhi kemajuan teknologi, nanging temenan iku slows mudhun proses perusahaan.

Aku lara kanggo ndeleng iki, amarga IPsec wis ndhukung kurva elliptic offhand wiwit taun 2005. Curve25519 uga anyar lan kasedhiya kanggo nggunakake. Ana uga alternatif kanggo AES kaya Camellia lan ChaCha20, nanging temenan ora kabeh didhukung dening vendor utama kaya Cisco lan liya-liyane.

Lan wong njupuk kauntungan saka iku. Ana akeh Cisco kit, ana akeh kit dirancang kanggo karya karo Cisco. Dheweke dadi pimpinan pasar ing bagean iki lan ora kasengsem karo inovasi apa wae.

Ya, kahanan [ing segmen perusahaan] elek, nanging kita ora bakal weruh owah-owahan amarga WireGuard. Vendor mbokmenawa ora bakal weruh masalah kinerja karo perkakas lan enkripsi sing wis digunakake, ora bakal weruh masalah karo IKEv2, lan supaya padha ora looking for alternatif.

UmumΓ©, sampeyan wis tau mikir babagan ninggalake Cisco?

pathokan

Lan saiki ayo pindhah menyang pathokan saka dokumentasi WireGuard. Sanajan [dokumentasi] iki dudu artikel ilmiah, aku isih ngarepake para pangembang njupuk pendekatan sing luwih ilmiah, utawa nggunakake pendekatan ilmiah minangka referensi. Sembarang pathokan ora ana gunane yen ora bisa direproduksi, lan luwih ora ana gunane yen dipikolehi ing laboratorium.

Ing Linux mbangun WireGuard, njupuk kauntungan saka nggunakake GSO - Generic Segmentation Offloading. Thanks kanggo dheweke, klien nggawe paket ageng 64 kilobyte lan ndhelik / dekripsi sekaligus. Mangkono, biaya invoking lan ngleksanakake operasi kriptografi suda. Yen sampeyan pengin nggedhekake throughput sambungan VPN, iki apike.

Nanging, kaya biasane, kasunyatane ora gampang banget. Ngirim paket gedhe kasebut menyang adaptor jaringan kudu dipotong dadi akeh paket sing luwih cilik. Ukuran kirim normal yaiku 1500 bita. Tegese, raksasa kita 64 kilobyte bakal dipΓ©rang dadi 45 paket (1240 byte informasi lan 20 byte header IP). Banjur, kanggo sawetara wektu, dheweke bakal mblokir karya adaptor jaringan, amarga kudu dikirim bebarengan lan bebarengan. AkibatΓ©, iki bakal nyebabake lompatan prioritas, lan paket kayata VoIP, contone, bakal antri.

Mangkono, throughput dhuwur sing diklaim WireGuard kanthi kendel digayuh kanthi biaya nyuda jaringan aplikasi liyane. Lan tim WireGuard wis dikonfirmasi iki kesimpulanku.

Nanging ayo nerusake.

Miturut benchmark ing dokumentasi teknis, sambungan kasebut nuduhake throughput 1011 Mbps.

Nyengsemaken.

Iki utamanΓ© nyengsemaken amarga kasunyatan sing throughput teoretis maksimum sambungan Gigabit Ethernet siji 966 Mbps karo ukuran paket 1500 byte minus 20 byte kanggo header IP, 8 byte kanggo header UDP lan 16 byte kanggo header saka WireGuard dhewe. Ana siji header IP liyane ing paket encapsulated lan siji liyane ing TCP kanggo 20 bita. Dadi saka ngendi bandwidth ekstra iki teka?

Kanthi pigura ageng lan keuntungan saka GSO kita ngomong ing ndhuwur, maksimum teori kanggo ukuran pigura 9000 bait bakal 1014 Mbps. Biasane throughput kuwi ora bisa digayuh ing kasunyatan, amarga digandhengake karo kesulitan gedhe. Mangkono, aku mung bisa nganggep yen tes kasebut ditindakake kanthi nggunakake pigura sing luwih gedhe tinimbang 64 kilobyte kanthi maksimal teoritis 1023 Mbps, sing mung didhukung dening sawetara adaptor jaringan. Nanging iki pancen ora bisa ditrapake ing kahanan nyata, utawa mung bisa digunakake ing antarane rong stasiun sing disambungake langsung, khusus ing bangku tes.

Nanging amarga trowongan VPN diterusake ing antarane rong host nggunakake sambungan Internet sing ora ndhukung pigura jumbo, asil sing digayuh ing bangku ora bisa dijupuk minangka pathokan. Iki mung minangka prestasi laboratorium sing ora realistis sing ora mungkin lan ora bisa ditrapake ing kahanan pertempuran nyata.

Malah lungguh ing pusat data, aku ora bisa nransfer pigura luwih saka 9000 bita.

Kriteria aplikasi ing urip nyata pancen dilanggar lan, kaya sing dakkira, penulis "ukuran" ditindakake kanthi serius ngrusak awake dhewe kanthi alasan sing jelas.

Napa Sampeyan Ora Gunakake WireGuard

glimmer pungkasan pangarep-arep

Situs web WireGuard akeh ngomong babagan kontaner lan dadi jelas apa sing dimaksudake.

VPN sing prasaja lan cepet sing ora mbutuhake konfigurasi lan bisa disebarake lan dikonfigurasi nganggo alat orkestrasi gedhe kaya Amazon ing awan. Khusus, Amazon nggunakake fitur hardware paling anyar sing dakkandhakake sadurunge, kayata AVX512. Iki ditindakake supaya bisa nyepetake karya lan ora kaiket karo x86 utawa arsitektur liyane.

Dheweke ngoptimalake throughput lan paket sing luwih gedhe tinimbang 9000 bita - iki bakal dadi bingkai enkapsulasi sing gedhe kanggo wadhah sing bisa komunikasi, utawa kanggo operasi serep, nggawe gambar utawa nyebarake wadhah sing padha. Malah alamat IP dinamis ora bakal mengaruhi operasi WireGuard kanthi cara apa wae ing kasus skenario sing dakgambarake.

Maine apik. implementasine sarwa lan banget tipis, meh referensi protokol.

Nanging mung ora pas ing donya njaba pusat data sing rampung kontrol. Yen sampeyan njupuk resiko lan miwiti nggunakake WireGuard, sampeyan kudu nggawe kompromi pancet ing desain lan implementasine saka protokol enkripsi.

kesimpulan

Gampang kanggo aku nyimpulake yen WireGuard durung siyap.

Iki disusun minangka solusi sing entheng lan cepet kanggo sawetara masalah karo solusi sing wis ana. Sayange, kanggo solusi kasebut, dheweke ngorbanake akeh fitur sing cocog kanggo umume pangguna. Mulane ora bisa ngganti IPsec utawa OpenVPN.

Supaya WireGuard dadi kompetitif, sampeyan kudu nambah paling sethithik setelan alamat IP lan konfigurasi rute lan DNS. Temenan, iki kanggo saluran sing dienkripsi.

Keamanan minangka prioritas utama, lan saiki aku ora duwe alasan kanggo percaya yen IKE utawa TLS bisa dikompromi utawa rusak. Enkripsi modern didhukung ing loro-lorone, lan wis dibuktekake kanthi pirang-pirang dekade operasi. Mung amarga ana sing luwih anyar ora ateges luwih apik.

Interoperabilitas penting banget nalika sampeyan komunikasi karo pihak katelu sing stasiun sampeyan ora kontrol. IPsec minangka standar de facto lan didhukung meh ing endi wae. Lan dheweke kerja. Lan ora ketompo carane katon, miturut teori, WireGuard ing mangsa ngarep bisa uga ora kompatibel sanajan karo versi sing beda-beda.

Sembarang proteksi cryptographic rusak cepet utawa mengko lan, kudu diganti utawa dianyari.

Nolak kabeh kanyatan kasebut lan kanthi wuta pengin nggunakake WireGuard kanggo nyambungake iPhone menyang workstation omah sampeyan mung minangka kelas master kanggo nempelake sirah ing pasir.

Source: www.habr.com

Add a comment