WireGuard akan "datang" ke kernel Linux - mengapa?

Pada akhir bulan Julai, pembangun terowong VPN WireGuard mencadangkan set tampalan, yang akan menjadikan perisian terowong VPN mereka sebahagian daripada kernel Linux. Walau bagaimanapun, tarikh sebenar pelaksanaan "idea" masih tidak diketahui. Di bawah potongan kami akan bercakap tentang alat ini dengan lebih terperinci.

WireGuard akan "datang" ke kernel Linux - mengapa?
/ foto Tambako The Jaguar CC

Secara ringkas mengenai projek itu

WireGuard ialah terowong VPN generasi seterusnya yang dicipta oleh Jason A. Donenfeld, Ketua Pegawai Eksekutif Edge Security. Projek ini dibangunkan sebagai dipermudahkan dan alternatif pantas kepada OpenVPN dan IPsec. Versi pertama produk mengandungi hanya 4 ribu baris kod. Sebagai perbandingan, OpenVPN mempunyai kira-kira 120 ribu baris, dan IPSec - 420 ribu.

Pada menurut pembangun, WireGuard mudah dikonfigurasikan dan keselamatan protokol dicapai melalui algoritma kriptografi yang terbukti. Apabila menukar rangkaian: Wi-Fi, LTE atau Ethernet perlu menyambung semula ke pelayan VPN setiap kali. Pelayan WireGuard tidak menamatkan sambungan, walaupun pengguna telah menerima alamat IP baharu.

Walaupun fakta bahawa WireGuard pada asalnya direka untuk kernel Linux, pembangun dijaga dan tentang versi mudah alih alat untuk peranti Android. Aplikasi ini belum dibangunkan sepenuhnya, tetapi anda boleh mencubanya sekarang. Untuk ini anda perlukan menjadi salah seorang penguji.

Secara amnya, WireGuard agak popular dan juga pernah dilaksanakan beberapa penyedia VPN, seperti Mullvad dan AzireVPN. Diterbitkan dalam talian sebilangan besar panduan persediaan keputusan ini. Sebagai contoh, ada panduan, yang dicipta oleh pengguna, dan terdapat panduan, disediakan oleh pengarang projek.

Butiran teknikal

Π’ dokumentasi rasmi (ms 18) adalah diperhatikan bahawa daya pemprosesan WireGuard adalah empat kali lebih tinggi daripada OpenVPN: 1011 Mbit/s berbanding 258 Mbit/s, masing-masing. WireGuard juga mendahului penyelesaian standard untuk Linux IPsec - ia mempunyai 881 Mbit/s. Ia juga mengatasinya dalam kemudahan persediaan.

Selepas kekunci ditukar (sambungan VPN dimulakan sama seperti SSH) dan sambungan diwujudkan, WireGuard mengendalikan semua tugas lain dengan sendirinya: tidak perlu risau tentang penghalaan, kawalan keadaan, dll. Usaha konfigurasi tambahan hanya akan diperlukan jika anda ingin menggunakan penyulitan simetri.

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

Untuk memasang, anda memerlukan pengedaran dengan kernel Linux yang lebih lama daripada 4.1. Ia boleh didapati dalam repositori pengedaran Linux utama.

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

Seperti yang diketahui oleh editor xakep.ru, pemasangan sendiri daripada teks sumber juga mudah. Ia cukup untuk membuka antara muka dan menjana kunci awam dan peribadi:

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

WireGuard tidak menggunakan antara muka untuk bekerja dengan penyedia kripto CryptoAPI. Sebaliknya, sifir aliran digunakan ChaCha20, kriptografi sisipan tiruan Poly1305 dan fungsi cincang kriptografi proprietari.

Kunci rahsia dijana menggunakan Protokol Diffie-Hellman berdasarkan lengkung elips Curve25519. Apabila pencincangan, mereka menggunakan fungsi hash BLAKE2 ΠΈ SipHash. Disebabkan format cap masa TAI64N protokol membuang paket dengan nilai cap masa yang lebih kecil, dengan itu menghalang DoS- ΠΈ ulang tayang serangan.

Dalam kes ini, WireGuard menggunakan fungsi ioctl untuk mengawal I/O (sebelum ini digunakan pautan net), yang menjadikan kod lebih bersih dan mudah. Anda boleh mengesahkan ini dengan melihat kod konfigurasi.

Pelan pemaju

Buat masa ini, WireGuard ialah modul kernel luar pokok. Tetapi pengarang projek itu ialah Jason Donenfeld ia berkata-kata, bahawa masanya telah tiba untuk pelaksanaan penuh dalam kernel Linux. Kerana ia lebih mudah dan lebih dipercayai daripada penyelesaian lain. Jason dalam hal ini menyokong malah Linus Torvalds sendiri memanggil kod WireGuard sebagai "karya seni."

Tetapi tiada siapa yang bercakap tentang tarikh tepat untuk pengenalan WireGuard ke dalam kernel. DAN hampir tidak ini akan berlaku dengan keluaran kernel Linux Ogos 4.18. Walau bagaimanapun, terdapat kemungkinan bahawa ini akan berlaku dalam masa terdekat: dalam versi 4.19 atau 5.0.

Apabila WireGuard ditambahkan pada kernel, pembangun mahu memuktamadkan permohonan untuk peranti Android dan mula menulis aplikasi untuk iOS. Terdapat juga rancangan untuk menyelesaikan pelaksanaan dalam Go dan Rust dan mengalihkannya ke macOS, Windows dan BSD. Ia juga merancang untuk melaksanakan WireGuard untuk lebih "sistem eksotik": DPDK, FPGA, serta banyak lagi perkara menarik. Kesemua mereka disenaraikan dalam senarai yang hendak dibuat pengarang projek.

PS Beberapa lagi artikel dari blog korporat kami:

Arah utama aktiviti kami ialah penyediaan perkhidmatan awan:

Infrastruktur Maya (IaaS) | Pengehosan PCI DSS | Awan FZ-152 | Pengehosan SAP | Storan maya | Menyulitkan data dalam awan | Storan awan

Sumber: www.habr.com

Tambah komen