WireGuard - WireGuard
Оригинальный автор (ы) | Джейсон А. Доненфельд |
---|---|
Разработчики) | Джейсон А. Доненфельд |
Стабильный выпуск | 0.0.20190913[1] / 13 сентября 2019 |
Репозиторий | |
Написано в | C (Linux модуль ядра, OpenBSD драйвер ядра), Идти (реализация в пользовательском пространстве) |
Операционная система | [2][3][а] |
Тип | Виртуальная частная сеть |
Лицензия | GPLv2 |
Интернет сайт | www |
WireGuard это бесплатно и с открытым исходным кодом программное приложение и протокол связи что реализует виртуальная частная сеть (VPN) методы создания безопасных точка-точка связи в направлен или же мостовой конфигурации. Он работает как модуль внутри Ядро Linux (или ядро BSD) и нацелен на лучшую производительность и большую экономию энергии, чем IPsec и OpenVPN протоколы туннелирования.[4] Он был написан Джейсоном А. Доненфельдом и опубликован под Стандартная общественная лицензия GNU (GPL) версия 2.[5] Версия программного обеспечения для Linux достигла стабильного производственного выпуска и была включена в выпуск ядра Linux в конце марта 2020 года.[3]
Признание
WireGuard стремится обеспечить простую и эффективную реализацию виртуальной частной сети. Обзор 2018 г. Ars Technica заметил, что популярные технологии VPN, такие как OpenVPN и IPsec часто сложны в настройке, легко отсоединяются (при отсутствии дополнительной настройки), требуют значительного времени для согласования повторных подключений, могут использовать устаревшие шифры и имеют относительно массивные базы кода, содержащие более 400000 и 600000 строк кода соответственно, что затрудняет отладку .[6]
Дизайн WireGuard направлен на уменьшение этих проблем, стремясь сделать туннель более безопасным и простым в управлении по умолчанию. Используя управление версиями пакетов криптографии, он фокусируется на шифрах, которые считаются одними из самых безопасных современных методов шифрования, и во время Ars Technica обзор имел кодовую базу около 4000 строк кода ядра, около 1% OpenVPN или же IPsec, изготовление аудит безопасности легче, и хвалят Ядро Linux создатель Линус Торвальдс по сравнению с OpenVPN и IPsec как «произведением искусства».[7] Ars Technica сообщил, что при тестировании, стабильные туннели были легко созданы с помощью WireGuard, по сравнению с альтернативами, и прокомментировал, что было бы «трудно вернуться» к длительным задержкам повторного подключения по сравнению с мгновенным повторным подключением WireGuard «без излишеств».[6]
Протокол
WireGuard использует следующее:[5]
- Подкрутка25519 за обмен ключами
- ChaCha20 для шифрования
- Поли1305 за аутентификация данных
- SipHash для ключей хеш-таблицы
- BLAKE2s за хеширование
- Только на основе UDP.[8]
В мае 2019 года исследователи из INRIA опубликовал проверенное машиной доказательство WireGuard, созданное с использованием CryptoVerif помощник доказательства.[9]
Шифрование
WireGuard поддерживает только ChaCha20.
WireGuard поддерживает Pre-shared Symmetric, который включен для смягчения любых будущих достижений в области квантовых вычислений. В краткосрочной перспективе, если предварительно общий симметричный ключ будет скомпрометирован, ключи Curve25519 по-прежнему обеспечивают более чем достаточную защиту.
Сети
WireGuard работает только поверх UDP.
WireGuard полностью поддерживает IPv6 как внутри, так и за пределами туннеля. Поддерживает только слой 3 для обоих IPv4 и IPv6 и может инкапсулировать v4-in-v6 и наоборот.[10]
WireGuard поддерживает несколько топологии:
- Точка-точка
- Звезда (Сервер / клиент)
- Конечную точку клиента не нужно определять до того, как клиент начнет отправлять данные.
- Конечные точки клиента могут быть предварительно определены статически.
- Сетка
С точка-точка поддерживается, могут быть созданы другие топологии, но не в том же туннеле.
Расширяемость
WireGuard предназначен для расширения сторонними программами и скриптами. Это было использовано для дополнения WireGuard различными функциями, включая более удобный интерфейс управления (включая более простую настройку ключей), ведение журнала, динамические обновления межсетевого экрана и LDAP интеграция.
Исключение таких сложных функций из минимальной базовой кодовой базы повышает ее стабильность и безопасность.
История
Самые ранние снимки кодовой базы существуют с 30 июня 2016 года.[11] Четыре первых последователя WireGuard были поставщиками услуг VPN. Муллвад,[12] AzireVPN,[13] IVPN[14] и криптошторм.[15] WireGuard получил пожертвования от Mullvad, Частный доступ в Интернет, IVPN, то Фонд NLnet[16] а теперь еще и из OVPN.[17]
По состоянию на июнь 2018 г.[Обновить] разработчики WireGuard советуют рассматривать код и протокол как экспериментальные и предупреждают, что они еще не достигли стабильной версии, совместимой с CVE отслеживание любых уязвимостей безопасности, которые могут быть обнаружены.[18][19]
9 декабря 2019 года Дэвид Миллер - основной разработчик сетевого стека Linux - принял патчи WireGuard в дерево сопровождающих net-next для включения в грядущее ядро.[20][21][22]
28 января 2020 г. Линус Торвальдс объединил дерево net-next Дэвида Миллера, и WireGuard вошел в основное дерево ядра Linux.[23]
20 марта 2020 г. Debian разработчики включили параметры сборки модуля для WireGuard в конфигурации своего ядра для версии Debian 11 (тестирование).[24]
29 марта 2020 года WireGuard был включен в дерево выпусков Linux 5.6. Версия программного обеспечения для Windows остается на стадии бета-тестирования.[3]
30 марта 2020 г. Android разработчики добавили встроенную поддержку ядра для WireGuard в свой общий образ ядра.[25]
22 апреля 2020 г. Сетевой менеджер застройщик Beniamino Galvani объединился GUI поддержка WireGuard. [26]
12 мая 2020 года Мэтт Данвуди предложил патчи для встроенной поддержки ядра WireGuard в OpenBSD.[27]
22 июня 2020 года, после работы Мэтта Данвуди и Джейсона А. Доненфельда, поддержка WireGuard была импортирована в OpenBSD.[28]
23 ноября 2020 года Джейсон А. Доненфельд выпустил обновление Windows пакет улучшающий установку, стабильность, РУКА поддерживать, предприятие Особенности.[29]
29 ноября 2020 года поддержка WireGuard была импортирована в FreeBSD 13 ядро.[30]
Прием
Орегон сенатор Рон Уайден рекомендовал Национальный институт стандартов и технологий (NIST), что они оценивают WireGuard как замену существующим технологиям, таким как IPsec и OpenVPN.[31]
Реализации
Реализации протокола WireGuard включают:
- Первоначальная реализация Доненфельда, написанная на C и Go.[32]
- Cloudflare 's BoringTun, a пространство пользователя реализация написана в Ржавчина.[33][34]
- Реализация Мэтта Данвуди для OpenBSD, написанная на C.[35]
- Реализация wg (4) Ryota Ozaki для NetBSD написана на C.[36]
Программы пользовательского пространства, поддерживающие WireGuard
Программы пользовательского пространства, поддерживающие WireGuard, включают:
- Сетевой менеджер с версии 1.16[37]
- systemd с версии 237[38]
- Intel ConnMan с версии 1.38[39]
- Mozilla VPN [40]
- NordVPN через Nordlynx[41]
- PiVPN с 17 октября 2019 г.[42]
- pfSense упаковка.[43]
- Сеть NOIA [44]
- Частный доступ в Интернет VPN с 10 апреля 2020 г.[45]
- Surfshark с октября 2020 года[46]
- Mistborn (программное обеспечение) VPN с марта 2020 г.[47]
- Проект OpenWrt: WireGuard
- oVPN с февраля 2020 г.[48], запуск в 2021 г.[49]
- Torguard с 2020 года[50]
- VPN Безлимитный с ноября 2019 г.[51]
- Windscribe в 2020 году[52]
- Vypr VPN с мая 2020 года[53]
- Oracle Linux с Unbreakable Enterprise Kernel Release 6 Update 1, с ноября 2020 г.[54]
- Veeam Powered Network v2, с мая 2019 г.[55]
Смотрите также
- Сравнение услуг виртуальной частной сети
- Безопасная оболочка (SSH), криптографический сетевой протокол, используемый для защиты услуг в незащищенной сети.
Примечания
- ^ Не все платформы могут иметь текущую выпущенную версию, а некоторые могут находиться на стадии бета-тестирования.
Рекомендации
- ^ https://git.zx2c4.com/WireGuard/tag/?h=0.0.20190913; Дата обращения: 24 сентября 2019.
- ^ "Установка". WireGuard. Получено 23 апреля 2020.
- ^ а б c Солтер, Джим (30 марта 2020 г.). «WireGuard VPN делает это до версии 1.0.0 - и в следующем ядре Linux». В архиве из оригинала 31 марта 2020 г.. Получено 23 апреля 2020.
- ^ Пренил, Барт; Веркаутерен, Фредерик, ред. (11 июня 2018 г.). Прикладная криптография и сетевая безопасность. Springer. ISBN 978-3-319-93387-0. В архиве с оригинала 18 февраля 2019 г.. Получено 25 июн 2018.
- ^ а б «WireGuard: быстрый, современный, безопасный VPN-туннель». WireGuard. В архиве из оригинала 28 апреля 2018 г.. Получено 28 апреля 2018.
- ^ а б Солтер, Джим (26 августа 2018 г.). «Обзор WireGuard VPN: новый тип VPN предлагает серьезные преимущества». Ars Technica. В архиве с оригинала от 20 сентября 2018 г.
- ^ "Архив ядра Linux: Re: [GIT] Сеть".
- ^ Доненфельд, Джейсон А. «Известные ограничения - WireGuard». www.wireguard.com. Получено 1 июня 2020.
- ^ Липп, Бенджамин; Бланше, Бруно; Бхаргаван, Картикеян (2019), Механизированное криптографическое доказательство протокола виртуальной частной сети WireGuard, Отчет об исследовании RR-9269, Париж: Inria, стр. 49, хал-02100345
- ^ Доненфельд, Джейсон А. «Введение и мотивация» (PDF). WireGuard: сетевой туннель ядра нового поколения (PDF). В архиве (PDF) из оригинала от 4 марта 2018 г.
- ^ "Указатель / Монолитно-исторический /".
- ^ Мейсон, Джон (13 февраля 2019 г.). "Mullvad Review". thebestwpn. 2. Сильные протоколы туннелирования - OpenVPN и WireGuard. В архиве с оригинала на 24 июня 2019 г.. Получено 8 апреля 2019.
- ^ Мейсон, Джон (19 февраля 2019 г.). «Обзор AzireVPN». thebestvpn. 2. Впечатляющие протоколы и шифрование. В архиве с оригинала 8 мая 2019 г.. Получено 8 апреля 2019.
- ^ Пестелл, Ник (11 декабря 2018 г.). "Представляем Wireguard". Получено 22 сентября 2019.
- ^ "Добавлена поддержка WireGuard!". блог cryptostorm. 5 апреля 2019. В архиве из оригинала на 9 декабря 2019 г.. Получено 9 декабря 2019.
- ^ «Пожертвования». WireGuard. В архиве из оригинала 28 апреля 2018 г.. Получено 28 апреля 2018.
- ^ «OVPN делает пожертвования в поддержку WireGuard». OVPN. 23 марта 2020.
- ^ «О проекте». WireGuard. Работа в процессе. В архиве с оригинала 25 июня 2018 г.. Получено 25 июн 2018.
- ^ "Установка". WireGuard. Архивировано из оригинал 26 июня 2018 г.. Получено 26 июн 2018.
- ^ "e7096c131e5161fa3b8e52a650d7719d2857adfd - pub / scm / linux / kernel / git / davem / net-next - Git в Google". kernel.googlesource.com.
- ^ «LKML: Дэвид Миллер: Re: [PATCH net-next v2] net: безопасный сетевой туннель WireGuard». lkml.org.
- ^ "[ОБЪЯВЛЕНИЕ] WireGuard объединился с net-next, на пути к Linux 5.6". 9 января 2020 г. Архивировано с оригинал 9 января 2020 г.
- ^ Торвальдс, Линус. "индекс: ядро / git / torvalds / linux.git". Дерево исходных текстов ядра Linux. Kernel.org. Получено 2 февраля 2020.
- ^ "драйверы / сеть: включить WIREGUARD как модуль".
- ^ "ANDROID: GKI: включить CONFIG_WIREGUARD".
- ^ "объединить ветку 'bg / wireguard' (d321d0df) · Коммит · GNOME / апплет-менеджер сети". gitlab.gnome.org. Получено 30 мая 2020.
- ^ "WireGuard для исправлений ядра OpenBSD опубликован".
- ^ "добавить wg (4), драйвер ядра для связи WireGuard vpn".
- ^ «[ОБЪЯВЛЕНИЕ] WireGuard для Windows 0.3: поддержка ARM, корпоративные функции и многое другое».
- ^ "Импорт ядра поддержки WireGuard".
- ^ «Сенатор США рекомендует NIST с открытым исходным кодом WireGuard для правительственной VPN». Фороникс. 30 июня 2018. В архиве с оригинала 5 августа 2018 г.. Получено 5 августа 2018.
- ^ Доненфельд, Джейсон (7 июня 2019 г.). «WireGuard: быстрый, современный, безопасный VPN-туннель». Получено 16 июн 2019.
- ^ Краснов, Влад (18 декабря 2018). "BoringTun, реализация WireGuard в пользовательском пространстве на Rust". Блог Cloudflare. В архиве из оригинала 4 апреля 2019 г.. Получено 29 марта 2019.
- ^ "CloudFlare запускает" BoringTun "как написанную на Rust реализация WireGuard в пользовательском пространстве". phoronix.com. Получено 29 марта 2019.
- ^ Йоханссон, Янне (21 июня 2020 г.). "WireGuard импортирован в OpenBSD".
- ^ "wg (4) - Страницы руководства NetBSD". 20 августа 2020.
- ^ Халлер, Томас (15 марта 2019 г.). «WireGuard в NetworkManager». Блоги GNOME.
- ^ Poettering, Леннарт (28 января 2018 г.). "[ОБЪЯВЛЕНИЕ] systemd v237". systemd-devel (Список рассылки).
- ^ Ларабель, Майкл (18 февраля 2020 г.). «Intel ConnMan 1.38 выпущен с поддержкой WireGuard». Фороникс.
- ^ «Mozilla VPN: защитите все свое устройство».
- ^ «Что такое NordLynx? | Служба поддержки клиентов NordVPN». support.nordvpn.com. Получено 1 сентября 2020.
- ^ "pivpn / pivpn". GitHub. Получено 30 мая 2020.
- ^ "Ascrod / pfSense-pkg-wireguard". github. 27 мая 2020. Получено 1 июня 2020.
- ^ Радзюкас, Августас (16 июля 2020 г.). «Обновление разработки 07.02–07.16». Середина. Получено 25 июля 2020.
- ^ «WireGuard® для PIA вышла из стадии бета-тестирования и доступна для использования в Windows, Mac, Linux, Android и iOS». Получено 26 августа 2020.
- ^ «Быстрый и удобный протокол WireGuard теперь доступен на Surfshark». Surfshark. 19 Октябрь 2020. Получено 8 ноября 2020.
- ^ «Mistborn объединяет важные интернет-сервисы в вашу домашнюю сеть и защищает их с помощью VPN-туннеля WireGuard, Pi-hole, правил iptables и отдельных контейнеров». Получено 16 октября 2020.
- ^ "Что такое WireGuard?". OVPN.com. Получено 7 ноября 2020.
- ^ "Новые обновления oVPN - WireGuard + OpenVPN 2.5 Скоро! - YouTube". www.youtube.com. Получено 7 ноября 2020.
- ^ "Wireguard VPN | TorGuard". torguard.net. Получено 7 ноября 2020.
- ^ «Что такое протокол WireGuard VPN и как его использовать с VPN Unlimited». Блог VPN Unlimited. 15 ноября 2019 г.. Получено 7 ноября 2020.
- ^ С, Егор (21 июля 2020 г.). «Представляем WireGuard». Середина. Получено 8 ноября 2020.
- ^ "Протокол VyprVPN WireGuard VPN здесь, чтобы защитить вас!". AndroidPIMP. 14 мая 2020. Получено 8 ноября 2020.
- ^ «Объявление о выпуске Unbreakable Enterprise Kernel Release 6 Update 1 для Oracle Linux». Блог Oracle Linux. 12 ноября 2020 г.. Получено 12 ноября 2020.
- ^ «Почему мы выбрали WireGuard для Veeam PN v2». Официальный блог Veeam Software. 15 мая 2019. Получено 2 декабря 2020.