Рис. 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.