Рис. 1. OpenVPN vs WireGuard, тест Ars Technica
WireGuard — свободный и открытый протокол виртуальных частных сетей, призванный заменить IPsec и OpenVPN. В январе 2020 года после полутора лет доработки кода всё-таки состоялось долгожданное событие — Линус Торвальдс принял VPN WireGuard в основную ветку Linux 5.6.
Очень скоро этот VPN станет частью ядра Linux — сердца операционной системы с открытым исходным кодом, на которой работает весь мир, от веб-серверов до телефонов Android и автомобилей. Это действительно важное событие, потому что WireGuard устроен на порядок проще и логичнее предыдущих VPN. В июне 2019 года получено автоматизированное криптографическое доказательство математики протокола.
VPN является важным инструментом для безопасности и конфиденциальности. По сути, он представляет собой зашифрованный канал коммуникации между двумя или более устройствами, которые позволяют маршрутизировать данные через безопасный «туннель». В компаниях используют VPN для удалённого доступа сотрудников в корпоративную сеть, а коммерческие VPN-сервисы предлагают пользователям защиту трафика от перехвата, направляя его через удалённые серверы. Это означает, что ваш провайдер, государственные спецслужбы или любые посторонние лица не могут видеть, что вы делаете в интернете. Маршрутизация трафика через удалённый сервер также может создать впечатление, что вы выходите в интернет из другого места. Это позволяет людям в таких странах, как Китай и Россия, получить доступ к сайтам, которые заблокированы внутри страны.
Но VPN-соединения безопасны только в той степени, в какой безопасно само программное обеспечение. Специалисты по безопасности традиционно критически относятся к программному обеспечению VPN. Одна из причин этого заключается в том, что большинство программ для VPN невероятно сложны. Чем сложнее софт, тем сложнее провести аудит на предмет проблем безопасности.
Старые VPN-программы «слишком огромны и сложны, и в принципе невозможно просмотреть и проверить, безопасны они или нет», — говорит Ян Йонссон (Jan Jonsson), генеральный директор VPN-провайдера Mullvad, на базе которого работает встроенный VPN-сервис в браузере Firefox.
Автор WireGuard — хакер и пентестер Джейсон Доненфилд (Jason A. Donenfeld). Ему удалось написать гораздо более простой и лаконичный код, чем в большинстве других программ для VPN. Первая версия WireGuard содержала менее 4000 строк кода — по сравнению с десятками тысяч строк в других программах VPN. Это не делает WireGuard более безопасным, но значительно облегчает поиск и устранение проблем. Ключевые механизмы протокола шифрования показаны рис. 2.
Рис. 2: (а) протокол WireGuard; (b) криптографические вычисления; (с) механизм куки в WireGuard для защиты хоста от DoS-атак
Клиенты WireGuard уже выпущены для Android, iOS, MacOS, Linux и Windows. Компания Cloudflare запустила VPN-сервис Warp основан на протоколе WireGuard, и несколько коммерческих провайдеров VPN также позволяет пользователям использовать протокол WireGuard, в том числе TorGuard, IVPN, и Mullvad.
Внедрение WireGuard непосредственно в ядро, которое напрямую взаимодействует с аппаратным обеспечением, должно ещё больше ускорить работу программы. WireGuard сможет шифровать и расшифровывать данные напрямую с сетевой карты, без необходимости передавать трафик через ядро и программное обеспечение на более высоком уровне.
Официальный релиз Linux 5.6 состоится через несколько недель. После этого можно ожидать, что протокол WireGuard получит более широкое распространение в разных сервисах VPN, в том числе для защиты соединений между устройствами Интернета вещей, многие из которых работают на Linux.
Автор программы Джейсон Доненфилд зарабатывал на жизнь взломом компьютерных систем (тесты на проникновение в рамках официального договора на консалитнговые услуги). Изначально он разработал WireGuard как инструмент эксфильтрации данных, чтобы скрытно снимать данные с компьютера жертвы.
В 2012 году Джейсон переехал во Францию и, как и многие пользователи VPN, хотел выходить в интернет с американского узла. Но он не доверял существующему программному обеспечению VPN. В конце концов он понял, что может использовать свой инструмент эксфильтрации для маршрутизации трафика через компьютер своих родителей в США: «Я понял, что многие приёмы взлома систем (offensive security) на самом деле полезны и для защиты», — сказал он в интервью журналу Wired.
Доненфельд изменил традиционный подход, который десятилетиями использовали VPN и криптографический софт. Например, другие VPN-системы позволяют пользователям выбирать один из нескольких алгоритмов шифрования. Но поддержка нескольких схем шифрования делает программное обеспечение более сложным и предоставляет больше возможностей для ошибок. WireGuard берёт на себя смелость принимать некоторые решения за пользователя. Это делает программу не такой гибкой, как IPsec и OpenVPN, но зато WireGuard на порядок проще, что, по мнению сторонников, снижает вероятность ошибок как со стороны разработчиков WireGuard, так и со стороны пользователей.
Простой аудит кода — не единственная причина, по которой WireGuard привлекла к себе столько внимания. Самое большое достоинство WireGuard заключается в том, что «им приятно пользоваться, — говорит Томаш Птачек (Thomas Ptacek), исследователь в области безопасности. — Его не сложнее настроить, чем любой из сетевых инструментов, которыми уже пользуются разработчики».
WireGuard находится в одном ряду с защищённым мессенджером Signal — они входят в широкое движение по созданию лучшего, более удобного программного обеспечения, основанного на современных криптографических методах.
В 2019 году специалисты из французского Института компьютерных исследований и автоматизации провели оценку криптографии WireGuard. Они получили автоматизированное криптографическое доказательство математических методов, лежащих в основе WireGuard, хотя в самом коже всё ещё могут быть проблемы безопасности. Сейчас его проверяют разработчики Linux, а Доненфельд исправил несколько проблем в преддверии выхода нового ядра Linux 5.6 и WireGuard 1.0.
PKI-решения для малого и среднего бизнеса от удостоверяющего центра GlobalSign Подробности уточняйте у менеджеров +7 (499) 678 2210, sales-ru@globalsign.com.
tuxi
Давно хотел попробовать WireGuard, да вот на типовом VPS (centos7 например) обычно вот этим все заканчивается
systemd[1]: Starting WireGuard via wg-quick(8) for wg0/server...
wg-quick[4030]: [#] ip link add wg0-server type wireguard
wg-quick[4030]: RTNETLINK answers: Operation not supported
wg-quick[4030]: Unable to access interface: Protocol not supported
wg-quick[4030]: [#] ip link delete dev wg0-server
wg-quick[4030]: Cannot find device "wg0-server"
systemd[1]: wg-quick@wg0-server.service: main process exited, code=exited, status=1/FAILURE
systemd[1]: Failed to start WireGuard via wg-quick(8) for wg0/server.
systemd[1]: Unit wg-quick@wg0-server.service entered failed state.
systemd[1]: wg-quick@wg0-server.service failed.
А openVPN там же становится сразу и без танцев.
Disclaimer: это точка зрения с позиции продвинутого юзера.
amarao
У вас нет пакета wireguard-dkms. В старых версиях wireguard был out-of-tree module и его надо было компилировать (этим dkms занимается). А wg-quick — это userspace утилита, она не может принудить ядро к поддержки того, чего в ядре нет.
tuxi
Угу, я уже нагуглил в свое время тоже самое. То есть проблема то известная, но скрипт для быстрой установки wg до сих пор никак не помогает ее решить.
Опять же, в том тесте что делал сегодня:
[root@ ~]# yum install wireguard-dkms
Loaded plugins: fastestmirror
Repository copr:copr.fedorainfracloud.org:jdoss:wireguard is listed more than once in the configuration
Loading mirror speeds from cached hostfile
* base: ftp.rz.uni-frankfurt.de
* epel: mirror.23media.com
* extras: mirror.23media.com
* updates: ftp.rz.uni-frankfurt.de
Package 1:wireguard-dkms-0.0.20200215-2.el7.noarch already installed and latest version
Nothing to do
Репозиторий указывать другой? Вот это все никак не способствует еще более широкому распространению WG имхо. А жаль.
amarao
Я не спец по центосям, но гугль говорит так:
curl -Lo /etc/yum.repos.d/wireguard.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo
yum install epel-release
yum install wireguard-dkms wireguard-tools
tuxi
Тоже самое, nothing to do
L11R
Ну вам уже ответили. Могу только добавить, что с Linux 5.6 вообще ставить ничего не будет.