FreeBSD kodlar bazasiga yangi VPN WireGuard ilovasi qo‘shildi

FreeBSD manba daraxti, VPN WireGuard muallifi Jeyson A. Donenfeld va Jon X. Baldvinning hissasi bilan asosiy FreeBSD va WireGuard ishlab chiqish guruhlari tomonidan birgalikda ishlab chiqarilgan yadro moduli kodiga asoslangan VPN WireGuardning yangi ilovasi bilan yangilandi. 2000-yillarning boshida FreeBSD yadrosida SMP va NUMA-ni qo'llab-quvvatlashni amalga oshirgan GDB va FreeBSD-ning taniqli ishlab chiquvchisi. Drayv FreeBSD (sys/dev/wg) ga qabul qilingandan so'ng, uni ishlab chiqish va texnik xizmat ko'rsatish bundan buyon FreeBSD omborida amalga oshiriladi.

Kod qabul qilinishidan oldin, FreeBSD fondi ko'magida o'zgarishlarni to'liq ko'rib chiqish amalga oshirildi, uning davomida drayverning yadro quyi tizimlarining qolgan qismi bilan o'zaro ta'siri ham tahlil qilindi va yadro tomonidan taqdim etilgan kriptografik primitivlardan foydalanish imkoniyati. baholandi.

Drayv tomonidan talab qilinadigan kriptografik algoritmlardan foydalanish uchun FreeBSD yadro kripto-quyi tizimi API kengaytirildi, unga standart kripto-API orqali FreeBSD-da qo'llab-quvvatlanmaydigan algoritmlardan foydalanish imkonini beruvchi jabduqlar qo'shildi. libsodium kutubxonasidan kerakli algoritmlar. Drayvga o'rnatilgan algoritmlardan faqat Blake2 xeshlarini hisoblash uchun kod qoladi, chunki FreeBSD-da taqdim etilgan ushbu algoritmni amalga oshirish belgilangan xesh hajmiga bog'langan.

Bundan tashqari, ko'rib chiqish jarayonida kodni optimallashtirish amalga oshirildi, bu ko'p yadroli protsessorlarda yukni taqsimlash samaradorligini oshirishga imkon berdi (protsessor yadrolariga paketli shifrlash va shifrni ochish vazifalarini belgilashning yagona muvozanati ta'minlandi). Natijada, paketlarni qayta ishlashda qo'shimcha xarajatlar Linux drayverini amalga oshirishga yaqin edi. Kod, shuningdek, shifrlash operatsiyalarini tezlashtirish uchun ossl drayveridan foydalanish imkoniyatini beradi.

WireGuard-ni FreeBSD-ga integratsiyalashga oldingi urinishdan farqli o'laroq, yangi dastur ifconfig-ning o'zgartirilgan versiyasidan ko'ra standart wg yordam dasturidan foydalanadi, bu esa Linux va FreeBSD-da konfiguratsiyani birlashtirish imkonini beradi. Wg yordam dasturi, shuningdek drayver FreeBSD manba kodiga kiritilgan bo'lib, u wg kodi uchun litsenziyani o'zgartirish orqali mumkin bo'ldi (kod endi MIT va GPL litsenziyalari ostida mavjud). WireGuard-ni FreeBSD-ga qo'shishga so'nggi urinish 2020 yilda qilingan, ammo janjal bilan yakunlangan, natijada allaqachon qo'shilgan kod past sifatli, buferlar bilan ehtiyotsizlik bilan ishlash, cheklar o'rniga stublardan foydalanish, to'liq amalga oshirilmaganligi sababli olib tashlandi. protokoli va GPL litsenziyasining buzilishi.

Eslatib o‘tamiz, VPN WireGuard zamonaviy shifrlash usullari asosida amalga oshirilgan, juda yuqori unumdorlikni ta’minlaydi, ishlatish uchun qulay, asoratlarsiz va katta hajmdagi trafikni qayta ishlovchi bir qator yirik joylashtirishlarda o‘zini isbotlagan. Loyiha 2015-yildan beri ishlab chiqilmoqda va foydalanilgan shifrlash usullarini tekshirish va rasmiy tekshirishdan o'tdi. WireGuard shifrlash kalitlarini marshrutlash kontseptsiyasidan foydalanadi, bu har bir tarmoq interfeysiga shaxsiy kalitni biriktirish va undan ochiq kalitlarni ulash uchun foydalanishni o'z ichiga oladi.

Ochiq kalitlar SSH ga o'xshash tarzda ulanishni o'rnatish uchun almashtiriladi. Kalitlarni muhokama qilish va foydalanuvchi maydonida alohida daemonni ishga tushirmasdan ulanish uchun SSH-da avtorizatsiyalangan kalitlarni saqlashga o'xshash Noise Protocol Frameworkning Noise_IK mexanizmi ishlatiladi. Ma'lumotlarni uzatish UDP paketlarida inkapsulyatsiya orqali amalga oshiriladi. U VPN serverining IP-manzilini (rouming) avtomatik mijoz qayta konfiguratsiyasi bilan ulanishni uzmasdan o'zgartirishni qo'llab-quvvatlaydi.

Shifrlashda Daniel J. Bernshteyn, Tanja Lange va Piter Shvabe tomonidan ishlab chiqilgan ChaCha20 oqim shifridan va Poly1305 xabarni autentifikatsiya qilish algoritmidan (MAC) foydalaniladi. ChaCha20 va Poly1305 AES-256-CTR va HMAC ning tezroq va xavfsizroq analoglari sifatida joylashtirilgan bo'lib, ularning dasturiy ta'minotini amalga oshirish maxsus apparat ta'minotidan foydalanmasdan belgilangan bajarish vaqtiga erishish imkonini beradi. Umumiy maxfiy kalitni yaratish uchun Elliptik egri chiziqli Diffie-Hellman protokoli Daniel Bernshteyn tomonidan taklif qilingan Curve25519 ilovasida qo'llaniladi. Xeshlash uchun BLAKE2s algoritmi (RFC7693) ishlatiladi.

Manba: opennet.ru

a Izoh qo'shish