VPN WireGuard Linux yadrosiga kiritilgan 5.6

Bugun Linus VPN interfeyslari bilan keyingi tarmoqni o'ziga ko'chirdi WireGuard. Ushbu voqea haqida xabar berdi WireGuard pochta ro'yxatida.

VPN WireGuard Linux yadrosiga kiritilgan 5.6

Yangi Linux 5.6 yadrosi uchun kod yig'ish hozirda davom etmoqda. WireGuard - zamonaviy kriptografiyani amalga oshiradigan tezkor yangi avlod VPN. U dastlab mavjud VPN-larga nisbatan sodda va qulayroq alternativ sifatida ishlab chiqilgan. Muallif kanadalik axborot xavfsizligi bo'yicha mutaxassis Jeyson A. Donenfeld. 2018 yil avgust oyida WireGuard maqtovga sazovor bo'ldi Linus Torvalds tomonidan. Taxminan o'sha paytda Linux yadrosiga VPN-ni kiritish bo'yicha ish boshlandi. Jarayon biroz uzoqroq davom etdi.

"Men Jeyson WireGuard-ni yadroga kiritish uchun tortishish so'rovini qilganini ko'raman", deb yozgan Linus 2 yil 2018 avgustda. β€” Men yana bir bor ushbu VPN-ga muhabbatimni izhor qilsam va yaqin orada birlashishga umid qila olamanmi? Kod mukammal bo'lmasligi mumkin, lekin men unga qaradim va OpenVPN va IPSec dahshatlari bilan solishtirganda, bu haqiqiy san'at asari.

Linusning xohishiga qaramay, birlashish bir yarim yilga cho'zildi. Asosiy muammo, ishlashni yaxshilash uchun ishlatiladigan kriptografik funktsiyalarning xususiy amalga oshirilishi bilan bog'liq bo'lib chiqdi. 2019 yil sentyabr oyida uzoq davom etgan muzokaralardan so'ng shunday bo'ldi murosa qarori qabul qilindi Yamoqlarni yadroda mavjud bo'lgan Crypto API funktsiyalariga tarjima qiling, WireGuard ishlab chiquvchilari ishlash va umumiy xavfsizlik sohasida shikoyat qiladilar. Ammo ular WireGuard-ning mahalliy kripto funktsiyalarini alohida past darajadagi Sink API-ga ajratishga va oxir-oqibat ularni yadroga o'tkazishga qaror qilishdi. Noyabr oyida yadro ishlab chiquvchilari va'dalarini bajardilar va kelishilgan kodning bir qismini sinkdan asosiy yadroga o'tkazing. Masalan, Crypto API-da vklyucheny WireGuard-da tayyorlangan ChaCha20 va Poly1305 algoritmlarini tez amalga oshirish.

Nihoyat, 9-yil 2019-dekabrda Linux yadrosining tarmoq quyi tizimi uchun mas’ul Devid S. Miller, qabul qildi net-keyingi filialga yamoqlar WireGuard loyihasidan VPN interfeysini amalga oshirish bilan.

Va bugun, 29-yil 2020-yanvar, o'zgarishlar yadroga qo'shilishi uchun Linus-ga o'tdi.

VPN WireGuard Linux yadrosiga kiritilgan 5.6

WireGuard-ning boshqa VPN yechimlaridan da'vo qilingan afzalliklari:

  • Foydalanish oson.
  • Zamonaviy kriptografiyadan foydalanadi: shovqin protokoli ramkasi, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF va boshqalar.
  • Ixcham, o'qilishi mumkin bo'lgan kod, zaifliklarni tekshirish osonroq.
  • Yuqori ishlash.
  • Aniq va batafsil spetsifikatsiya.

WireGuard-ning barcha asosiy mantig'i 4000 satrdan kamroq kodni oladi, OpenVPN va IPSec esa yuz minglab qatorlarni talab qiladi.

