Hari ini Linus mengalihkan cawangan net-next dengan antara muka VPN kepada dirinya sendiri WireGuard. Mengenai acara ini ΡΠΎΠΎΠ±ΡΠΈΠ»ΠΈ pada senarai mel WireGuard.
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.
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.
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)'.
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.
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.