База знаний по Open Source
Yandex поиск по всему сайту
Авторизация

OpenVPN стал почти синонимом VPN-клиентов, и это совершенно справедливо. OpenVPN — это один из самых быстрых, безопасных и надежных протоколов VPN. Независимо от операционной системы большинство VPN-клиентов используют OpenVPN в качестве протокола туннелирования по умолчанию. Тем не менее, в последнее время активнородвигается альтернатива OpenVPN, которая, как  утверждается, обеспечивает лучшую производительность и намного проще в настройке.

WireGuard logo

Это WireGuard. Хотя WireGuard относительно новый продукт, он многообещающий, и поэтому стоит поговорить о OpenVPN и WireGuard, об их сходстве и различиях.

OpenVPN против WireGuard: краткое введение

Прежде всего необходимо сделать краткий обзор истории развития и бизнес-модели обоих протоколов VPN. Как известно OpenVPN — один из старейших протоколов VPN, который был впервые выпущен в 2001 году. Это протокол VPN с открытым исходным кодом, который реализуется проектом OpenVPN. При этом OpenVPN нельзя использовать ни для личных, ни для коммерческих пользователей, так что имейте это в виду. Тем не менее, вы можете использовать OpenVPN Community Edition бесплатно, но с достаточно ограниченными функциями.

Что касается WireGuard, он относительно новый и впервые был выпущен в 2016 году. Подобно OpenVPN, WireGuard имеет открытый исходный код, но также бесплатен как для коммерческих, так и для личных пользователей. В январе 2020 года WireGuard был окончательно объединен с ядром Linux Mainline, и ожидается, что он будет выпущен со следующим выпуском ядра. Это означает, что вы сможете использовать WireGuard в любых операционных системах на основе Unix (Android, iOS, macOS, Linux) изначально. Что касается бизнес-модели, WireGuard получил пожертвования от многих крупных VPN-компаний, таких как PIA и IVPN.

Теперь можно перейти к аспекту безопасности OpenVPN и WireGuard.

1. Безопасность

Поскольку речь едет о протоколах VPN, безопасность считается высшим приоритетом.

Начнем с безопасности OpenVPN. Поскольку OpenVPN существует так долго, он прошел множество аудитов безопасности и был признан безопасным и надежным без каких-либо явных уязвимостей. Он имеет механизм отслеживания CVE, в котором сообщается об общеизвестных уязвимостях и уязвимостях, и они регулярно исправляются. С технической точки зрения OpenVPN использует специальный протокол безопасности, основанный на протоколах SSL и TLS. Если вы не знаете, TLS (Transport Layer Security) — один из лучших криптографических протоколов, который обеспечивает безопасную связь между двумя конечными точками. Фактически, этот протокол используется iPhone для обмена файлами через AirDrop.

Кроме того, OpenVPN использует OpenSSL, который представляет собой библиотеку протоколов безопасности для идентификации других сторон в сети и предотвращения подслушивания. Еще одним важным аспектом безопасности OpenVPN является то, что он работает в пользовательском пространстве — изолированном пространстве, где виртуальная память защищена от мошеннических программ и злоумышленников. В целом OpenVPN — довольно безопасный протокол, и компания постоянно разрабатывает новые технологии для борьбы с вредоносными атаками.

Говоря о WireGuard, он использует протокол SSH (Secure Shell) для связи между устройствами. Это такой же криптографический сетевой протокол, как TLS, который предлагает широкий спектр функций безопасности. Но это еще не все. В отличие от OpenVPN, который работает в пользовательском пространстве, WireGuard работает внутри модуля Linux, называемого пространством ядра. Это означает, что все операции происходят на глубоком уровне ядра, вне операционной системы. В результате операции остаются быстрыми и безопасными — даже лучше, чем OpenVPN.

2. Шифрование

Хотя шифрование является частью безопасности, его надо рассмотреть отдельно, чтобы подчеркнуть различные алгоритмические методы, используемые OpenVPN и WireGuard. Как сказано выше, OpenVPN использует пакет безопасности под названием OpenSSL, который предоставляет ряд 256-битных криптографических алгоритмов, таких как AES, 3DES, BlowFish и другие. Алгоритмы настолько мощны, что могут проходить через серверы NAT и брандмауэры, не прерывая соединения.

