Implementasi anyar VPN WireGuard ditambahake menyang basis kode FreeBSD

Wit sumber FreeBSD wis diowahi kanthi implementasine VPN WireGuard anyar adhedhasar kode saka modul kernel sing disiapake bebarengan dening tim pangembangan inti FreeBSD lan WireGuard kanthi input saka Jason A. Donenfeld, penulis VPN WireGuard, lan John H. Baldwin ), pangembang GDB lan FreeBSD sing kondhang, sing ngetrapake dhukungan SMP lan NUMA ing kernel FreeBSD ing awal taun 2000-an. Sawise driver ditampa menyang FreeBSD (sys/dev/wg), iku bakal dikembangaké lan maintained ing repositori FreeBSD wiwit saiki.

Sadurunge kode kasebut ditampa, tinjauan lengkap babagan owah-owahan ditindakake kanthi dhukungan saka FreeBSD Foundation, sajrone interaksi driver karo subsistem kernel liyane uga dianalisis lan kemungkinan nggunakake primitif kriptografi sing diwenehake dening kernel dievaluasi.

Kanggo nggunakake algoritma kriptografi sing dibutuhake dening driver, API subsistem crypto kernel FreeBSD ditambahake, sing ditambahake ikatan sing ngidini nggunakake algoritma sing ora didhukung ing FreeBSD liwat API crypto standar, nggunakake implementasi algoritma sing dibutuhake saka perpustakaan libsodium. . Saka algoritma sing dibangun ing driver, mung kode kanggo ngitung hash Blake2, amarga implementasine algoritma iki sing kasedhiya ing FreeBSD diikat karo ukuran hash sing tetep.

Kajaba iku, sajrone proses review, optimasi kode ditindakake, sing bisa nambah efisiensi distribusi beban ing CPU multi-inti (keseimbangan seragam saka ikatan enkripsi lan tugas dekripsi paket menyang inti CPU wis dijamin). Akibaté, overhead saka Processing paket digawa nyedhaki implementasine saka driver kanggo Linux. Kode kasebut uga menehi kemampuan kanggo nggunakake driver ossl kanggo nyepetake operasi enkripsi.

Ora kaya upaya sadurunge kanggo nggabungake WireGuard menyang FreeBSD, implementasine anyar nggunakake sarana wg saham, tinimbang versi ifconfig sing diowahi, sing ngidini konfigurasi terpadu antarane Linux lan FreeBSD. Utilitas wg, uga driver, kalebu ing sumber FreeBSD, bisa ditindakake kanthi owah-owahan lisensi menyang kode wg (kode kasebut saiki kasedhiya ing lisensi MIT lan GPL). Upaya pungkasan kanggo nyakup WireGuard ing FreeBSD digawe ing taun 2020, nanging rampung ing skandal, amarga kode sing wis ditambahake wis dibusak amarga kualitas kurang, penanganan buffer sing ora ati-ati, nggunakake stub tinimbang mriksa, implementasine protokol sing ora lengkap. lan nglanggar lisensi GPL.

Elinga yen VPN WireGuard dileksanakake kanthi basis metode enkripsi modern, nyedhiyakake kinerja sing dhuwur banget, gampang digunakake, ora ana komplikasi lan wis mbuktekake dhewe ing sawetara penyebaran gedhe sing ngolah lalu lintas akeh. Proyèk iki wis dikembangaké wiwit 2015, lulus audit lan verifikasi resmi saka cara enkripsi sing digunakake. WireGuard nggunakake konsep routing kunci enkripsi, sing kalebu naleni kunci pribadi kanggo saben antarmuka jaringan lan nggunakake tombol umum kanggo ikatan.

Ijol-ijolan kunci umum kanggo nggawe sambungan padha karo SSH. Kanggo rembugan tombol lan nyambung tanpa mbukak daemon pangguna-ruang kapisah, mekanisme Noise_IK saka Noise Protocol Framework digunakake, padha kanggo njaga authorized_keys ing SSH. Transmisi data ditindakake liwat enkapsulasi ing paket UDP. Ndhukung ngganti alamat IP server VPN (roaming) tanpa ngilangi sambungan karo konfigurasi ulang klien otomatis.

Enkripsi nggunakake sandi stream ChaCha20 lan algoritma otentikasi pesen Poly1305 (MAC) sing dikembangake dening Daniel J. Bernstein, Tanja Lange, lan 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 mbutuhake dhukungan hardware khusus. Kanggo ngasilake kunci rahasia sing dienggo bareng, protokol Diffie-Hellman kurva eliptik ing implementasi Curve25519, uga diusulake dening Daniel Bernstein, digunakake. Kanggo hashing, algoritma BLAKE2s (RFC7693) digunakake.

Source: opennet.ru

Add a comment