VPN WireGuard telah diterima masuk ke cawangan net-next dan dijadualkan untuk dimasukkan ke dalam kernel Linux 5.6

David Miller (David S. Miller), bertanggungjawab untuk subsistem rangkaian kernel Linux, diterima ke cawangan bersih-sebelah tompok dengan pelaksanaan antara muka VPN daripada projek itu WireGuard. Awal tahun depan, perubahan yang terkumpul dalam cawangan bersih-seterusnya akan menjadi asas untuk keluaran kernel Linux 5.6.

Percubaan untuk menolak kod WireGuard ke dalam kernel utama telah dibuat sejak beberapa tahun lalu, tetapi tetap tidak berjaya kerana terikat dengan pelaksanaan proprietari fungsi kriptografi yang digunakan untuk meningkatkan prestasi. Pada mulanya, fungsi ini adalah dicadangkan untuk kernel sebagai API Zink peringkat rendah tambahan, yang akhirnya boleh menggantikan API Crypto standard.

Selepas perbincangan di persidangan Resipi Kernel, pencipta WireGuard pada bulan September membuat keputusan kompromi pindahkan tampung anda untuk menggunakan API Crypto yang tersedia dalam teras, yang mana pembangun WireGuard mempunyai aduan dalam bidang prestasi dan keselamatan umum. Ia telah memutuskan untuk terus membangunkan API Zink, tetapi sebagai projek yang berasingan.

Pada bulan November, pembangun kernel pergi sebagai tindak balas kepada kompromi dan bersetuju untuk memindahkan sebahagian kod daripada Zink ke inti utama. Pada asasnya, beberapa komponen Zink akan dialihkan ke dalam teras, tetapi bukan sebagai API yang berasingan, tetapi sebagai sebahagian daripada subsistem API Crypto. Contohnya, Crypto API sudah pun disertakan pelaksanaan pantas algoritma ChaCha20 dan Poly1305 yang disediakan dalam WireGuard.

Sehubungan dengan penghantaran WireGuard yang akan datang dalam teras utama, pengasas projek itu diumumkan mengenai penstrukturan semula repositori. Untuk memudahkan pembangunan, repositori monolitik "WireGuard.git", yang direka bentuk untuk wujud secara berasingan, akan digantikan dengan tiga repositori berasingan, lebih sesuai untuk mengatur kerja dengan kod dalam kernel utama:

  • wireguard-linux.git - pokok kernel yang lengkap dengan perubahan daripada projek Wireguard, tampalan daripadanya akan disemak untuk dimasukkan ke dalam kernel dan dipindahkan secara berkala ke cawangan net/net-next.
  • wireguard-tools.git - repositori untuk utiliti dan skrip yang dijalankan dalam ruang pengguna, seperti wg dan wg-quick. Repositori boleh digunakan untuk membuat pakej untuk pengedaran.
  • wireguard-linux -ompat.git - repositori dengan varian modul, dibekalkan secara berasingan daripada kernel dan termasuk lapisan compat.h untuk memastikan keserasian dengan kernel lama. Pembangunan utama akan dijalankan dalam repositori wireguard-linux.git, tetapi selagi terdapat peluang dan keperluan di kalangan pengguna, versi tampung yang berasingan juga akan disokong dalam bentuk yang berfungsi.

Ingat bahawa VPN WireGuard dilaksanakan berdasarkan kaedah penyulitan moden, memberikan prestasi yang sangat tinggi, mudah digunakan, tanpa komplikasi dan telah membuktikan dirinya dalam beberapa penggunaan besar yang memproses sejumlah besar trafik. Projek ini telah dibangunkan sejak 2015, lulus audit dan pengesahan rasmi kaedah penyulitan yang digunakan. Sokongan WireGuard telah pun disepadukan ke dalam NetworkManager dan systemd, dan patch kernel disertakan dalam pengedaran asas Debian Tidak stabil, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph ΠΈ ALT.

WireGuard menggunakan konsep penghalaan kunci penyulitan, yang melibatkan pengikatan kunci persendirian pada setiap antara muka rangkaian dan menggunakan kunci awam untuk mengikat. Pertukaran kunci awam untuk mewujudkan sambungan adalah serupa dengan SSH. Untuk merundingkan kunci dan menyambung tanpa menjalankan daemon ruang pengguna yang berasingan, mekanisme Noise_IK daripada Rangka Kerja Protokol Bunyiserupa dengan mengekalkan authorized_keys dalam SSH. Penghantaran data dijalankan melalui enkapsulasi dalam paket UDP. Ia menyokong menukar alamat IP pelayan VPN (perayauan) tanpa memutuskan sambungan dan mengkonfigurasi semula klien secara automatik.

Untuk penyulitan digunakan sifir aliran ChaCha20 dan Algoritma Pengesahan Mesej (MAC) Poly1305, direka oleh Daniel Bernstein (Daniel J. Bernstein), Tanya Lange
(Tanja Lange) dan Peter Schwabe (Peter Schwabe). ChaCha20 dan Poly1305 diletakkan sebagai analog AES-256-CTR dan HMAC yang lebih pantas dan selamat, pelaksanaan perisian yang membolehkan mencapai masa pelaksanaan tetap tanpa melibatkan sokongan perkakasan khas. Untuk menjana kunci rahsia yang dikongsi, protokol Diffie-Hellman pada lengkung elips digunakan dalam pelaksanaan Curve25519, juga dicadangkan oleh Daniel Bernstein. Algoritma yang digunakan untuk pencincangan ialah BLAKE2s (RFC7693).

pada ujian Performance WireGuard menunjukkan daya pemprosesan 3.9 kali lebih tinggi dan responsif 3.8 kali lebih tinggi berbanding OpenVPN (AES 256-bit dengan HMAC-SHA2-256). Berbanding dengan IPsec (256-bit ChaCha20+Poly1305 dan AES-256-GCM-128), WireGuard menunjukkan sedikit peningkatan prestasi (13-18%) dan kependaman yang lebih rendah (21-23%). Ujian telah dilakukan menggunakan pelaksanaan pantas algoritma penyulitan yang dibangunkan oleh projek - pemindahan ke API Crypto standard kernel boleh membawa kepada prestasi yang lebih teruk.

VPN WireGuard telah diterima masuk ke cawangan net-next dan dijadualkan untuk dimasukkan ke dalam kernel Linux 5.6

Sumber: opennet.ru

Tambah komen