VPN WireGuard disertakan dalam kernel Linux 5.6

Hari ini Linus mengalihkan cawangan net-next dengan antara muka VPN kepada dirinya sendiri WireGuard. Mengenai acara ini сообщили pada senarai mel WireGuard.

VPN WireGuard disertakan dalam kernel Linux 5.6

Pengumpulan kod untuk kernel Linux 5.6 baharu sedang dijalankan. WireGuard ialah VPN generasi akan datang yang pantas yang melaksanakan kriptografi moden. Ia pada asalnya dibangunkan sebagai alternatif yang lebih mudah dan lebih mudah kepada VPN sedia ada. Pengarangnya ialah pakar keselamatan maklumat Kanada Jason A. Donenfeld. Pada Ogos 2018, WireGuard mendapat pujian oleh Linus Torvalds. Pada masa itu, kerja mula memasukkan VPN dalam kernel Linux. Prosesnya mengambil masa lebih lama.

"Saya melihat bahawa Jason telah membuat permintaan tarik untuk memasukkan WireGuard dalam kernel," tulis Linus pada 2 Ogos 2018. β€” Bolehkah saya sekali lagi mengisytiharkan cinta saya untuk VPN ini dan berharap untuk penggabungan tidak lama lagi? Kod itu mungkin tidak sempurna, tetapi saya melihatnya, dan berbanding dengan kengerian OpenVPN dan IPSec, ia adalah karya seni yang sebenar.

Walaupun keinginan Linus, penggabungan itu berlarutan selama satu setengah tahun. Masalah utama ternyata terikat dengan pelaksanaan proprietari fungsi kriptografi, yang digunakan untuk meningkatkan prestasi. Selepas rundingan yang panjang pada September 2019 ia adalah keputusan kompromi telah dibuat menterjemah patch kepada fungsi Crypto API yang tersedia dalam kernel, yang mana pembangun WireGuard mempunyai aduan dalam bidang prestasi dan keselamatan umum. Tetapi mereka memutuskan untuk memisahkan fungsi kripto WireGuard asli ke dalam API Zink peringkat rendah yang berasingan dan akhirnya mengalihkannya ke kernel. Pada bulan November, pembangun kernel memenuhi janji mereka dan bersetuju pindahkan sebahagian kod daripada Zink ke kernel utama. Contohnya, dalam Crypto API disertakan pelaksanaan pantas algoritma ChaCha20 dan Poly1305 yang disediakan dalam WireGuard.

Akhirnya, pada 9 Disember 2019, David S. Miller, bertanggungjawab untuk subsistem rangkaian kernel Linux, diterima ke cawangan bersih-sebelah tompok dengan pelaksanaan antara muka VPN daripada projek WireGuard.

Dan hari ini, 29 Januari 2020, perubahan diberikan kepada Linus untuk dimasukkan ke dalam kernel.

VPN WireGuard disertakan dalam kernel Linux 5.6

Tuntutan kelebihan WireGuard berbanding penyelesaian VPN lain:

  • Mudah untuk digunakan.
  • Menggunakan kriptografi moden: Rangka kerja protokol hingar, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF, dsb.
  • Kod padat, boleh dibaca, lebih mudah untuk menyiasat kelemahan.
  • Prestasi tinggi.
  • Jelas dan terperinci spesifikasi.

Semua logik teras WireGuard menggunakan kurang daripada 4000 baris kod, manakala OpenVPN dan IPSec memerlukan ratusan ribu baris.

β€œWireGuard menggunakan konsep penghalaan kunci penyulitan, yang melibatkan melampirkan kunci peribadi pada setiap antara muka rangkaian dan menggunakan kunci awam untuk mengikatnya. Kunci awam ditukar untuk mewujudkan sambungan dengan cara yang serupa dengan SSH. Untuk merundingkan kunci dan menyambung tanpa menjalankan daemon berasingan dalam ruang pengguna, 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 dengan konfigurasi semula automatik pelanggan, - menulis Opennet.

Untuk penyulitan digunakan sifir aliran ChaCha20 dan Algoritma Pengesahan Mesej (MAC) Poly1305, direka oleh Daniel Bernstein (Daniel J. Bernstein), Tanja Lange dan 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 menggunakan sokongan perkakasan khas. Untuk menjana kunci rahsia yang dikongsi, lengkung eliptik protokol Diffie-Hellman digunakan dalam pelaksanaan Curve25519, juga dicadangkan oleh Daniel Bernstein. Algoritma yang digunakan untuk pencincangan BLAKE2s (RFC7693)'.

Penemuan ujian prestasi daripada laman web rasmi:

Lebar jalur (megabit/s)
VPN WireGuard disertakan dalam kernel Linux 5.6

Ping (ms)
VPN WireGuard disertakan dalam kernel Linux 5.6

Konfigurasi ujian:

  • Intel Core i7-3820QM dan Intel Core i7-5200U
  • Kad gigabit Intel 82579LM dan Intel I218LM
  • Linux 4.6.1
  • Konfigurasi WireGuard: 256-bit ChaCha20 dengan Poly1305 untuk MAC
  • Konfigurasi IPsec pertama: 256-bit ChaCha20 dengan Poly1305 untuk MAC
  • Konfigurasi IPsec kedua: AES-256-GCM-128 (dengan AES-NI)
  • Konfigurasi OpenVPN: Suite sifir setara AES 256-bit dengan HMAC-SHA2-256, mod UDP
  • Prestasi diukur menggunakan iperf3, menunjukkan hasil purata sepanjang 30 minit.

Secara teorinya, setelah disepadukan ke dalam timbunan rangkaian, WireGuard harus berfungsi dengan lebih pantas. Tetapi pada hakikatnya ini tidak semestinya berlaku kerana peralihan kepada fungsi kriptografi API Crypto yang dibina ke dalam kernel. Mungkin tidak semua daripada mereka masih dioptimumkan ke tahap prestasi WireGuard asli.

β€œDari sudut pandangan saya, WireGuard secara amnya sesuai untuk pengguna. Semua keputusan peringkat rendah dibuat dalam spesifikasi, jadi proses menyediakan infrastruktur VPN biasa hanya mengambil masa beberapa minit. Hampir mustahil untuk mengacaukan konfigurasi - писали pada HabrΓ© pada 2018. β€” Proses pemasangan diterangkan secara terperinci di laman web rasmi, saya ingin secara berasingan ambil perhatian yang sangat baik Sokongan OpenWRT. Kemudahan penggunaan dan kekompakan asas kod ini dicapai dengan menghapuskan pengedaran kunci. Tiada sistem sijil yang kompleks dan semua kengerian korporat ini; kunci penyulitan pendek diedarkan sama seperti kunci SSH.

Projek WireGuard telah dibangunkan sejak 2015, ia telah diaudit dan pengesahan rasmi. Sokongan WireGuard disepadukan ke dalam NetworkManager dan systemd, dan patch kernel disertakan dalam pengedaran asas Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph dan ALT.

Sumber: www.habr.com

Tambah komen