VPN WireGuard disertakan dalam kernel Linux 5.6

Hari ini Linus memindahkan cabang net-next dengan antarmuka VPN ke dirinya sendiri WireGuard. Tentang acara ini сообщили di milis WireGuard.

VPN WireGuard disertakan dalam kernel Linux 5.6

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 dipuji 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 keputusan kompromi dibuat 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 sepakat transfer sebagian kode dari Zinc ke kernel utama. Misalnya, di API Kripto termasuk 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, diterima ke cabang net-next tambalan dengan implementasi antarmuka VPN dari proyek WireGuard.

Dan hari ini, 29 Januari 2020, perubahan tersebut masuk ke Linus untuk dimasukkan ke dalam kernel.

VPN WireGuard disertakan dalam kernel Linux 5.6

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 spesifikasi.

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 Kerangka Protokol Kebisinganmirip 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, - menulis jaringan terbuka.

Untuk enkripsi bekas sandi aliran ChaCha20 dan algoritma otentikasi pesan (MAC) Poly1305, dirancang oleh Daniel Bernstein (Daniel J. 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 Curve25519, juga diusulkan oleh Daniel Bernstein. Algoritma yang digunakan untuk hashing adalah BLAKE2 (RFC7693)'.

Temuan tes kinerja dari situs resmi:

Bandwidth (megabit/dtk)
VPN WireGuard disertakan dalam kernel Linux 5.6

Ping (md)
VPN WireGuard disertakan dalam kernel Linux 5.6

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 dijelaskan secara rinci di situs resminya, saya ingin mencatat secara terpisah yang luar biasa dukungan OpenWRT. 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 verifikasi formal. 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

Tambah komentar