В ядро Linux 5.6 включили VPN WireGuard

Сегодня Линус перенёс к себе ветку net-next с VPN-интерфейсами WireGuard. Об этом событии njoftuan в списке рассылки WireGuard.

В ядро Linux 5.6 включили VPN WireGuard

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

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

Несмотря на пожелание Линуса, слияние затянулось на полтора года. Основная проблема оказалась в привязке к собственным реализациям криптографических функций, которые применялись для повышения производительности. После длительных переговоров в сентябре 2019 года было принято компромиссное решение перевести патчи на имеющиеся в ядре функции Crypto API, к которым у разработчиков WireGuard есть претензии в области производительности и общей безопасности. Но решили нативные криптофункции WireGuard выделить в отдельный низкоуровневые Zinc API и со временем портировать их в ядро. В ноябре разработчики ядра сдержали обещание и согласились перенести в основное ядро часть кода из Zinc. Например, в Crypto API are packages with proprietary NVIDIA drivers. For systems with NVIDIA graphics chips, free "Nouveau" drivers continue to be offered by default, while proprietary drivers are available as an option for quick installation after the installation is completed; подготовленные в WireGuard быстрые реализации алгоритмов ChaCha20 и Poly1305.

В конце концов, 9 декабря 2019 года Дэвид Миллер (David S. Miller), отвечающий за сетевую подсистему ядра Linux, pranoi si pjesë e degës net-next patches с реализацией VPN-интерфейса от проекта WireGuard.

А сегодня 29 января 2020 года изменения ушли к Линусу для включения в ядро.

В ядро Linux 5.6 включили VPN WireGuard

Заявленные преимущества WireGuard над другими VPN решениями:

  • Простой в использовании.
  • Использует современную криптографию: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF и т.д.
  • Компактный читаемый код, проще исследовать на уязвимости.
  • Performancë e lartë.
  • Чёткая и проработанная спецификация.

Вся основная логика WireGuard занимает менее 4000 строк кода, тогда как OpenVPN и IPSec это сотни тысяч строк.

«В WireGuard применяется концепция маршрутизации по ключам шифрования, которая подразумевает привязку к каждому сетевому интерфейсу закрытого ключа и применение для связывания открытых ключей. Обмен открытыми ключами для установки соединения производится по аналогии с SSH. Для согласования ключей и соединения без запуска отдельного демона в пространстве пользователя применяется механизм Noise_IK из Noise Protocol Framework, похожий на поддержание authorized_keys в SSH. Передача данных осуществляется через инкапсуляцию в пакеты UDP. Поддерживается смена IP-адреса VPN-сервера (роуминг) без разрыва соединения с автоматической перенастройкой клиента, — CNBC, në periudhën nga 2000 deri në 2018 Facebook, Alphabet, Microsoft, Apple dhe Amazon kanë punësuar më shumë se një milion punonjës të rinj. Të tilla biznese akumullojnë mjaft burime, përveç aktivitetit të tyre kryesor, për të realizuar kërkime dhe zhvillime masive në fusha të reja, ndonjëherë me rrezikshmëri të lartë. Për më tepër, kompanitë formojnë dhe ekosistemin e tyre, brenda të cilit përdoruesit i zgjidhin një gamë të gjerë problemesh - porositin menjëherë të gjitha produktet e nevojshme, nga ushqimi deri te teknika, në Amazon. Sipas parashikimeve të analistëve, deri në vitin 2021 ai Opennet.

Për enkriptimin përdoret rrjedha e enkriptimit ChaCha20 dhe algoritmi i autentifikimit të mesazheve (MAC) Poly1305, të zhvilluar nga Daniel Bernstein (Daniel J. Bernstein), Таней Ланге (Tanja Lange) и Питером Швабе (Peter Schwabe). ChaCha20 и Poly1305 позиционируются как более быстрые и безопасные аналоги AES-256-CTR и HMAC, программная реализация которых позволяет добиться фиксированного времени выполнения без задействования специальной аппаратной поддержки. Для генерации совместного секретного ключа применяется протокол Диффи-Хеллмана на эллиптических кривых в реализации Curve25519, также предложенной Дэниелом Бернштейном. Для хеширования используются алгоритм BLAKE2s (RFC7693)».

Rezultatet тестов производительности с официального сайта:

Пропускная способность (мегабит/с)
В ядро Linux 5.6 включили VPN WireGuard

Пинг (мс)
В ядро Linux 5.6 включили VPN WireGuard

Тестовая конфигурация:

  • Intel Core i7-3820QM и Intel Core i7-5200U
  • Гигабитные карты Intel 82579LM и Intel I218LM
  • Linux 4.6.1
  • Конфигурация WireGuard: 256-битный ChaCha20 с Poly1305 для MAC
  • Первая конфигурация IPsec: 256-битный 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 инфраструктуры занимает всего несколько минут. Напутать в конфигурации практически невозможно, — kemi shkruar на Хабре в 2018 году. — Процесс установки детально описан на официальном сайте, отдельно хочется отметить отличную поддержку OpenWRT. Такой простоты использования и компактности кодовой базы удалось достичь за счёт отказа от дистрибьюции ключей. Здесь нет сложной системы сертификатов и всего этого корпоративного ужаса, короткие ключи шифрования распространяются примерно как SSH-ключи».

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

Burimi: habr.com

Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы 🔥 Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы | ProHoster