Автор (ы) оригинала | Джейсон А. Доненфельд |
---|---|
Разработчики) | Джейсон А. Доненфельд |
Стабильный выпуск | 1.0.20210219 [1] / 19 февраля 2021 г . |
Репозиторий | |
Написано в | C ( Linux , модули ядра FreeBSD , NetBSD , драйверы ядра OpenBSD ), Go (реализация в пользовательском пространстве) |
Операционная система | [2] [3] [а] |
Тип | Виртуальная частная сеть |
Лицензия | различные бесплатные и с открытым исходным кодом |
Веб-сайт | www |
WireGuard - это протокол связи и бесплатное программное обеспечение с открытым исходным кодом, реализующее зашифрованные виртуальные частные сети (VPN), и был разработан с целью простоты использования, высокой производительности и низкой поверхности атаки . [4] Он нацелен на лучшую производительность и большую экономию энергии, чем протоколы туннелирования IPsec и OpenVPN . [5] Протокол WireGuard передает трафик через UDP . [6]
В марте 2020 года версия программного обеспечения для Linux достигла стабильного производственного выпуска и была включена в ядро Linux 5.6 и перенесена на более ранние ядра Linux в некоторых дистрибутивах Linux . [3] Компоненты ядра Linux находятся под лицензией GNU General Public License (GPL) версии 2; другие реализации находятся под GPLv2 или другими бесплатными лицензиями / лицензиями с открытым исходным кодом. [4]
Протокол [ править ]
WireGuard использует следующее: [4]
- Curve25519 для обмена ключами
- ChaCha20 для симметричного шифрования
- Poly1305 для кодов аутентификации сообщений
- SipHash для ключей хеш- таблицы
- BLAKE2s для криптографической хеш-функции
- Только на основе UDP [6]
В мае 2019 года исследователи из INRIA опубликовали проверенное машиной доказательство WireGuard, созданное с помощью помощника доказательства CryptoVerif . [7]
Шифрование [ править ]
WireGuard использует ChaCha20 . [4]
[ править ]
WireGuard поддерживает режим предварительного совместного использования симметричного ключа , который включен для смягчения любых будущих достижений в области квантовых вычислений. [4] В краткосрочной перспективе, если предварительно совместно используемый симметричный ключ скомпрометирован, ключи Curve25519 по-прежнему обеспечивают более чем достаточную защиту. [ необходима цитата ]
Сеть [ править ]
WireGuard только [ править ] использует UDP . [4]
WireGuard полностью поддерживает IPv6 как внутри, так и за пределами туннеля. Он поддерживает только уровень 3 для IPv4 и IPv6 и может инкапсулировать v4-in-v6 и наоборот. [8]
WireGuard поддерживает несколько топологий : [ необходима ссылка ]
- Точка-точка
- Звезда (сервер / клиент)
- Конечная точка клиента не должна быть определена до того, как клиент начнет отправлять данные.
- Конечные точки клиента могут быть предварительно определены статически.
- Сетка
Поскольку поддерживается точка-точка , могут быть созданы другие топологии, но не в том же туннеле. [ необходима цитата ]
Расширяемость [ править ]
WireGuard предназначен для расширения сторонними программами и скриптами. Это было использовано для дополнения WireGuard различными функциями, включая более удобный интерфейс управления (включая более простую настройку ключей), ведение журнала, динамические обновления межсетевого экрана и интеграцию LDAP . [ необходима цитата ]
Исключение таких сложных функций из минимальной базовой кодовой базы повышает ее стабильность и безопасность. [ необходима цитата ]
Прием [ править ]
WireGuard стремится обеспечить простую и эффективную реализацию виртуальной частной сети. В обзоре Ars Technica за 2018 год было отмечено, что популярные технологии VPN, такие как OpenVPN и IPsec , часто сложны в настройке, легко отсоединяются (при отсутствии дальнейшей настройки), требуют значительного времени для согласования повторных подключений, могут использовать устаревшие шифры и имеют относительно большой объем кодовые базы содержат более 400 000 и 600 000 строк кода соответственно, что затрудняет отладку. [9]
Дизайн WireGuard направлен на уменьшение этих проблем, стремясь сделать туннель более безопасным и простым в управлении по умолчанию. Используя управление версиями пакетов криптографии, он фокусируется на шифрах, которые считаются одними из самых безопасных современных методов шифрования, и на момент обзора Ars Technica кодовая база составляла около 4000 строк кода ядра, около 1% OpenVPN или IPsec. , упрощая аудит безопасности . WireGuard похвалили Linux ядро создателя Линуса Торвальдса , который противопоставил его OpenVPN и IPsec как «произведение искусства». [10] Ars Technicaсообщил, что при тестировании стабильные туннели были легко созданы с помощью WireGuard, по сравнению с альтернативами, и прокомментировал, что было бы «трудно вернуться» к длительным задержкам повторного подключения по сравнению с мгновенным повторным подключением WireGuard «без излишеств». [9]
Сенатор от штата Орегон Рон Виден рекомендовал Национальному институту стандартов и технологий (NIST) оценить WireGuard как замену существующим технологиям, таким как IPsec и OpenVPN . [11]
Доступность [ править ]
Реализации [ править ]
Реализации протокола WireGuard включают:
- Первоначальная реализация Доненфельда, написанная на C и Go. [12]
- BoringTun от Cloudflare, реализация пользовательского пространства, написанная на Rust . [13] [14]
- Реализация Мэтта Данвуди для OpenBSD, написанная на C. [15]
- Реализация wg (4) Ryota Ozaki для NetBSD написана на C. [16]
- Реализация FreeBSD написана на C и разделяет большую часть пути данных с реализацией OpenBSD. [17]
- Проект OpenWrt : WireGuard
- Oracle Linux с " Unbreakable Enterprise Kernel " Release 6 Update 1, с ноября 2020 г. [18]
Программы пользовательского пространства, поддерживающие WireGuard [ править ]
Программы пользовательского пространства, поддерживающие WireGuard, включают:
- NetworkManager, начиная с версии 1.16 [19]
- systemd начиная с версии 237 [20]
- ConnMan от Intel, начиная с версии 1.38 [21]
- Mozilla VPN [22]
- Сеть NOIA [23]
- NordVPN через Nordlynx [24]
- Пакет pfSense [25] (удален со склада pfSense в марте 2021 г.) [26]
- PiVPN с 17 октября 2019 г. [27]
- VPN с частным доступом в Интернет с 10 апреля 2020 г. [28]
- Surfshark с октября 2020 г. [29]
- Mistborn (программное обеспечение) VPN с марта 2020 г. [30]
- oVPN с февраля 2020 г. [31] развертывание в 2021 г. [32]
- Torguard с 2020 года [33]
- Trust.zone VPN с февраля 2021 г.
- Veeam Powered Network v2, с мая 2019 г. [34]
- VPN Безлимитный с ноября 2019 г. [35]
- Vypr VPN с мая 2020 г. [36]
- Windscribe в 2020 году [37]
История [ править ]
Первые снимки кодовой базы существуют с 30 июня 2016 года. [38] Четырьмя первыми пользователями WireGuard были поставщики услуг VPN Mullvad , [39] AzireVPN, [40] IVPN [41] и cryptostorm. [42] WireGuard получил пожертвования от Mullvad, Private Internet Access , IVPN , NLnet Foundation [43], а теперь и от OVPN. [44]
По состоянию на июнь 2018 [Обновить]года разработчики WireGuard рекомендуют рассматривать код и протокол как экспериментальные и предупреждают, что они еще не достигли стабильного выпуска, совместимого с отслеживанием CVE любых уязвимостей безопасности, которые могут быть обнаружены. [45] [46] [ требуется обновление ]
9 декабря 2019 года Дэвид Миллер, основной разработчик сетевого стека Linux, принял патчи WireGuard в дерево сопровождающих net-next для включения в грядущее ядро. [47] [48] [49]
28 января 2020 года Линус Торвальдс объединил дерево net-next Дэвида Миллера, и WireGuard вошел в основное дерево ядра Linux. [50]
20 марта 2020 года разработчики Debian включили параметры сборки модуля для WireGuard в конфигурации своего ядра для версии Debian 11 (тестирование). [51]
29 марта 2020 года WireGuard был включен в дерево выпусков Linux 5.6. Версия программного обеспечения для Windows остается на стадии бета-тестирования. [3]
30 марта 2020 года разработчики Android добавили встроенную поддержку ядра для WireGuard в свой общий образ ядра. [52]
22 апреля 2020 года разработчик NetworkManager Бениамино Гальвани объединил поддержку графического интерфейса для WireGuard. [53]
12 мая 2020 года Мэтт Данвуди предложил патчи для встроенной поддержки ядра WireGuard в OpenBSD . [54] 22 июня 2020 года, после работы Мэтта Данвуди и Джейсона А. Доненфельда, поддержка WireGuard была импортирована в OpenBSD. [55]
23 ноября 2020 года Джейсон А. Доненфельд выпустил обновление пакета Windows , улучшающее установку, стабильность, поддержку ARM и корпоративные функции. [56]
29 ноября 2020 года поддержка WireGuard была импортирована в ядро FreeBSD 13. [17]
19 января 2021 года поддержка WireGuard была добавлена для предварительного просмотра в снимках состояния разработки pfSense Community Edition (CE) 2.5.0. [57]
В марте 2021 года поддержка WireGuard в режиме ядра была удалена из FreeBSD 13.0, которая все еще находится в стадии тестирования, после того, как срочную очистку кода в FreeBSD WireGuard не удалось завершить быстро. [58] Основанные на FreeBSD версии pfSense Community Edition (CE) 2.5.0 и pfSense Plus 21.02 также удалили основанный на ядре WireGuard. [26]
См. Также [ править ]
- Сравнение услуг виртуальной частной сети
- Secure Shell (SSH), криптографический сетевой протокол, используемый для защиты сервисов в незащищенной сети.
Заметки [ править ]
- ^ Не все платформы могут иметь текущую выпущенную версию, а некоторые могут находиться на стадии бета-тестирования. [ требуется обновление? ]
Ссылки [ править ]
- ^ https://git.zx2c4.com/wireguard-linux-compat/tag/?h=v1.0.20210219 ; получено: 18 марта 2021 г.
- ^ «Установка» . WireGuard . Проверено 23 апреля 2020 года .
- ^ a b c Солтер, Джим (30 марта 2020 г.). «WireGuard VPN делает это до версии 1.0.0 - и до следующего ядра Linux» . Архивировано 31 марта 2020 года . Проверено 23 апреля 2020 года .
- ^ a b c d e f «WireGuard: быстрый, современный, безопасный VPN-туннель» . WireGuard. Архивировано 28 апреля 2018 года . Проверено 31 марта 2021 года .
- ^ Пренил, Барт; Веркаутерен, Фредерик, ред. (11 июня 2018 г.). Прикладная криптография и сетевая безопасность . Springer. ISBN 978-3-319-93387-0. Архивировано 18 февраля 2019 года . Проверено 25 июня 2018 .
- ^ a b Доненфельд, Джейсон А. «Известные ограничения - WireGuard» . www.wireguard.com . Дата обращения 1 июня 2020 .
- ^ Липп, Бенджамин; Бланше, Бруно; Бхаргаван, Картикеян (2019), Механизированное криптографическое доказательство протокола виртуальной частной сети WireGuard , Отчет об исследовании RR-9269, Париж: Inria, стр. 49, хал-02100345
- ^ Доненфельд, Джейсон А. «Введение и мотивация» (PDF) . WireGuard: сетевой туннель ядра нового поколения (PDF) . Архивировано 4 марта 2018 года (PDF) .
- ^ a b Солтер, Джим (26 августа 2018 г.). «Обзор WireGuard VPN: новый тип VPN предлагает серьезные преимущества» . Ars Technica . Архивировано 20 сентября 2018 года.
- ^ "Linux-Kernel Archive: Re: [GIT] Networking" .
- ^ «Сенатор США рекомендует использовать WireGuard с открытым исходным кодом в NIST для правительственной VPN» . Фороникс . 30 июня 2018. Архивировано 5 августа 2018 года . Проверено 5 августа 2018 .
- ^ Donenfeld, Джейсон (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.
- ^ a b «Импорт поддержки ядра WireGuard» .
- ^ «Объявление Unbreakable Enterprise Kernel Release 6 Update 1 для Oracle Linux» . Блог Oracle Linux . 12 ноября 2020 . Проверено 12 ноября 2020 .
- ↑ Haller, Thomas (15 марта 2019 г.). «WireGuard в NetworkManager» . Блоги GNOME .
- ^ Поттеринг, Леннарт (28 января 2018). "[ОБЪЯВЛЕНИЕ] systemd v237" . systemd-devel (список рассылки).
- ^ Larabel, Майкл (18 февраля 2020). «Intel ConnMan 1.38 выпущен с поддержкой WireGuard» . Фороникс .
- ^ «Mozilla VPN: защитите все ваше устройство» .
- ^ Radziukas, Augustas (16 июля 2020). «Обновление разработки 07.02–07.16» . Средний . Проверено 25 июля 2020 .
- ^ «Что такое NordLynx? | Поддержка клиентов NordVPN» . support.nordvpn.com . Дата обращения 1 сентября 2020 .
- ^ "Ascrod / pfSense-pkg-wireguard" . github . 27 мая 2020 . Дата обращения 1 июня 2020 .
- ^ a b Томпсон, Джим (18 марта 2021 г.). «WireGuard удален из программного обеспечения pfSense® CE и pfSense® Plus» . Блог Netgate . Рубикон Коммуникации . Проверено 20 марта 2021 года .
- ^ "pivpn / pivpn" . GitHub . Проверено 30 мая 2020 .
- ^ «WireGuard® для PIA вышла из стадии бета-тестирования и доступна для использования в Windows, Mac, Linux, Android и iOS» . Проверено 26 августа 2020 .
- ^ «Быстрый и удобный протокол WireGuard теперь доступен на Surfshark» . Surfshark . 19 октября 2020 . Проверено 8 ноября 2020 .
- ^ «Mistborn объединяет важные интернет-сервисы в вашу домашнюю сеть и защищает их с помощью туннеля WireGuard VPN, 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 для Veeam PN v2» . Официальный блог Veeam Software . 15 мая 2019 . Дата обращения 2 декабря 2020 .
- ^ «Что такое протокол WireGuard VPN и как его использовать с VPN Unlimited» . Блог безлимитного VPN . 15 ноября 2019 . Дата обращения 7 ноября 2020 .
- ^ "Протокол VyprVPN WireGuard VPN здесь, чтобы защитить вас!" . AndroidPIMP . 14 мая 2020 . Проверено 8 ноября 2020 .
- ↑ S, Егор (21 июля 2020 г.). «Представляем WireGuard» . Средний . Проверено 8 ноября 2020 .
- ^ "Указатель / Монолитно-исторический /" .
- ↑ Мейсон, Джон (13 февраля 2019 г.). "Муллвад Ревью" . thebestwpn . 2. Сильные протоколы туннелирования - OpenVPN и WireGuard. Архивировано 24 июня 2019 года . Проверено 8 апреля 2019 .
- ↑ Мейсон, Джон (19 февраля 2019 г.). «Обзор AzireVPN» . thebestvpn . 2. Впечатляющие протоколы и шифрование. Архивировано 8 мая 2019 года . Проверено 8 апреля 2019 .
- ^ Pestell, Ник (11 декабря 2018). «Представляем Wireguard» . Проверено 22 сентября 2019 .
- ^ "Добавлена поддержка WireGuard!" . блог cryptostorm . 5 апреля 2019 года. Архивировано 9 декабря 2019 года . Проверено 9 декабря 2019 .
- ^ «Пожертвования» . WireGuard. Архивировано 28 апреля 2018 года . Проверено 28 апреля 2018 .
- ^ "OVPN жертвует для поддержки WireGuard" . ОВПН . 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 года.
- ^ Торвальдс, Линус. "индекс: ядро / гит / торвальдс / 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 для программного обеспечения pfSense» .
- ↑ Андерсон, Тим (23 марта 2021 г.). «FreeBSD 13.0 будет поставляться без поддержки WireGuard, поскольку разработчик приступит к исправлению« серьезных проблем »при первоначальной реализации» . Реестр . Публикация ситуации . Проверено 31 марта 2021 года .
Внешние ссылки [ править ]
- Официальный веб-сайт