VPN WireGuard нь Linux цөм 5.6-д багтсан болно

Өнөөдөр Линус VPN интерфейстэй сүлжээний дараагийн салбарыг өөртөө шилжүүлэв WireGuard. Энэ үйл явдлын талаар тайлагнасан WireGuard захидлын жагсаалтад.

VPN WireGuard нь Linux цөм 5.6-д багтсан болно

Шинэ Linux 5.6 цөмд зориулсан код цуглуулах ажил одоогоор үргэлжилж байна. WireGuard бол орчин үеийн криптографийг хэрэгжүүлдэг шинэ үеийн хурдан VPN юм. Энэ нь анх одоо байгаа VPN-ээс илүү хялбар бөгөөд илүү тохиромжтой хувилбар болгон боловсруулсан. Зохиогч нь Канадын мэдээллийн аюулгүй байдлын мэргэжилтэн Жейсон А.Доненфельд юм. 2018 оны XNUMX-р сард WireGuard магтаал авсан Линус Торвалдс. Тэр үед Linux цөмд VPN-г оруулах ажил эхэлсэн. Процесс бага зэрэг удаан үргэлжилсэн.

Линус 2 оны 2018-р сарын XNUMX-нд "Жэйсон WireGuard-г цөмд оруулах хүсэлт гаргасан гэдгийг би харж байна." — Би энэ VPN-д хайртай гэдгээ дахин зарлаж, удахгүй нэгдэнэ гэж найдаж болох уу? Код нь төгс биш байж магадгүй, гэхдээ би үүнийг харлаа, OpenVPN болон IPSec-ийн аймшигт байдалтай харьцуулахад энэ бол жинхэнэ урлагийн бүтээл юм."

Линусын хүсэл байсан ч нэгдэх ажиллагаа жил хагасын турш үргэлжилсэн. Гол асуудал нь гүйцэтгэлийг сайжруулахад ашигладаг криптограф функцүүдийн өмчлөлийн хэрэгжилттэй холбоотой байв. 2019 оны есдүгээр сард удаан хэлэлцээ хийсний дараа ийм болсон буулт хийх шийдвэр гаргасан WireGuard-н хөгжүүлэгчид гүйцэтгэл болон ерөнхий аюулгүй байдлын чиглэлээр гомдол гаргаж байгаа цөмд байгаа Crypto API функцүүдэд засваруудыг орчуулах. Гэвч тэд WireGuard крипто функцуудыг тусад нь доод түвшний цайрын API болгон салгаж, эцэст нь цөм рүү шилжүүлэхээр шийджээ. Арваннэгдүгээр сард цөмийн хөгжүүлэгчид амлалтаа биелүүлж, зөвшөөрсөн Кодын хэсгийг цайраас үндсэн цөм рүү шилжүүлэх. Жишээлбэл, Crypto API дээр орсон WireGuard-д бэлтгэсэн ChaCha20 ба Poly1305 алгоритмуудын хурдан хэрэгжилт.

Эцэст нь, 9 оны 2019-р сарын XNUMX-нд Линуксийн цөмийн сүлжээний дэд системийг хариуцсан Дэвид С.Миллер хүлээн зөвшөөрсөн нет-дараагийн салбар руу засварууд WireGuard төслөөс VPN интерфейсийг хэрэгжүүлснээр.

Өнөөдөр, 29 оны 2020-р сарын XNUMX-нд өөрчлөлтүүд нь цөмд оруулахын тулд Линус руу шилжсэн.

VPN WireGuard нь Linux цөм 5.6-д багтсан болно

Бусад VPN шийдлүүдээс WireGuard-ийн давуу тал:

  • Хэрэглэхэд хялбар.
  • Орчин үеийн криптографийг ашигладаг: Дуу чимээний протоколын хүрээ, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF гэх мэт.
  • Авсаархан, уншигдахуйц код, эмзэг байдлыг судлахад хялбар.
  • Маш сайн гүйцэтгэл.
  • Тодорхой бөгөөд дэлгэрэнгүй тодорхойлолт.

WireGuard-ын бүх үндсэн логик нь 4000-аас бага мөр кодыг эзэлдэг бол OpenVPN болон IPSec нь хэдэн зуун мянган мөр шаарддаг.

