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 шешімдеріне қарағанда мәлімделген артықшылықтары:

  • Пайдалану оңай.
  • Заманауи криптографияны қолданады: Шуыл протоколының негізі, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF және т.б.
  • Ықшам, оқылатын код, осалдықтарды зерттеу оңай.
  • Жоғары өнімділік.
  • Түсінікті және егжей-тегжейлі спецификация.

WireGuard-тың барлық негізгі логикасы 4000 жолдан аз кодты алады, ал OpenVPN және IPSec жүздеген мың жолдарды қажет етеді.

«WireGuard шифрлау кілтін бағыттау тұжырымдамасын пайдаланады, ол әрбір желі интерфейсіне жеке кілтті қосуды және оны біріктіру үшін ашық кілттерді пайдалануды қамтиды. Ашық кілттер SSH-ге ұқсас жолмен байланыс орнату үшін алмасады. Пайдаланушы кеңістігінде жеке демонды іске қоспай-ақ кілттерді келіссөздер және қосылу үшін Noise_IK механизмі Шу протоколының негізіSSH жүйесінде авторизацияланған_кілттерді сақтауға ұқсас. Деректерді беру UDP пакеттерінде инкапсуляция арқылы жүзеге асырылады. Ол VPN серверінің (роуминг) IP мекенжайын клиентті автоматты түрде қайта конфигурациялау арқылы қосылымды ажыратпай өзгертуді қолдайды, - Ол былай деп жазады Opennet.

Шифрлау үшін пайдаланылады ағындық шифр ChaCha20 және хабарламаның аутентификация алгоритмі (MAC) Poly1305, Дэниел Бернштейн әзірлеген (Даниэль Дж. Бернштейн), Танья Ланге және Питер Швабе. ChaCha20 және Poly1305 AES-256-CTR және HMAC жылдам және қауіпсіз аналогтары ретінде орналастырылған, бағдарламалық қамтамасыз етуді іске асыру арнайы аппараттық қолдауды қолданбай-ақ бекітілген орындау уақытына қол жеткізуге мүмкіндік береді. Ортақ құпия кілтті генерациялау үшін жүзеге асыруда эллиптикалық қисық Диффи-Хеллман протоколы қолданылады. Curve25519, сонымен қатар Даниэль Бернштейн ұсынған. Хэштеу үшін қолданылатын алгоритм BLAKE2 (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 жылы Хабреде. - Орнату процесі егжей-тегжейлі сипатталған Ресми веб-сайтта мен тамашаны бөлек атап өткім келеді OpenWRT қолдауы. Бұл пайдаланудың қарапайымдылығы мен кодтық базаның ықшамдылығына кілттердің таралуын жою арқылы қол жеткізілді. Күрделі сертификат жүйесі жоқ және бұл корпоративті қорқыныш; қысқа шифрлау кілттері SSH кілттері сияқты таратылады ».

WireGuard жобасы 2015 жылдан бері дамып келеді, ол тексерілді және ресми тексеру. WireGuard қолдауы NetworkManager және systemd бағдарламаларына біріктірілген және ядро ​​патчтары Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph және ALT негізгі дистрибутивтеріне енгізілген.

Ақпарат көзі: www.habr.com

пікір қалдыру