Täna kolis Linus VPN-liidestega net-next haru enda juurde . Selle sündmuse kohta meililistis WireGuard.

В данный момент продолжается сбор кода для нового ядра Linux 5.6. WireGuard — быстрый VPN нового поколения, в котором реализована современная криптография. Он изначально разрабатывался как более простая и удобная альтернатива существующим VPN. Автор — канадский специалист по информационной безопасности Джейсон Доненфилд (Jason A. Donenfeld). В августе 2018 года WireGuard от Линуса Торвальдса. Примерно в то время началась работа по включению 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 перевести патчи на имеющиеся в ядре функции Crypto API, к которым у разработчиков WireGuard есть претензии в области производительности и общей безопасности. Но решили нативные криптофункции WireGuard выделить в отдельный низкоуровневые Zinc API и со временем портировать их в ядро. В ноябре разработчики ядра сдержали обещание и kanda osa koodist tsingist põhikernelisse. Näiteks Crypto API-s valmistatud WireGuard ChaCha20 ja Poly1305 algoritmide kiire implementatsioon.
В конце концов, 9 декабря 2019 года Дэвид Миллер (David S. Miller), отвечающий за сетевую подсистему ядра Linux, net-järgmisse harusse projektist VPN-liidese juurutamisega WireGuard.
Ja täna, 29. jaanuaril 2020, läksid muudatused Linusele tuumasse kaasamiseks.

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 .
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 sarnane 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, - Opennet.
Krüpteerimiseks voo šifr ja sõnumi autentimisalgoritm (MAC) , kujundanud Daniel 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 , mille pakkus välja ka Daniel Bernstein. Räsimisel kasutatav algoritm on '.
Järeldused ametlikult veebisaidilt:
Ribalaius (megabit/s)

Ping (ms)

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 ametlikul veebisaidil tahaksin eraldi märkida suurepärast . 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 года, он прошёл аудит и Tugi WireGuard интегрирована в NetworkManager и systemd, а патчи для ядра входят в базовый состав дистрибутивов Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph и ALT.
Allikas: www.habr.com
