VPN WireGuard telah diterima di cabang net-next dan dijadwalkan untuk disertakan dalam kernel Linux 5.6

David Miller (David S.Miller), bertanggung jawab atas subsistem jaringan kernel Linux, diterima ke cabang net-next tambalan dengan implementasi antarmuka VPN dari proyek WireGuard. Awal tahun depan, perubahan yang terakumulasi di cabang net-next akan menjadi dasar rilis kernel Linux 5.6.

Upaya untuk memasukkan kode WireGuard ke dalam kernel utama telah dilakukan selama beberapa tahun terakhir, namun tetap tidak berhasil karena terikat pada implementasi fungsi kriptografi eksklusif yang digunakan untuk meningkatkan kinerja. Awalnya, fungsi-fungsi ini adalah diajukan untuk kernel sebagai API Zinc tingkat rendah tambahan, yang pada akhirnya dapat menggantikan API Kripto standar.

Setelah diskusi di konferensi Kernel Recipes, pencipta WireGuard pada bulan September membuat keputusan kompromi transfer patch Anda untuk menggunakan Crypto API yang tersedia di inti, yang merupakan keluhan pengembang WireGuard di bidang kinerja dan keamanan umum. Diputuskan untuk terus mengembangkan Zinc API, tetapi sebagai proyek terpisah.

Pada bulan November, pengembang kernel Ayo pergi sebagai tanggapan atas kompromi dan setuju untuk mentransfer sebagian kode dari Zinc ke kernel utama. Pada dasarnya, beberapa komponen Zinc akan dipindahkan ke dalam inti, tetapi bukan sebagai API terpisah, tetapi sebagai bagian dari subsistem Crypto API. Misalnya sudah Crypto API termasuk implementasi cepat dari algoritma ChaCha20 dan Poly1305 yang disiapkan di WireGuard.

Sehubungan dengan pengiriman WireGuard yang akan datang ke inti utama, pendiri proyek diumumkan tentang restrukturisasi repositori. Untuk menyederhanakan pengembangan, repositori monolitik “WireGuard.git”, yang dirancang untuk berdiri sendiri, akan digantikan oleh tiga repositori terpisah, yang lebih cocok untuk mengatur pekerjaan dengan kode di kernel utama:

  • wireguard-linux.git - pohon kernel lengkap dengan perubahan dari proyek Wireguard, patch yang akan ditinjau untuk dimasukkan ke dalam kernel dan secara teratur ditransfer ke cabang net/net-next.
  • wireguard-tools.git - gudang untuk utilitas dan skrip yang dijalankan di ruang pengguna, seperti wg dan wg-quick. Repositori dapat digunakan untuk membuat paket distribusi.
  • wireguard-linux-compat.git - repositori dengan varian modul, disediakan secara terpisah dari kernel dan menyertakan lapisan compat.h untuk memastikan kompatibilitas dengan kernel lama. Pengembangan utama akan dilakukan di repositori wireguard-linux.git, tetapi selama ada peluang dan kebutuhan di antara pengguna, versi patch terpisah juga akan didukung dalam bentuk kerja.

Izinkan kami mengingatkan Anda bahwa VPN WireGuard diimplementasikan berdasarkan metode enkripsi modern, memberikan kinerja sangat tinggi, mudah digunakan, bebas komplikasi dan telah membuktikan dirinya dalam sejumlah penerapan besar yang memproses lalu lintas dalam jumlah besar. Proyek ini telah berkembang sejak 2015, telah diaudit dan verifikasi formal metode enkripsi yang digunakan. Dukungan WireGuard sudah terintegrasi ke dalam NetworkManager dan systemd, dan patch kernel disertakan dalam distribusi dasar Debian Tidak Stabil, Mageia, Alpine, Lengkungan, Gentoo, OpenWrt, NixOS, Subgraph и ALT.

WireGuard menggunakan konsep perutean kunci enkripsi, yang melibatkan pemasangan kunci pribadi ke setiap antarmuka jaringan dan menggunakannya untuk mengikat kunci publik. Kunci publik dipertukarkan untuk membuat koneksi dengan cara yang mirip dengan SSH. Untuk menegosiasikan kunci dan terhubung tanpa menjalankan daemon terpisah di ruang pengguna, mekanisme Noise_IK dari Kerangka Protokol Kebisinganmirip dengan mempertahankan kunci_otorisasi di SSH. Transmisi data dilakukan melalui enkapsulasi dalam paket UDP. Ini mendukung perubahan alamat IP server VPN (roaming) tanpa memutus koneksi dan secara otomatis mengkonfigurasi ulang klien.

Untuk enkripsi bekas sandi aliran ChaCha20 dan algoritma otentikasi pesan (MAC) Poly1305, dirancang oleh Daniel Bernstein (Daniel J. Bernstein), Tanya Lange
(Tanja Lange) dan Peter Schwabe. ChaCha20 dan Poly1305 diposisikan sebagai analog yang lebih cepat dan aman dari AES-256-CTR dan HMAC, yang implementasi perangkat lunaknya memungkinkan pencapaian waktu eksekusi tetap tanpa menggunakan dukungan perangkat keras khusus. Untuk menghasilkan kunci rahasia bersama, implementasinya menggunakan kurva elips protokol Diffie-Hellman Curve25519, juga diusulkan oleh Daniel Bernstein. Algoritma yang digunakan untuk hashing adalah BLAKE2 (RFC7693).

Di pengujian Performa WireGuard menunjukkan throughput 3.9 kali lebih tinggi dan responsivitas 3.8 kali lebih tinggi dibandingkan OpenVPN (AES 256-bit dengan HMAC-SHA2-256). Dibandingkan dengan IPsec (256-bit ChaCha20+Poly1305 dan AES-256-GCM-128), WireGuard menunjukkan sedikit peningkatan kinerja (13-18%) dan latensi lebih rendah (21-23%). Pengujian dilakukan menggunakan implementasi cepat dari algoritma enkripsi yang dikembangkan oleh proyek - mentransfer ke API Crypto standar dari kernel dapat menyebabkan kinerja yang lebih buruk.

VPN WireGuard telah diterima di cabang net-next dan dijadwalkan untuk disertakan dalam kernel Linux 5.6

Sumber: opennet.ru

Tambah komentar