VPN WireGuard kalebet dina kernel Linux 5.6

Dinten ayeuna Linus ngalihkeun cabang net-hareup sareng panganteur VPN ka dirina WireGuard. Ngeunaan acara ieu dilaporkeun dina milis WireGuard.

VPN WireGuard kalebet dina kernel Linux 5.6

Koléksi kode pikeun kernel Linux 5.6 énggal ayeuna nuju lumangsung. WireGuard mangrupikeun VPN generasi anu gancang anu ngalaksanakeun kriptografi modéren. Asalna dikembangkeun salaku alternatif anu langkung saderhana sareng langkung merenah pikeun VPN anu tos aya. Panulis nyaéta spesialis kaamanan inpormasi Kanada Jason A. Donenfeld. Dina Agustus 2018, WireGuard nampi pujian ku Linus Torvalds. Kira-kira waktos éta, padamelan mimiti kalebet VPN dina kernel Linux. Prosésna nyandak sakedik deui.

"Kuring ningali yén Jason parantos ngadamel pamundut tarik pikeun ngalebetkeun WireGuard dina kernel," Linus nyerat dina Agustus 2, 2018. - Naha kuring ngan sakali deui nyatakeun cinta kuring ka VPN ieu sareng ngarepkeun ngahiji pas? Kodena panginten henteu sampurna, tapi kuring ningali éta, sareng dibandingkeun sareng horor OpenVPN sareng IPSec, éta mangrupikeun karya seni anu nyata.

Najan kahayang Linus, ngahiji ngarérét salila sataun satengah. Masalah utama tétéla dihijikeun ka palaksanaan proprietary sahiji fungsi cryptographic, nu dipaké pikeun ngaronjatkeun kinerja. Saatos rundingan anu panjang dina Séptémber 2019 éta kaputusan kompromi dijieun narjamahkeun patch kana fungsi API Crypto sadia dina kernel, nu WireGuard pamekar boga keluhan dina widang kinerja sarta kaamanan umum. Tapi aranjeunna mutuskeun pikeun misahkeun fungsi kripto WireGuard asli kana API Seng tingkat rendah anu misah sareng pamustunganana port kana kernel. Dina bulan Nopémber, pamekar kernel tetep jangji maranéhanana sarta sapuk mindahkeun bagian kode ti Séng kana kernel utama. Contona, dina Crypto API kaasup palaksanaan gancang tina algoritma ChaCha20 sareng Poly1305 disiapkeun dina WireGuard.

Tungtungna, dina 9 Désémber 2019, David S. Miller, tanggung jawab pikeun subsistem jaringan tina kernel Linux, ditarima ka net-cabang salajengna tambalan kalawan palaksanaan panganteur VPN ti proyék WireGuard.

Sareng ayeuna, 29 Januari 2020, parobihan parantos ka Linus pikeun dilebetkeun kana kernel.

VPN WireGuard kalebet dina kernel Linux 5.6

Kaunggulan WireGuard anu diklaim dibandingkeun solusi VPN anu sanés:

  • Gampang dianggo.
  • Ngagunakeun kriptografi modern: kerangka protokol Noise, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF, jsb.
  • Kompak, kode anu tiasa dibaca, langkung gampang ditalungtik pikeun kerentanan.
  • kinerja luhur.
  • Jelas jeung elaborate spésifikasi.

Sadaya logika inti WireGuard nyandak kirang ti 4000 baris kode, sedengkeun OpenVPN sareng IPSec ngabutuhkeun ratusan rébu jalur.

"WireGuard nganggo konsép routing konci enkripsi, anu ngalibatkeun ngagantelkeun konci pribadi ka unggal antarmuka jaringan sareng nganggo konci umum pikeun ngabeungkeut éta. Konci publik ditukeurkeun pikeun nyieun sambungan dina cara nu sarupa jeung SSH. Pikeun konci negotiate tur sambungkeun tanpa ngajalankeun daemon misah dina spasi pamaké, mékanisme Noise_IK ti Noise Protocol Frameworksarupa jeung ngajaga authorized_keys di SSH. Pangiriman data dilaksanakeun ngaliwatan enkapsulasi dina pakét UDP. Ieu ngarojong ngarobah alamat IP tina server VPN (roaming) tanpa megatkeun sambungan kalawan reconfiguration otomatis tina klien, - manéhna nu nyerat Opennet.

Pikeun énkripsi digunakeun stream cipher ChaCha20 sareng algoritma auténtikasi pesen (MAC) Poly1305, dirancang ku Daniel Bernstein (Daniel J. Bernstein), Tanja Lange jeung Peter Schwabe. ChaCha20 sareng Poly1305 diposisikan salaku analog anu langkung gancang sareng aman tina AES-256-CTR sareng HMAC, palaksanaan parangkat lunak anu ngamungkinkeun pikeun ngahontal waktos palaksanaan tetep tanpa nganggo dukungan hardware khusus. Pikeun ngahasilkeun konci rahasia anu dibagikeun, kurva elliptic Diffie-Hellman protokol dianggo dina palaksanaan Curve25519, ogé diajukeun ku Daniel Bernstein. Algoritma anu dianggo pikeun hashing nyaéta BLAKE2s (RFC7693)".

Hasil tés kinerja ti ramatloka resmi:

Bandwidth (megabit/s)
VPN WireGuard kalebet dina kernel Linux 5.6

Ping (ms)
VPN WireGuard kalebet dina kernel Linux 5.6

Konfigurasi tés:

  • Intel Core i7-3820QM jeung Intel Core i7-5200U
  • Kartu Gigabit Intel 82579LM sareng Intel I218LM
  • Linux Ubuntu 4.6.1
  • Konfigurasi WireGuard: 256-bit ChaCha20 kalawan Poly1305 pikeun MAC
  • Konfigurasi IPsec munggaran: 256-bit ChaCha20 kalawan Poly1305 pikeun MAC
  • Konfigurasi IPsec kadua: AES-256-GCM-128 (kalayan AES-NI)
  • Konfigurasi OpenVPN: AES 256-bit sarimbag cipher suite sareng HMAC-SHA2-256, modeu UDP
  • Performance diukur ngagunakeun iperf3, nembongkeun hasil rata leuwih 30 menit.

Dina tiori, sakali terpadu kana tumpukan jaringan, WireGuard kedah dianggo malah gancang. Tapi dina kanyataanana ieu moal merta jadi kasus alatan transisi kana fungsi cryptographic API Crypto diwangun kana kernel. Panginten henteu sadayana dioptimalkeun pikeun tingkat kinerja WireGuard asli.

"Ti sudut pandang kuring, WireGuard umumna idéal pikeun pangguna. Sadaya kaputusan tingkat rendah dilakukeun dina spésifikasi, ku kituna prosés nyiapkeun infrastruktur VPN has ngan ukur sababaraha menit. Ieu ampir teu mungkin keur mess up konfigurasi - wrote on Habré di 2018. - Prosés instalasi dijelaskeun sacara rinci dina ramatloka resmi, Abdi hoyong misah catetan unggulan rojongan OpenWRT. Gampangna pamakean sareng kompak tina dasar kode dihontal ku ngaleungitkeun distribusi konci. Teu aya sistem sertipikat anu rumit sareng sadaya horor perusahaan ieu; konci enkripsi pondok disebarkeun sapertos konci SSH.

Proyék WireGuard geus ngembang saprak 2015, eta geus diaudit na verifikasi formal. Pangrojong WireGuard diintegrasikeun kana NetworkManager sareng systemd, sareng patch kernel kalebet dina distribusi dasar Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph sareng ALT.

sumber: www.habr.com

Tambahkeun komentar