WireGuard akan “datang” ke kernel Linux - mengapa?

Pada akhir Juli, pengembang terowongan VPN WireGuard mengusulkan set tambalan, yang akan menjadikan perangkat lunak penerowongan VPN mereka sebagai bagian dari kernel Linux. Namun, tanggal pasti implementasi “ide” tersebut masih belum diketahui. Di bawah ini kita akan membicarakan alat ini secara lebih rinci.

WireGuard akan “datang” ke kernel Linux - mengapa?
/ foto Tambako si Jaguar CC

Secara singkat tentang proyek

WireGuard adalah terowongan VPN generasi berikutnya yang dibuat oleh Jason A. Donenfeld, CEO Edge Security. Proyek ini dikembangkan sebagai disederhanakan dan alternatif cepat untuk OpenVPN dan IPsec. Versi pertama produk hanya berisi 4 ribu baris kode. Sebagai perbandingan, OpenVPN memiliki sekitar 120 ribu baris, dan IPSec - 420 ribu.

Pada menurut pengembang, WireGuard mudah dikonfigurasi dan keamanan protokol tercapai melalui algoritma kriptografi yang terbukti. Saat mengubah jaringan: Wi-Fi, LTE atau Ethernet perlu terhubung kembali ke server VPN setiap saat. Server WireGuard tidak mengakhiri koneksi, meskipun pengguna telah menerima alamat IP baru.

Terlepas dari kenyataan bahwa WireGuard pada awalnya dirancang untuk kernel Linux, para pengembang diurus dan tentang versi portabel alat ini untuk perangkat Android. Aplikasi ini belum sepenuhnya dikembangkan, namun Anda dapat mencobanya sekarang. Untuk ini, Anda perlu menjadi salah satu penguji.

Secara umum WireGuard cukup populer dan bahkan pernah ada diimplementasikan beberapa penyedia VPN, seperti Mullvad dan AzireVPN. Diterbitkan secara daring sejumlah besar panduan pengaturan keputusan ini. Misalnya, ada panduan, yang dibuat oleh pengguna, dan ada panduan, disiapkan oleh penulis proyek.

Rincian Teknis

В dokumentasi resmi (hal. 18) tercatat bahwa throughput WireGuard empat kali lebih tinggi dibandingkan OpenVPN: masing-masing 1011 Mbit/s versus 258 Mbit/s. WireGuard juga lebih unggul dari solusi standar untuk Linux IPsec - ia memiliki 881 Mbit/s. Ini juga melampauinya dalam kemudahan pengaturan.

Setelah kunci ditukar (koneksi VPN diinisialisasi seperti SSH) dan koneksi dibuat, WireGuard menangani semua tugas lainnya sendiri: tidak perlu khawatir tentang perutean, kontrol negara, dll. Upaya konfigurasi tambahan hanya akan dilakukan diperlukan jika Anda ingin menggunakan enkripsi simetris.

WireGuard akan “datang” ke kernel Linux - mengapa?
/ foto Anders Hojbjerg CC

Untuk menginstal, Anda memerlukan distribusi dengan kernel Linux yang lebih lama dari 4.1. Itu dapat ditemukan di repositori distribusi Linux utama.

$ sudo add-apt-repository ppa:hda-me/wireguard
$ sudo apt update
$ sudo apt install wireguard-dkms wireguard-tools

Seperti yang dicatat oleh editor xakep.ru, perakitan mandiri dari teks sumber juga mudah. Cukup dengan membuka antarmuka dan menghasilkan kunci publik dan pribadi:

$ sudo ip link add dev wg0 type wireguard
$ wg genkey | tee privatekey | wg pubkey > publickey

WireGuard tidak digunakan antarmuka untuk bekerja dengan penyedia kripto KriptoAPI. Sebagai gantinya, stream cipher digunakan ChaCha20, kriptografi sisipan imitasi Poly1305 dan fungsi hash kriptografi berpemilik.

Kunci rahasia dihasilkan menggunakan Protokol Diffie-Hellman berdasarkan kurva elips Curve25519. Saat melakukan hashing, mereka menggunakan fungsi hash HITAM2 и SipHash. Karena format stempel waktu TAI64N protokol membuang paket dengan nilai stempel waktu yang lebih kecil mencegah DoS- и serangan ulangan.

Dalam hal ini, WireGuard menggunakan fungsi ioctl untuk mengontrol I/O (sebelumnya digunakan tautan bersih), yang membuat kode lebih bersih dan sederhana. Anda dapat memverifikasi ini dengan melihat kode konfigurasi.

Rencana Pengembang

Untuk saat ini, WireGuard adalah modul kernel out-of-tree. Namun penulis proyek ini adalah Jason Donenfeld говорит, bahwa waktunya telah tiba untuk implementasi penuh di kernel Linux. Karena lebih sederhana dan lebih dapat diandalkan dibandingkan solusi lainnya. Jason dalam hal ini mendukung bahkan Linus Torvalds sendiri menyebut kode WireGuard sebagai “karya seni”.

Namun belum ada yang membicarakan tanggal pasti pengenalan WireGuard ke dalam kernel. DAN hampir tidak ini akan terjadi dengan dirilisnya kernel Linux 4.18 bulan Agustus. Namun, ada kemungkinan hal ini akan terjadi dalam waktu dekat: di versi 4.19 atau 5.0.

Ketika WireGuard ditambahkan ke kernel, pengembang mau menyelesaikan aplikasi untuk perangkat Android dan mulai menulis aplikasi untuk iOS. Ada juga rencana untuk menyelesaikan implementasi di Go dan Rust dan mem-portingnya ke macOS, Windows dan BSD. Direncanakan juga untuk mengimplementasikan WireGuard untuk “sistem yang lebih eksotis”: DPDK, FPGA, serta banyak hal menarik lainnya. Semuanya tercantum dalam daftar tugas penulis proyek.

PS Beberapa artikel lagi dari blog perusahaan kami:

Arah utama kegiatan kami adalah penyediaan layanan cloud:

Infrastruktur Virtual (IaaS) | Hosting PCI DSS | Awan FZ-152 | hosting SAP | Penyimpanan maya | Mengenkripsi data di cloud | Penyimpanan awan

Sumber: www.habr.com

Tambah komentar