VPN WireGuard Linux ядросуна киргизилген 5.6

Бүгүн Linus өзүнө VPN интерфейстери менен кийинки тармакты жылдырды WireGuard. Бул окуя тууралуу билдирди WireGuard почта тизмесинде.

VPN WireGuard Linux ядросуна киргизилген 5.6

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

"Мен Джейсон WireGuardды ядрого кошуу өтүнүчүн жасаганын көрүп жатам", - деп Линус 2-жылдын 2018-августунда жазган. — Мен дагы бир жолу ушул VPNге сүйүүмдү билдирип, жакында биригүүгө үмүттөнсөм болобу? Код кемчиликсиз болушу мүмкүн, бирок мен аны карап чыктым жана OpenVPN жана IPSecтин үрөй учурарына салыштырмалуу, бул чыныгы искусство чыгармасы.

Линустун каалоосуна карабай, биригүү бир жарым жылга созулду. Негизги көйгөй криптографиялык функциялардын проприетардык ишке ашырылышына байланыштуу болуп чыкты, алар аткарууну жакшыртуу үчүн колдонулган. Узакка созулган сүйлөшүүлөрдөн кийин 2019-жылы сентябрда болгон компромисстик чечим кабыл алынды WireGuard иштеп чыгуучуларынын аткаруу жана жалпы коопсуздук жаатында даттануулары бар ядродо бар Crypto API функцияларына патчтарды которуу. Бирок алар жергиликтүү WireGuard крипто функцияларын өзүнчө төмөнкү деңгээлдеги Zinc APIге бөлүп, акыры аларды ядрого өткөрүүнү чечишти. Ноябрь айында ядрону иштеп чыгуучулар убадаларын аткарышты жана макул Цинктен коддун бир бөлүгүн негизги ядрого өткөрүңүз. Мисалы, Crypto API'де киргизилген WireGuardда даярдалган ChaCha20 жана Poly1305 алгоритмдерин тез ишке ашыруу.

Акыры, 9-жылдын 2019-декабрында, Linux ядросунун тармактык подсистемасы үчүн жооптуу Дэвид С. Миллер, Мен алып тор-кийинки филиалга тактар WireGuard долбоорунан VPN интерфейсин ишке ашыруу менен.

Ал эми бүгүн, 29-жылдын 2020-январында, өзгөртүүлөр ядрого кошуу үчүн Linusка өттү.

VPN WireGuard Linux ядросуна киргизилген 5.6

WireGuard'дун башка VPN чечимдерине караганда артыкчылыктары:

  • Колдонууга оңой.
  • Заманбап криптографияны колдонот: Noise протоколунун негизи, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF ж.б.
  • Ыкчам, окула турган код, алсыздыктарды иликтөө оңой.
  • Жогорку аткаруу.
  • Ачык жана так спецификация.

WireGuardдын бардык негизги логикасы 4000 саптан азыраак кодду ээлейт, ал эми OpenVPN жана IPSec жүз миңдеген саптарды талап кылат.

“WireGuard ар бир тармак интерфейсине жеке ачкычты тиркөөнү жана аны туташтыруу үчүн ачык ачкычтарды колдонууну камтыган шифрлөөчү ачкычты багыттоо концепциясын колдонот. Коомдук ачкычтар SSHге окшош жол менен байланыш түзүү үчүн алмашылган. Ачкычтарды сүйлөшүү жана колдонуучу мейкиндигинде өзүнчө демонду иштетпестен туташуу үчүн Noise_IK механизминен Noise Protocol FrameworkSSHда авторизацияланган_ачкычтарды сактоого окшош. Маалыматтарды берүү UDP пакеттеринде инкапсуляция аркылуу ишке ашырылат. VPN серверинин (роуминг) IP дарегин кардардын автоматтык түрдө кайра конфигурациялоосу менен байланышты үзбөстөн өзгөртүүнү колдойт, - ал мындай деп жазат: Opennet.

Шифрлөө үчүн колдонулган агым шифри ЧаЧа20 жана билдирүүнүн аныктыгын текшерүү алгоритми (MAC) Poly1305, Дэниел Бернштейн тарабынан иштелип чыккан (Даниел Дж. Бернштейн), Таня Ланге жана Питер Швабе. ChaCha20 жана Poly1305 AES-256-CTR жана HMAC тезирээк жана коопсуз аналогдору катары жайгаштырылган, программалык камсыздоону ишке ашыруу атайын аппараттык колдоону колдонбостон, белгиленген аткаруу убактысына жетүүгө мүмкүндүк берет. Жалпы жашыруун ачкычты түзүү үчүн, ишке ашырууда эллиптикалык ийри Диффи-Хеллман протоколу колдонулат. Curve25519, ошондой эле Даниел Бернштейн тарабынан сунушталган. хэшдөө үчүн колдонулган алгоритм болуп саналат BLAKE2s (RFC7693)«.

натыйжалары аткаруу тесттери расмий сайтынан:

Өткөрүү жөндөмдүүлүгү (мегабит/сек)
VPN WireGuard Linux ядросуна киргизилген 5.6

Пинг (мс)
VPN WireGuard Linux ядросуна киргизилген 5.6

Сыноо конфигурациясы:

  • Intel Core i7-3820QM жана Intel Core i7-5200U
  • Гигабит карталары Intel 82579LM жана Intel I218LM
  • Linux 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 базалык дистрибуцияларына киргизилген.

Source: www.habr.com

Комментарий кошуу