Что касается WireGuard, он использует ряд криптографических алгоритмов для защиты передачи данных от атак грубой силы (brute-force). Некоторые из алгоритмов: 128-битные Curve25519, Poly1305, Diffie – Hellman Elliptic-curve и другие.

Вдобавок к этому WireGuard предоставляет HKDF для получения ключей от сторонних конечных точек. Не говоря уже о том, что существуют специальные протоколы для хеширования и получения ключей.

Проще говоря, и OpenVPN, и WireGuard превосходны, когда дело доходит до использования методов шифрования и сохранения секретности.

3. Аутентификация

Другой важный аспект протоколов VPN — аутентификации. OpenVPN использует два способа аутентификации между сторонами в сети. Один из них — это проверка подлинности на основе сертификатов, которая является наиболее безопасным методом, но он выполняется медленнее, а другой — это предварительное использование ключей, которое является самым быстрым, но относительно менее безопасным. В зависимости от сетевой среды OpenVPN использует любой из методов аутентификации, но так-же можно выбрать свою собственную конфигурацию для большей безопасности.

Если говорить о WireGuard, то он использует метод AEAD из RFC 7539 для аутентификации конечных точек в сети. И аутентификация также зашифрована с использованием криптографического шифра Poly1305. Для обычных пользователей это может не иметь большого смысла, но, попросту говоря, это означает, что запрос установления связи отправляется на все устройства в сети. После этого он ждет, пока ответчик расшифрует сообщение, и, следовательно, устанавливается соединение.

4. Производительность

Основное различие между двумя протоколами OpenVPN и WireGuard — это производительность. Причина, по которой WireGuard рекламируется как протокол VPN будущего, заключается в том, что он предлагает почти двукратный скачок производительности по сравнению с тем, что предлагает OpenVPN. Причина проста: в отличие от OpenVPN, который работает как приложение, WireGuard работает как модуль внутри ядра Linux.

Таким образом, криптографические службы выполняются очень быстро при работе с процессами шифрования или дешифрования. Кроме того, из-за глубокой интеграции с ядром не так много слоев, с которыми можно взаимодействовать, что значительно экономит время.

Кроме того OpenVPN имеет 400000 строк кода, что просто огромно, тогда как WireGuard имеет всего 4000 строк в своей кодовой базе. Общеизвестно, что меньшая кодовая база приводит к более высокой производительности. Итак WireGuard в частном VPN-е значительно выигрывает в производительности.

5. Поддержка платформы

OpenVPN доступен на всех платформах, включая Windows, macOS, Linux, iOS, Android, Windows Phone и другие. Фактически, почти все современные VPN основаны на протоколе OpenVPN. Помимо этого, протокол OpenVPN также используется во многих прошивках маршрутизаторов для безопасного туннелирования пакетов данных.

Что касается WireGuard, протокол VPN реализован в нескольких клиентах VPN для Windows, Android, macOS, iOS и Linux. Некоторые из этих клиентов VPN — это Mullvad, IVPN и Tunsafe.

Итак, на данный момент WireGuard далек от OpenVPN с точки зрения принятия и поддержки платформы. Однако после предстоящего выпуска ядра Linux и последующего принятия Google и Apple многие основные клиенты VPN, такие как ExpressVPN и PIA, могут начать реализацию протокола WireGuard в своих приложениях.

6. Конфиденциальность: OpenVPN против WireGuard

Защищает ли OpenVPN мою конфиденциальность?

Протоколы VPN обеспечивают безопасность; они не обязательно обеспечивают конфиденциальность. То, что определяет вашу конфиденциальность при использовании VPN, на самом деле является политикой службы VPN. В частности, от того, ведет ли служба VPN журналы, зависит ваша конфиденциальность при ее использовании.

Это может показаться странным, но WireGuard имеет проблемы с конфиденциальностью. Позже мы рассмотрим более подробно, но эта проблема сводится к одному из аспектов конструкции WireGuard, которая может поддерживать IP-адрес пользователя на сервере VPN в течение длительных периодов времени.