β€œWireGuard shifrlash kalitlarini marshrutlash kontseptsiyasidan foydalanadi, bu har bir tarmoq interfeysiga shaxsiy kalitni biriktirish va uni bir-biriga ulash uchun ochiq kalitlardan foydalanishni o'z ichiga oladi. Ochiq kalitlar SSH ga o'xshash tarzda ulanish o'rnatish uchun almashtiriladi. Kalitlarni muzokara qilish va foydalanuvchi maydonida alohida daemonni ishga tushirmasdan ulanish uchun Noise_IK mexanizmi dan Shovqin protokoli ramkasiSSH da avtorizatsiyalangan kalitlarni saqlashga o'xshaydi. Ma'lumotlarni uzatish UDP paketlarida inkapsulyatsiya orqali amalga oshiriladi. Mijozning avtomatik qayta konfiguratsiyasi bilan ulanishni uzmasdan VPN serverining IP-manzilini (rouming) o'zgartirishni qo'llab-quvvatlaydi, - U yozadi Opennet.

Shifrlash uchun ishlatiladi oqim shifrlash ChaCha20 va xabarni autentifikatsiya qilish algoritmi (MAC) Poly1305, Daniel Bernshteyn tomonidan ishlab chiqilgan (Daniel J. Bernshteyn), Tanja Lange va Piter Shvabe. 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 amalga oshirishda elliptik egri Diffie-Hellman protokoli qo'llaniladi. Curve25519, shuningdek, Daniel Bernshteyn tomonidan taklif qilingan. Xeshlash uchun ishlatiladigan algoritm BLAKE2 (RFC7693)".

Natijalar ishlash testlari rasmiy veb-saytidan:

O'tkazish qobiliyati (megabit/s)
VPN WireGuard Linux yadrosiga kiritilgan 5.6

Ping (ms)
VPN WireGuard Linux yadrosiga kiritilgan 5.6

Sinov konfiguratsiyasi:

  • Intel Core i7-3820QM va Intel Core i7-5200U
  • Gigabit kartalari Intel 82579LM va Intel I218LM
  • Linux 4.6.1
  • WireGuard konfiguratsiyasi: MAC uchun Poly256 bilan 20-bit ChaCha1305
  • Birinchi IPsec konfiguratsiyasi: MAC uchun Poly256 bilan 20-bit ChaCha1305
  • Ikkinchi IPsec konfiguratsiyasi: AES-256-GCM-128 (AES-NI bilan)
  • OpenVPN konfiguratsiyasi: HMAC-SHA256-2, UDP rejimi bilan AES 256 bitli ekvivalent shifrlar to'plami
  • Ishlash yordamida o'lchandi iperf3, 30 daqiqa davomida o'rtacha natijani ko'rsatadi.

Nazariy jihatdan, WireGuard tarmoq stekiga integratsiyalashganidan keyin tezroq ishlashi kerak. Biroq, aslida yadroga o'rnatilgan Crypto API kriptografik funktsiyalariga o'tish tufayli bunday bo'lishi shart emas. Ehtimol, ularning hammasi ham mahalliy WireGuard ishlash darajasiga optimallashtirilmagan.

β€œMening fikrimcha, WireGuard odatda foydalanuvchi uchun ideal. Barcha past darajadagi qarorlar spetsifikatsiyada qabul qilinadi, shuning uchun odatiy VPN infratuzilmasini tayyorlash jarayoni bir necha daqiqa davom etadi. Konfiguratsiyani buzish deyarli mumkin emas - yozgan 2018 yilda HabrΓ©-da. - O'rnatish jarayoni batafsil tavsiflangan rasmiy veb-saytida men ajoyiblikni alohida ta'kidlamoqchiman OpenWRT-ni qo'llab-quvvatlash. Kod bazasining bunday foydalanish qulayligi va ixchamligiga kalitlarni taqsimlashni bartaraf etish orqali erishildi. Hech qanday murakkab sertifikat tizimi yo'q va bu korporativ dahshat; qisqa shifrlash kalitlari SSH kalitlari kabi taqsimlanadi.

WireGuard loyihasi 2015 yildan beri ishlab chiqilmoqda, u tekshirilgan va rasmiy tekshirish. WireGuard-ni qo'llab-quvvatlash NetworkManager va systemd-ga birlashtirilgan va yadro yamoqlari Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph va ALT-ning asosiy taqsimotlariga kiritilgan.

Manba: www.habr.com

a Izoh qo'shish