Südamikusse Linux 5.6-toega VPN WireGuard

Täna kolis Linus VPN-liidestega net-next haru enda juurde WireGuard. Selle sündmuse kohta сообщили meililistis WireGuard.

Südamikusse Linux 5.6-toega VPN WireGuard

В данный момент продолжается сбор кода для нового ядра Linux 5.6. WireGuard — быстрый VPN нового поколения, в котором реализована современная криптография. Он изначально разрабатывался как более простая и удобная альтернатива существующим VPN. Автор — канадский специалист по информационной безопасности Джейсон Доненфилд (Jason A. Donenfeld). В августе 2018 года WireGuard saanud kiitust от Линуса Торвальдса. Примерно в то время началась работа по включению VPN в ядро Linux. Процесс немного затянулся.

«Вижу, что Джейсон сделал пул-реквест для включения WireGuard в ядро, — писал Линус 2 августа 2018 года. — Могу я просто ещё раз заявить о своей любви к этому VPN и надеяться на скорое слияние? Может, код и не идеален, но я просмотрел его, и по сравнению с ужасами OpenVPN и IPSec, это настоящее произведение искусства».

Vaatamata Linuse soovile venis ühinemine poolteist aastat. Peamine probleem osutus seotud krüptograafiliste funktsioonide patenteeritud rakendustega, mida kasutati jõudluse parandamiseks. Pärast pikki läbirääkimisi 2019. aasta septembris see nii oli tehti kompromissotsus перевести патчи на имеющиеся в ядре функции Crypto API, к которым у разработчиков WireGuard есть претензии в области производительности и общей безопасности. Но решили нативные криптофункции WireGuard выделить в отдельный низкоуровневые Zinc API и со временем портировать их в ядро. В ноябре разработчики ядра сдержали обещание и nõus kanda osa koodist tsingist põhikernelisse. Näiteks Crypto API-s kaasatud valmistatud WireGuard ChaCha20 ja Poly1305 algoritmide kiire implementatsioon.

В конце концов, 9 декабря 2019 года Дэвид Миллер (David S. Miller), отвечающий за сетевую подсистему ядра Linux, aktsepteeritud net-järgmisse harusse plaastrid projektist VPN-liidese juurutamisega WireGuard.

Ja täna, 29. jaanuaril 2020, läksid muudatused Linusele tuumasse kaasamiseks.

Südamikusse Linux 5.6-toega VPN WireGuard

Taotletud eelised WireGuard võrreldes teiste VPN-lahendustega:

  • Lihtne kasutada.
  • Kasutab kaasaegset krüptograafiat: Noise protokolli raamistik, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF jne.
  • Kompaktne, loetav kood, mida on lihtsam turvaaukude tuvastamiseks uurida.
  • Suur jõudlus.
  • Selge ja viimistletud spetsifikatsioon.

Kogu elementaarne loogika WireGuard занимает менее 4000 строк кода, тогда как OpenVPN и IPSec это сотни тысяч строк.

"AT WireGuard Kasutusel on krüpteerimisvõtme marsruutimise kontseptsioon, mis hõlmab privaatvõtme sidumist iga võrguliidesega ja selle kasutamist avaliku võtme sidumiseks. Avalikke võtmeid vahetatakse ühenduse loomiseks sarnaselt SSH-ga. Võtmete üle läbirääkimiseks ja ühenduse loomiseks ilma eraldi deemonit kasutajaruumis käivitamata kasutatakse Noise_IK mehhanismi Müraprotokolli raamistiksarnane SSH-s volitatud_võtmete säilitamisega. Andmeedastus toimub UDP-pakettidesse kapseldamise teel. See toetab VPN-serveri IP-aadressi muutmist (rändlus) ilma ühendust katkestamata kliendi automaatse ümberkonfigureerimisega, - kirjutab Opennet.

Krüpteerimiseks kasutatud voo šifr ChaCha20 ja sõnumi autentimisalgoritm (MAC) Poly1305, kujundanud Daniel Bernstein (Daniel J. Bernstein), Tanja Lange ja Peter Schwabe. ChaCha20 ja Poly1305 on positsioneeritud kui AES-256-CTR ja HMAC kiiremad ja turvalisemad analoogid, mille tarkvaraline teostus võimaldab saavutada fikseeritud täitmisaja ilma spetsiaalset riistvaralist tuge kasutamata. Jagatud salavõtme genereerimiseks kasutatakse juurutamisel elliptilise kõvera Diffie-Hellmani protokolli Curve25519, mille pakkus välja ka Daniel Bernstein. Räsimisel kasutatav algoritm on BLAKE2s (RFC7693)'.

Järeldused jõudlustestid ametlikult veebisaidilt:

Ribalaius (megabit/s)
Südamikusse Linux 5.6-toega VPN WireGuard

Ping (ms)
Südamikusse Linux 5.6-toega VPN WireGuard

Testi konfiguratsioon:

  • Intel Core i7-3820QM ja Intel Core i7-5200U
  • Gigabit kaardid Intel 82579LM ja Intel I218LM
  • Linux 4.6.1
  • Konfiguratsioon WireGuard: 256-битный ChaCha20 с Poly1305 для MAC
  • Esimene IPseci konfiguratsioon: 256-bitine ChaCha20 koos Poly1305-ga MAC-i jaoks
  • Teine IPseci konfiguratsioon: AES-256-GCM-128 (koos AES-NI-ga)
  • Konfiguratsioon OpenVPN: эквивалентный шифронабор 256-битного AES с HMAC-SHA2-256, режим UDP
  • Toimivust mõõdeti kasutades iperf3, näitab keskmist tulemust 30 minuti jooksul.

Теоретически, после интеграции в сетевой стек WireGuard должен работать ещё быстрее. Но в реальности это не обязательно будет так из-за перехода на встроенные в ядро криптографические функции Crypto API. Возможно, не все из них ещё оптимизированы до уровня быстродействия нативного WireGuard.

«С моей точки зрения, WireGuard вообще идеален для пользователя. Все низкоуровневые решения приняты в спецификации, поэтому процесс подготовки типичной VPN инфраструктуры занимает всего несколько минут. Напутать в конфигурации практически невозможно, — писали Habrel 2018. aastal. — Paigaldusprotsess üksikasjalikult kirjeldatud ametlikul veebisaidil tahaksin eraldi märkida suurepärast OpenWRT tugi. Koodibaasi selline kasutuslihtsus ja kompaktsus saavutati võtmete levitamise kaotamisega. Puudub keeruline sertifikaadisüsteem ja kogu see ettevõtte õudus; lühikesi krüptimisvõtmeid levitatakse sarnaselt SSH-võtmetele.

Projekt WireGuard развивается с 2015 года, он прошёл аудит и ametlik kontrollTugi WireGuard интегрирована в NetworkManager и systemd, а патчи для ядра входят в базовый состав дистрибутивов Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph и ALT.

Allikas: www.habr.com

Ostke DDoS-kaitsega saitide jaoks usaldusväärne hostimine, VPS VDS-serverid 🔥 Osta usaldusväärne veebimajutus DDoS-kaitsega, VPS VDS serverid | ProHoster