"WireGuard нь сүлжээний интерфэйс бүрд хувийн түлхүүр хавсаргаж, нийтийн түлхүүрүүдийг хооронд нь холбохыг хамарсан шифрлэлтийн түлхүүрийн чиглүүлэлтийн ойлголтыг ашигладаг. SSH-тэй төстэй байдлаар холболт үүсгэхийн тулд нийтийн түлхүүрүүдийг солилцдог. Түлхүүрүүдийг тохиролцож, хэрэглэгчийн орон зайд тусдаа демон ажиллуулахгүйгээр холбогдохын тулд Noise_IK механизмаас Дуу чимээний протоколын хүрээSSH дээр зөвшөөрөгдсөн_түлхүүрүүдийг хадгалахтай адил. Өгөгдөл дамжуулалтыг UDP пакетуудад капсулжуулах замаар гүйцэтгэдэг. Үйлчлүүлэгчийг автоматаар дахин тохируулах замаар холболтыг салгахгүйгээр VPN серверийн IP хаягийг (роуминг) өөрчлөхийг дэмждэг, - Тэр бичдэг Нээлттэй сүлжээ.

Шифрлэлтийн хувьд ашиглаж байна урсгалын шифр ChaCha20 ба мессежийн баталгаажуулалтын алгоритм (MAC) Poly1305Даниел Бернштейн зохион бүтээсэн (Даниел Ж. Бернштейн), Таня Ланге, Питер Швабе нар. ChaCha20 ба Poly1305 нь AES-256-CTR ба HMAC-ийн илүү хурдан бөгөөд аюулгүй аналогууд болж байрладаг бөгөөд програм хангамжийн хэрэгжилт нь тусгай техник хангамж ашиглахгүйгээр тогтмол гүйцэтгэлийн цагийг хангах боломжийг олгодог. Хуваалцсан нууц түлхүүрийг үүсгэхийн тулд зууван муруй Диффи-Хеллман протоколыг хэрэгжүүлэхэд ашигладаг. Муруй25519, мөн Даниел Бернштейн санал болгосон. Хэшинд ашигладаг алгоритм нь BLAKE2 (RFC7693)".

Результаты гүйцэтгэлийн туршилтууд албан ёсны вэбсайтаас:

зурвасын өргөн (мегабит/с)
VPN WireGuard нь Linux цөм 5.6-д багтсан болно

Пинг (мс)
VPN WireGuard нь Linux цөм 5.6-д багтсан болно

Туршилтын тохиргоо:

  • Intel Core i7-3820QM болон Intel Core i7-5200U
  • Гигабит картууд Intel 82579LM болон Intel I218LM
  • Линуксийн 4.6.1
  • WireGuard тохиргоо: MAC-д зориулсан Poly256-тай 20 бит ChaCha1305
  • Эхний IPsec тохиргоо: MAC-д зориулсан Poly256-тай 20 битийн ChaCha1305
  • Хоёр дахь IPsec тохиргоо: AES-256-GCM-128 (AES-NI-тай)
  • OpenVPN тохиргоо: HMAC-SHA256-2, UDP горимтой AES 256 битийн эквивалент шифрийн багц
  • Гүйцэтгэлийг ашиглан хэмжсэн iperf3, 30 минутын дундаж үр дүнг харуулна.

Онолын хувьд WireGuard нь сүлжээний стект нэгдсэний дараа илүү хурдан ажиллах ёстой. Гэвч бодит байдал дээр энэ нь цөмд суулгасан Crypto API криптограф функц руу шилжсэнтэй холбоотой байх албагүй. Магадгүй тэдгээр нь бүгд эх WireGuard-ын гүйцэтгэлийн түвшинд хараахан оновчтой болоогүй байна.

"Миний бодлоор WireGuard нь ерөнхийдөө хэрэглэгчдэд тохиромжтой. Доод түвшний бүх шийдвэрийг техникийн тодорхойлолтод гаргадаг тул ердийн VPN дэд бүтцийг бэлтгэх үйл явц хэдхэн минут болно. Тохиргоог эвдэх нь бараг боломжгүй юм - бичсэн 2018 онд Habré дээр. - Суулгах үйл явц дэлгэрэнгүй тайлбарласан албан ёсны вэбсайт дээр би маш сайн гэдгийг тусад нь тэмдэглэхийг хүсч байна OpenWRT дэмжлэг. Түлхүүрүүдийн хуваарилалтыг арилгаснаар кодын суурийн энэхүү ашиглахад хялбар, нягтралд хүрсэн. Ямар ч нарийн төвөгтэй гэрчилгээний систем байхгүй бөгөөд энэ бүх корпорацийн аймшигт байдал; богино шифрлэлтийн түлхүүрүүд нь SSH түлхүүрүүдтэй адил тархсан."

WireGuard төсөл нь 2015 оноос хойш хөгжиж байгаа бөгөөд аудитад хамрагдсан ба албан ёсны баталгаажуулалт. WireGuard-н дэмжлэгийг NetworkManager болон systemd-д нэгтгэсэн бөгөөд цөмийн засварууд нь Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph болон ALT-ийн үндсэн тархалтад багтсан болно.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх