Hari ini Linus memindahkan cabang net-next dengan antarmuka VPN ke dirinya sendiri . Tentang acara ini di milis WireGuard.

Pengumpulan kode untuk kernel Linux 5.6 baru saat ini sedang berlangsung. WireGuard adalah VPN cepat generasi berikutnya yang mengimplementasikan kriptografi modern. Awalnya dikembangkan sebagai alternatif yang lebih sederhana dan nyaman untuk VPN yang sudah ada. Penulisnya adalah spesialis keamanan informasi Kanada Jason A. Donenfeld. Pada bulan Agustus 2018, WireGuard oleh Linus Torvalds. Sekitar waktu itu, pekerjaan mulai memasukkan VPN ke dalam kernel Linux. Prosesnya memakan waktu sedikit lebih lama.
“Saya melihat Jason telah membuat pull request untuk memasukkan WireGuard ke dalam kernel,” tulis Linus pada 2 Agustus 2018. — Bolehkah saya sekali lagi menyatakan kecintaan saya pada VPN ini dan berharap bisa segera merger? Kodenya mungkin tidak sempurna, tapi saya melihatnya, dan dibandingkan dengan OpenVPN dan IPSec yang mengerikan, ini adalah karya seni yang nyata.”
Terlepas dari keinginan Linus, merger tersebut berlangsung selama satu setengah tahun. Masalah utamanya ternyata terkait dengan implementasi fungsi kriptografi yang dipatenkan, yang digunakan untuk meningkatkan kinerja. Setelah negosiasi panjang pada bulan September 2019, akhirnya terwujud menerjemahkan tambalan ke fungsi Crypto API yang tersedia di kernel, yang mana pengembang WireGuard memiliki keluhan di bidang kinerja dan keamanan umum. Namun mereka memutuskan untuk memisahkan fungsi kripto asli WireGuard ke dalam Zinc API tingkat rendah yang terpisah dan akhirnya memindahkannya ke kernel. Pada bulan November, pengembang kernel menepati janji mereka dan transfer sebagian kode dari Zinc ke kernel utama. Misalnya, di API Kripto implementasi cepat dari algoritma ChaCha20 dan Poly1305 yang disiapkan di WireGuard.
Terakhir, pada tanggal 9 Desember 2019, David S. Miller, yang bertanggung jawab atas subsistem jaringan kernel Linux, ke cabang net-next dengan implementasi antarmuka VPN dari proyek WireGuard.
Dan hari ini, 29 Januari 2020, perubahan tersebut masuk ke Linus untuk dimasukkan ke dalam kernel.

Keunggulan WireGuard yang diklaim dibandingkan solusi VPN lainnya:
- Mudah digunakan.
- Menggunakan kriptografi modern: Kerangka protokol kebisingan, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF, dll.
- Kode yang ringkas dan mudah dibaca, lebih mudah diselidiki untuk mengetahui kerentanannya.
- Performa tinggi.
- Jelas dan rumit .
Seluruh logika inti WireGuard membutuhkan kurang dari 4000 baris kode, sedangkan OpenVPN dan IPSec memerlukan ratusan ribu baris kode.
“WireGuard menggunakan konsep perutean kunci enkripsi, yang melibatkan melampirkan kunci pribadi ke setiap antarmuka jaringan dan menggunakan kunci publik untuk mengikatnya bersama-sama. Kunci publik dipertukarkan untuk membuat koneksi dengan cara yang mirip dengan SSH. Untuk menegosiasikan kunci dan terhubung tanpa menjalankan daemon terpisah di ruang pengguna, mekanisme Noise_IK dari mirip dengan mempertahankan kunci_otorisasi di SSH. Transmisi data dilakukan melalui enkapsulasi dalam paket UDP. Mendukung perubahan alamat IP server VPN (roaming) tanpa memutus koneksi dengan konfigurasi ulang otomatis klien, - jaringan terbuka.
Untuk enkripsi sandi aliran dan algoritma otentikasi pesan (MAC) , dirancang oleh Daniel Bernstein (), Tanja Lange dan Peter Schwabe. ChaCha20 dan Poly1305 diposisikan sebagai analog yang lebih cepat dan aman dari AES-256-CTR dan HMAC, yang implementasi perangkat lunaknya memungkinkan pencapaian waktu eksekusi tetap tanpa menggunakan dukungan perangkat keras khusus. Untuk menghasilkan kunci rahasia bersama, implementasinya menggunakan kurva elips protokol Diffie-Hellman , juga diusulkan oleh Daniel Bernstein. Algoritma yang digunakan untuk hashing adalah '.
Temuan dari situs resmi:
Bandwidth (megabit/dtk)

Ping (md)

Konfigurasi pengujian:
- Intel Core i7-3820QM dan Intel Core i7-5200U
- Kartu gigabit Intel 82579LM dan Intel I218LM
- Linux 4.6.1
- Konfigurasi WireGuard: ChaCha256 20-bit dengan Poly1305 untuk MAC
- Konfigurasi IPsec pertama: ChaCha256 20-bit dengan Poly1305 untuk MAC
- Konfigurasi IPsec kedua: AES-256-GCM-128 (dengan AES-NI)
- Konfigurasi OpenVPN: Cipher suite setara AES 256-bit dengan HMAC-SHA2-256, mode UDP
- Kinerja diukur menggunakan
iperf3, menunjukkan hasil rata-rata selama 30 menit.
Secara teori, setelah diintegrasikan ke dalam tumpukan jaringan, WireGuard akan bekerja lebih cepat. Namun pada kenyataannya hal ini belum tentu terjadi karena transisi ke fungsi kriptografi Crypto API yang ada di dalam kernel. Mungkin belum semuanya dioptimalkan ke tingkat kinerja WireGuard asli.
“Dari sudut pandang saya, WireGuard secara umum ideal bagi pengguna. Semua keputusan tingkat rendah dibuat dalam spesifikasi, sehingga proses penyiapan infrastruktur VPN pada umumnya hanya membutuhkan waktu beberapa menit. Hampir tidak mungkin untuk mengacaukan konfigurasi - tentang Habré pada tahun 2018. — Proses instalasi di situs resminya, saya ingin mencatat secara terpisah yang luar biasa . Kemudahan penggunaan dan kekompakan basis kode dicapai dengan menghilangkan distribusi kunci. Tidak ada sistem sertifikat yang rumit dan semua kengerian perusahaan ini; kunci enkripsi pendek didistribusikan seperti kunci SSH.”
Proyek WireGuard telah berkembang sejak tahun 2015, telah diaudit dan . Dukungan WireGuard diintegrasikan ke dalam NetworkManager dan systemd, dan patch kernel disertakan dalam distribusi dasar Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph dan ALT.
Sumber: www.habr.com