Дизайн OpenVPN не требует хранения таких пользовательских данных на сервере VPN, поэтому это не ставит под угрозу вашу конфиденциальность.

Есть ли у WireGuard проблемы с конфиденциальностью?

WireGuard был разработан для скорости и безопасности. Он не был специально разработан для таких людей, которые обращаются к своему VPN-сервису как с точки зрения безопасности, так и конфиденциальности. Однако, чтобы предоставить пользователям преимущества WireGuard, службы VPN предложили решения WireGuard, которые добавляют надежную защиту конфиденциальности, не жертвуя тем, что делает WireGuard особенным.

Вот проблема: WireGuard хранит IP-адреса пользователей на сервере VPN.

В рамках своего алгоритма маршрутизации криптоключей WireGuard сопоставляет открытые ключи и разрешенные IP-адреса (интернет-протокол). Это упрощает некоторые аспекты WireGuard, но по умолчанию это приводит к тому, что IP-адреса пользователей остаются на сервере VPN до тех пор, пока сервер не будет перезагружен. Сохранение вашего IP-адреса на сервере таким образом может рассматриваться как регистрация вашего IP-адреса и несовместимо с концепцией VPN без регистрации. Этот статический IP-адрес также может быть обнаружен в результате утечки WebRTC.

Как можно решить проблему конфиденциальности WireGuard?

Сервисы VPN предложили несколько различных решений проблемы конфиденциальности WireGuard.

NordVPN разработала систему двойного NAT для своей реализации WireGuard, которую они называют NordLynx. Система,

… Создает два локальных сетевых интерфейса для каждого пользователя. Первый интерфейс назначает локальный IP-адрес всем пользователям, подключенным к серверу. В отличие от исходного протокола WireGuard, каждый пользователь получает один и тот же IP-адрес.

Как только VPN-туннель установлен, срабатывает второй сетевой интерфейс с динамической системой NAT. Система назначает уникальный IP-адрес для каждого туннеля. Таким образом, интернет-пакеты могут перемещаться между пользователем и их желаемым местом назначения, не перепутываясь.

Система двойного NAT позволяет нам устанавливать безопасное VPN-соединение без сохранения каких-либо идентифицируемых данных на сервере. Динамические локальные IP-адреса остаются назначенными только во время активного сеанса. Между тем аутентификация пользователя выполняется с помощью защищенной внешней базы данных.

Другие службы, такие как Mullvad и OVPN, решили проблему конфиденциальности WireGuard, удалив записи, сопоставляющие IP-адреса с ключами шифрования, как только в течение трех минут не было связи между клиентом VPN и сервером. Хранение данных только до тех пор, пока это необходимо, значительно снижает риск раскрытия личных данных.

Дополнительная защита в подобных случаях заключается в том, чтобы убедиться, что у вас нет утечек WebRTC. Вот ссылка на полное руководство по устранению утечек WebRTC.

OpenVPN против WireGuard: каков вердикт?

В течение долгого времени OpenVPN был де-факто протоколом не только для VPN-клиентов, но и для любого типа сетевого туннелирования, будь то в маршрутизаторах или сетевых серверах.Тем не менее, WireGuard обещает многообещающую производительность и настройку.Так что теперь придется подождать и посмотреть — принимают ли VPN-компании протокол WireGuard или нет.

Окончательный вердикт о конфиденциальности

Это одна из областей, в которой OpenVPN имеет определенное преимущество. По умолчанию WireGuard требует, чтобы IP-адреса пользователей оставались на VPN-сервере в течение длительных периодов времени. Если конфиденциальность является главной проблемой, мы рекомендуем использовать только решения, которые устраняют эту потенциальную проблему конфиденциальности.

NordLynx от NordVPN — это решение, которое сейчас используется, но у Mullvad и OVPN уже есть практические решения. Ожидается, что по мере того, как другие VPN-сервисы будут развертывать свои решения WireGuard, они также будут решать эту проблему с IP-адресами.