Днес Линус премести net-next клона с VPN интерфейси към себе си . За това събитие в пощенския списък WireGuard.

Събирането на код за новото ядро в момента продължава. Linux 5.6. WireGuard — бърза VPN мрежа от следващо поколение, която имплементира модерна криптография. Първоначално е разработена като по-проста и по-удобна алтернатива на съществуващите VPN мрежи. Разработена е от канадския специалист по информационна сигурност Джейсън А. Доненфелд. През август 2018 г. WireGuard От Линус Торвалдс. Приблизително по това време започна работата по включването на VPN в ядрото. LinuxПроцесът отне малко повече време.
Виждам, че Джейсън е направил заявка за изтегляне, за да включи WireGuard „в ядрото“, написа Линус на 2 август 2018 г. „Мога ли просто да повторя любовта си към тази VPN и да се надявам на бързо сливане? Кодът може да не е перфектен, но го разгледах и го сравних с ужасите“ OpenVPN и IPSec, това е истинско произведение на изкуството.“
Въпреки желанието на Линус, сливането се проточи година и половина. Основният проблем се оказа свързан със собствени реализации на криптографски функции, които се използват за подобряване на производителността. След продължителни преговори през септември 2019 г. беше така превеждайте пачове към функциите на Crypto API, налични в ядрото, до които разработчиците имат достъп WireGuard Имаше някои оплаквания относно производителността и цялостната сигурност. Но вградените крипто функции решиха проблема. WireGuard отделни нисконивови Zinc API и пренасянето им към ядрото с течение на времето. През ноември разработчиците на ядрото спазиха обещанието си и прехвърлете част от кода от Zinc към основното ядро. Например в Crypto API приготвени в WireGuard Бързи имплементации на алгоритмите ChaCha20 и Poly1305.
Накрая, на 9 декември 2019 г., Дейвид С. Милър, който е отговорен за мрежовата подсистема на ядрото, Linux, към нетния-следващ клон с внедряването на VPN интерфейса от проекта WireGuard.
И днес, 29 януари 2020 г., промените отидоха в Linus за включване в ядрото.

Декларирани обезщетения WireGuard в сравнение с други VPN решения:
- Лесен за използване.
- Използва модерна криптография: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF и др.
- Компактен четим код, по-лесен за изследване за уязвимости.
- Висока производителност.
- Ясно и подробно .
Цялата основна логика WireGuard отнема по-малко от 4000 реда код, докато OpenVPN а IPSec е стотици хиляди редове.
"AT WireGuard Използва се концепцията за маршрутизиране на ключове за криптиране, която включва обвързване на частен ключ с всеки мрежов интерфейс и използването му за обвързване с публичен ключ. Публичните ключове се обменят за установяване на връзка по начин, подобен на SSH. За договаряне на ключове и установяване на връзка без стартиране на отделен демон в потребителското пространство, се използва механизмът Noise_IK от подобно на поддържането на authorized_keys в SSH. Предаването на данни се осъществява чрез капсулиране в UDP пакети. Поддържа промяна на IP адреса на VPN сървъра (роуминг) без прекъсване на връзката с автоматично преконфигуриране на клиента, - Opennet.
За криптиране поточен шифър и алгоритъм за удостоверяване на съобщения (MAC) , проектирана от Даниел Бърнстейн (), Таня Ланге и Петер Швабе. ChaCha20 и Poly1305 се позиционират като по-бързи и по-безопасни аналози на AES-256-CTR и HMAC, чиято софтуерна реализация позволява постигане на фиксирано време за изпълнение без използването на специална хардуерна поддръжка. За генериране на споделен таен ключ при изпълнението се използва протоколът Diffie-Hellman с елиптична крива , също предложен от Даниел Бърнстейн. Алгоритъм, използван за хеширане ".
резултати от официалния сайт:
Широчина на честотната лента (мегабит/сек)

Пинг (ms)

Тестова конфигурация:
- Intel Core i7-3820QM и Intel Core i7-5200U
- Гигабитови карти Intel 82579LM и Intel I218LM
- Linux 4.6.1
- Конфигурация WireGuard256-битов ChaCha20 с Poly1305 за MAC
- Първа IPsec конфигурация: 256-bit ChaCha20 с Poly1305 за MAC
- Втора IPsec конфигурация: AES-256-GCM-128 (с AES-NI)
- Конфигурация OpenVPNеквивалентен набор от шифри от 256-битов AES с HMAC-SHA2-256, UDP режим
- Производителността е измерена с помощта на
iperf3, показва средния резултат за 30 минути.
Теоретично, след интегриране в мрежовия стек WireGuard би трябвало да работи дори по-бързо. Но в действителност това не е задължително да е така поради прехода към вградените криптографски функции на Crypto API. Възможно е не всички от тях все още да са оптимизирани до нивото на производителност на оригиналната версия. WireGuard.
„От моя гледна точка, WireGuard Абсолютно идеално е за потребителя. Всички решения на ниско ниво са взети предвид в спецификацията, така че настройването на типична VPN инфраструктура отнема само няколко минути. Практически е невъзможно да се обърка конфигурацията. на Хабре през 2018 г. — Процес на инсталиране на официалния уебсайт, бих искал отделно да отбележа отличното . Тази лекота на използване и компактност на кодовата база беше постигната чрез елиминиране на разпределението на ключовете. Няма сложна система за сертификати и целият този корпоративен ужас; кратките ключове за криптиране се разпространяват подобно на SSH ключовете.
Проект WireGuard се развива от 2015 г., одитиран е и . поддържа WireGuard интегриран в NetworkManager и systemd, а корекциите на ядрото са включени в основните дистрибуции Debian Нестабилни, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph и ALT.
Източник: www.habr.com
