VPN WireGuard kalebu ing kernel Linux 5.6

Dina iki Linus mindhah cabang net-sabanjure kanthi antarmuka VPN kanggo awake dhewe WireGuard. Babagan acara iki kacarita ing dhaptar mailing WireGuard.

VPN WireGuard kalebu ing kernel Linux 5.6

Koleksi kode kanggo kernel Linux 5.6 anyar saiki lagi ditindakake. WireGuard minangka VPN generasi sabanjure sing cepet sing ngetrapake kriptografi modern. Iki wiwitane dikembangake minangka alternatif sing luwih gampang lan trep kanggo VPN sing wis ana. Penulis yaiku spesialis keamanan informasi Kanada Jason A. Donenfeld. Ing Agustus 2018, WireGuard dipuji dening Linus Torvalds. Kira-kira wektu iku, karya wiwit kalebu VPN ing kernel Linux. Proses njupuk sethitik maneh.

"Aku weruh yen Jason wis njaluk panjalukan kanggo nyakup WireGuard ing kernel," tulis Linus ing Agustus 2, 2018. — Apa aku mung bisa ngumumake katresnanku marang VPN iki lan ngarep-arep supaya bisa digabung? Kode kasebut bisa uga ora sampurna, nanging aku ndeleng, lan dibandhingake karo medeni OpenVPN lan IPSec, iki minangka karya seni sing nyata.

Senadyan kepinginan Linus, penggabungan kasebut nganti setaun setengah. Masalah utama ana hubungane karo implementasi proprietary fungsi kriptografi, sing digunakake kanggo nambah kinerja. Sawise rembugan dawa ing September 2019 iku kaputusan kompromi digawe nerjemahake patches kanggo fungsi Crypto API kasedhiya ing kernel, kang pangembang WireGuard duwe keluhan ing lapangan kinerja lan keamanan umum. Nanging dheweke mutusake kanggo misahake fungsi crypto asli WireGuard dadi API Seng tingkat rendah sing kapisah lan pungkasane port menyang kernel. Ing November, pangembang kernel netepi janji lan sarujuk nransfer bagean kode saka Seng menyang kernel utama. Contone, ing Crypto API klebu implementasine cepet saka algoritma ChaCha20 lan Poly1305 disiapake ing WireGuard.

Pungkasan, tanggal 9 Desember 2019, David S. Miller, tanggung jawab kanggo subsistem jaringan kernel Linux, Ditampa menyang cabang net-sabanjuré tambalan kanthi implementasi antarmuka VPN saka proyek WireGuard.

Lan dina iki, 29 Januari 2020, owah-owahan menyang Linus kanggo dilebokake ing kernel.

VPN WireGuard kalebu ing kernel Linux 5.6

Kauntungan sing diklaim WireGuard tinimbang solusi VPN liyane:

  • Gampang digunakake.
  • Nggunakake kriptografi modern: Kerangka protokol gangguan, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF, lsp.
  • Kode sing kompak, bisa diwaca, luwih gampang diselidiki babagan kerentanan.
  • Kualitas apik.
  • Cetha lan njlimet spesifikasi.

Kabeh logika inti WireGuard njupuk kurang saka 4000 baris kode, dene OpenVPN lan IPSec mbutuhake atusan ewu baris.

"WireGuard nggunakake konsep routing kunci enkripsi, sing kalebu nglebokake kunci pribadi menyang saben antarmuka jaringan lan nggunakake kunci umum kanggo ngiket. Kunci umum diijolke kanggo nggawe sambungan kanthi cara sing padha karo SSH. Kanggo rembugan tombol lan nyambung tanpa mlaku daemon kapisah ing papan pangguna, mekanisme Noise_IK saka Kerangka Protokol Noisepadha karo njaga authorized_keys ing SSH. Transmisi data ditindakake liwat enkapsulasi ing paket UDP. Ndhukung ngganti alamat IP server VPN (roaming) tanpa medhot sambungan kanthi konfigurasi ulang klien kanthi otomatis, - Panjenenganipun nyerat Opennet.

Kanggo enkripsi digunakake dening stream cipher ChaCha20 lan algoritma otentikasi pesen (MAC) Poly1305, dirancang dening Daniel Bernstein (Daniel J. Bernstein), Tanja Lange and Peter Schwabe. ChaCha20 lan Poly1305 dipanggonke minangka analog sing luwih cepet lan luwih aman saka AES-256-CTR lan HMAC, implementasine piranti lunak sing ngidini entuk wektu eksekusi tetep tanpa nggunakake dhukungan hardware khusus. Kanggo ngasilake kunci rahasia sing dienggo bareng, protokol Diffie-Hellman kurva eliptik digunakake ing implementasine Curve25519, uga diusulake dening Daniel Bernstein. Algoritma sing digunakake kanggo hashing yaiku BLAKE2s (RFC7693)".

Результаты tes kinerja saka situs resmi:

Bandwidth (megabit/s)
VPN WireGuard kalebu ing kernel Linux 5.6

Ping (ms)
VPN WireGuard kalebu ing kernel Linux 5.6

Konfigurasi tes:

  • Intel Core i7-3820QM lan Intel Core i7-5200U
  • Kertu Gigabit Intel 82579LM lan Intel I218LM
  • Linux 4.6.1
  • Konfigurasi WireGuard: 256-bit ChaCha20 karo Poly1305 kanggo MAC
  • Konfigurasi IPsec pisanan: 256-bit ChaCha20 karo Poly1305 kanggo MAC
  • Konfigurasi IPsec kapindho: AES-256-GCM-128 (karo AES-NI)
  • Konfigurasi OpenVPN: Suite cipher sing padha karo AES 256-bit kanthi HMAC-SHA2-256, mode UDP
  • Kinerja diukur nggunakake iperf3, nuduhake asil rata-rata liwat 30 menit.

Ing teori, yen wis digabungake menyang tumpukan jaringan, WireGuard kudu luwih cepet. Nanging ing kasunyatan, iki ora mesthi kedadeyan amarga transisi menyang fungsi kriptografi API Crypto sing dibangun ing kernel. Mbok menawa ora kabeh mau dioptimalake kanggo tingkat kinerja WireGuard asli.

"Saka sudut pandangku, WireGuard umume cocog kanggo pangguna. Kabeh keputusan tingkat rendah digawe ing spesifikasi, mula proses nyiapake infrastruktur VPN sing khas mung butuh sawetara menit. Meh mokal kanggo ngrusak konfigurasi - wrote ing Habré ing 2018. - Proses instalasi diterangake kanthi rinci ing website resmi, Aku kaya kanggo kapisah Wigati banget Dhukungan OpenWRT. Gampang panggunaan lan kekompakan basis kode digayuh kanthi ngilangi distribusi kunci. Ora ana sistem sertifikat sing rumit lan kabeh horor perusahaan iki; kunci enkripsi cendhak disebarake kaya tombol SSH.

Proyèk WireGuard wis berkembang wiwit 2015, wis diaudit lan verifikasi formal. Dhukungan WireGuard digabungake menyang NetworkManager lan systemd, lan patch kernel kalebu ing distribusi dhasar Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph lan ALT.

Source: www.habr.com

Add a comment