VPN-протоколы - как выбрать тип туннелирования (сравнение OpenVPN, IPsec/L2TP, PPTP, IPsec, WireGuard и других) - Академия Selectel

Что такое VPN-протоколы и какие они бывают

Андрей Салита Андрей Салита Архитектор ИБ 16 ноября 2023

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

Изображение записи

Что такое VPN

VPN (Virtual Private Network) — это один из способов подключения к сети, когда между устройством и удаленным хостом создается защищенное соединение. 

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

Сценарии использования VPN 

  • Удаленный доступ. Сотрудники компаний используют VPN для удаленной работы с корпоративными ресурсами.
  • Транспортные тоннели. Между разными сегментами сети можно построить канал для передачи данных. Например, соединить офис в Москве и Санкт-Петербурге.

Что такое VPN-протокол

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

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

Как работают VPN-протоколы

  1. Пользователь выбирает сервер в сервисе VPN и подключается к нему со своего устройства. 
  2. VPN-сервис создает зашифрованный туннель между клиентом и сервером. В нем шифрует передаваемые данные с помощью протокола.
  3. VPN-сервер получает и расшифровывает трафик. Для этого он использует специальные ключи шифрования.
  4. VPN-сервер заменяет информацию о пользователе на свою и перенаправляет на целевой сайт клиентский запрос, с которым нужно установить соединение.
  5. VPN-сервер получает ответ, шифрует и перенаправляет его пользователю. Для расшифровки данных VPN-клиент и сервер используют специальные ключи шифрования.

Виды VPN-протоколов

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

PPTP

PPTP (Point-to-Point Tunneling Protocol) — один из первых VPN-протоколов. Компания Microsoft разработала его для коммутируемых сетей в Windows 95 и Windows NT. Примитивное шифрование делает его сверхбыстрым, но из-за этого страдает безопасность в интернете. К сожалению, он не дожил до наших дней и в настоящее время считается устаревшим. 

PPTP использует протокол MPPE (Microsoft Point-to-Point Encryption) с ключами длиной до 128 бит. Для аутентификации он может использовать либо MS-CHAPv1, либо MS-CHAPv2. Совокупность этих факторов делает его открытым к разным атакам: от перебора до подмены битов.

Низкоуровневое шифрование делает PPTP одним из самых быстрых VPN-протоколов. Шифрование обычно замедляет скорость соединения, но у PPTP он слишком мал, чтобы вызвать значительную разницу.

SSTP

SSTP (Secure Socket Tunneling Protocol) — еще один протокол от Microsoft, который впервые появился в Windows Vista.  Его изначально рассматривали как преемника PPTP и L2TP, поэтому SSTP можно найти в более поздних версиях Windows. По уровню безопасности он практически не уступает OpenVPN и способен обходить межсетевые экраны. 

SSTP использует SSL-протокол, инкапсулирует пакеты данных по HTTPS и поддерживает шифрование AES-256. Дополнительно может подключаться к TCP-порту 443, что делает его трудноблокируемым протоколом. Сам протокол подвержен TCP meltdown, когда один протокол накладывается поверх другого. Например, более медленное внешнее соединение заставляет верхний уровень ставить в очередь больше повторных передач, чем способен обработать нижний уровень. Это приводит к задержкам и проблемам с передачей данных.

Относительно скорости SSTP работает быстрее других протоколов. Однако он требует большей пропускной способности и мощного процессора.

IPsec

IPsec VPN — это набор протоколов, который защищает соединение между устройствами на уровне IP. Существует два режима работы IPsec: туннельный и транспортный. 

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

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

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

Ядро IPSec базируется на трех протоколах:

  • Authentication Header (AH) обеспечивает аутентификацию и поддерживает целостность данных,
  • ESP или Encapsulating Security Payload отвечает за шифрование трафика,
  • ISAKMP или Internet Security Association and Key Management Protocol отвечает за обмен ключами и аутентификацию конечных хостов.

L2TP/IPsec

L2TP (Layer 2 Tunneling Protocol) появился в 1999 году как преемник PPTP. Для этого Microsoft и Cisco объединили два протокола — PPTP и L2F (Layer 2 Forwarding). Однако L2TP не шифрует данные, поэтому эту функцию выполняет IPSec.

L2TP обеспечивает нулевую защиту, поскольку не может защитить полезную нагрузку данных. IPSec же поддерживает шифр AES-256 и, как правило, считается безопасным. Поэтому L2TP инкапсулирует часть трафика, как обычное PPTP-соединение, а вторую обеспечивает IPSec.

L2TP/IPSec использует только три порта (UDP 500/4500 и ESP IP Protocol 50), поэтому брандмауэры смогут довольно просто его заблокировать. По сравнению с другими протоколами, у L2TP/IPsec средняя скорость передачи данных. Однако эта связка довольно ресурсоемкая, поэтому требует хорошее интернет-соединение и неплохие вычислительные мощности.

IPsec/IKEv2

IKEv2 (Internet Key Exchange) разработан Microsoft и Cisco в качестве преемника IKEv1. Как и предыдущий протокол, IKEv2 использует IPSec для шифрования. Протокол популярен среди мобильных пользователей, поскольку отлично справляется с установкой повторного соединения. Несмотря на то, что его разработала компания Microsoft, есть версия IKEv2 с открытым исходным кодом.

Протокол поддерживает несколько алгоритмов шифрования с 256-разрядными ключами: AES, Camellia, 3DES и ChaCha20. А также функцию MOBIKE, которая позволяет пользователям не терять соединение при переключении сетей, и процесс аутентификации на основе сертификатов. Но у протокола есть недостаток: IKEv2 подвержен атаке «человек посередине» из-за IPSec.

IKEv2 работает через UDP-протокол, что обеспечивает низкую задержку и высокую скорость. Эффективный обмен сообщениями типа «запрос-ответ» также играет важную роль. Кроме того, IKEv2 менее требователен к процессору, чем OpenVPN.

OpenVPN 

OpenVPN (Open-Source Virtual Private Network) — золотой стандарт в области VPN-протоколов. У него высокая скорость подключения и совместимость с большинством портов. Работает протокол на всех основных платформах, включая Windows, macOS, Linux, Android и iOS. Также есть большое комьюнити, в котором разрабатывают собственные решения на базе OpenVPN. 

С точки зрения безопасности OpenVPN опирается на библиотеку OpenSSL и поддерживает разные алгоритмы шифрования: AES, Blowfish и другие. У него есть несколько портов, поэтому VPN-трафик можно замаскировать под обычный браузер.

В плане скорости протокол занимает промежуточное место. Он быстрее, чем L2TP/IPSec, но медленнее, чем PPTP и WireGuard. Однако скорость всегда зависит от устройства и параметров конфигурации. К примеру, его можно увеличить за счет функции раздельного туннелирования или уменьшить с помощью обфускации или двойного шифрования.

В чем разница между UDP и TCP?

OpenVPN использует два протокола: TCP и UDP. Мы о них уже рассказывали, а сейчас подробнее разберем, чем они отличаются. 

UDP и TCP устроены по-разному. Например, TCP медленнее, чем UPD. При этом  он надежнее из-за контроля передачи пакетов, тогда как UDP может их потерять при передаче. Все потому, что вместо повторной передачи пакетов, как у TCP, он отправляет следующий. Если вам нужен VPN для видеосвязи — используйте UDP, если для серфинга сайтов — TCP.

Сравнение скорости работы TCP и UDP на примере NordVPN.

WireGuard

Протокол появился в 2018 году и успел завоевать большую популярность. Он использует шифр ChaCha20, описанный в RFC 7539, и имеет около четырех тысяч строк кода, что значительно упрощает и ускоряет аудит безопасности. Основной минус: он не умеет динамически назначать IP-адреса пользователям, подключенным к серверу. Поэтому статический IP должен храниться на том же сервере. 

WireGuard — самый быстрый по сравнению с другими VPN-протоколами, поскольку не использует туннелирование по TCP в принципе. Linux-системы обеспечивают наилучшую работу протокола с помощью интеграции в модуль ядра.

Lightway

Компании ExpressTechnologies разработала протокол LightWay в качестве аналога Wireguard, но с упором на безопасность и высокую скорость. Его используют как сервис ExpressVPN.

При создании протокола разработчики использовали библиотеку wolfSSL — ее часто можно найти в системах умных домов. Сам по себе LightWay неплохой вариант с точки зрения безопасности. Он передает ключи шифрования через алгоритм Диффи-Хеллмана с применением эллиптических кривых (ECDH) и использует динамическую выдачу IP-адресов для приватности пользователей. В протоколе всего две тысячи строк кода, что облегчает специалистам аудит безопасности. А для любителей «покопаться» есть открытый исходный код. 

Lightway занимает лидирующие позиции по скорости передачи данных. В большинстве случае — через UDP вместе с DTLS-протоколом для безопасной передачи датаграмм. При этом можно его использовать в связке TCP и TLS.


SoftEther

SoftEther — многопротокольная VPN-система с открытым исходным кодом. Она поддерживает разные протоколы: SSL, L2TP/IPsec, OpenVPN, MSST и другие. Среди основных функций SoftEther VPN — обход NAT. Его удобно использовать для запуска VPN-серверов на компьютерах с шлюзами, маршрутизаторами и межсетевыми экранами. 

SoftEther VPN состоит из трех основных элементов:

  • VPN-сервер для запросов VPN-клиентов. Он принимает внушительное количество VPN-протоколов, включая OpenVPN, L2TP, L2TPv3, IPSec и SSTP.
  • VPN-клиент для подключения  VPN-сервера. Необязательно использовать клиент от SoftEther, чтобы подключиться к VPN, — это можно сделать с помощью других клиентов и протоколов. Однако он дает определенные преимущества и удобства.
  • ПО SoftEther VPN bridge. Поддерживает функциональность для пользователей или компаний.

Какой VPN-протокол лучше 

Я рассмотрел самые популярные протоколы, чтобы определить их сильные и слабые стороны. В критерии оценивания входят алгоритмы шифрования, сжатие данных, а также особенности самих протоколов и их передачи данных. Скорость работы специально не учитывал, поскольку для каждого соединения она индивидуальная. Например, скорость OpenVPN зависит от размера буфера отправки и приема. 

ПротоколБезопасность, шифрованиеСтабильность подключенияСовместимость с устройствами
LightwayВысокая, ECDH + wolfSSLСредняяБольшинство ОС, т.к. внедрен в ExpressVPN
OpenVPNВысокая, 160/256-бит, TLS с DES, RC2, DESX, BF, CAST, AESВысокаяШирокая поддержка ПК и мобильных устройств. Надежные алгоритмы шифрования. Требуется ПО сторонних производителей
PPTPНизкая, 128-бит, MPPE с RSA RC4ВысокаяУверенная поддержка Windows ПК. Слабая безопасность. Полезен для контента с географическими ограничениями
SSTPВысокая, AES 256-битСредняяУверенная поддержка Windows. Работает на некоторых дистрибутивах Linux
IPsec/L2TPВысокая, 256-бит, AES или 3DES через IPSecСредняяПоддержка разных устройств и платформ. 
IPsec/IKEv2Высокая, 256-бит, Blowfish, Camellia, 3DES, ChaCha20, AESВысокаяОграниченная поддержка платформ, за исключением Windows. Подходит для мобильных устройств
WireGuardВысокая, ChaCha20, Curve25519, HKDF, BLAKE2, SipHash24Средняя, но бывают проблемыПоддерживает весь спектр ОС
SoftEtherВысокая, 256-бит, можно использовать другие протоколы поверхВысокаяПоддержка нескольких десктопных и мобильных ОС. Нет нативных операционных систем. Подходит для мобильных устройств

Характеристики VPN-протоколов.

Совсем небезопасенНаблюдаются проблемы с безопасностьюБезопасенВысокий уровень безопасности
PPTP
— устаревший,- легко взломать.
L2TP/IPSec
+ считается безопасным в совокупности с AES- уязвим для атак человек посередине
IKEv2/IPSec
+ быстрый+ хорошо работает на мобильных устройствах- закрытый исходный код
OpenVPN
+ высокая скорость+ золотой стандарт/крайне универсален+ открытый исходный код
SSTP
— уязвим для атаки «человек посередине» на SSLv3- имеет закрытый исходный код
WireGuard
+ открытый исходный код+ высокая скорость и безопасность
SoftEther
+ высокая скорость- требуется ручная настройка

Степень безопасности VPN-протоколов.

У каждого VPN-протокола есть свои преимущества и недостатки с точки зрения безопасности, скорости и простоты использования. Рассмотрим, для каких задач их лучше использовать.

  • Обеспечение безопасности. OpenVPN защищает данные пользователей и поддерживает быструю скорость работы. Однако с последним бывают проблемы. 
  • Улучшение пользовательского опыта. WireGuard, как и OpenVPN, подходит для повседневной работы с VPN. 
  • Организация кроссплатформенности. Способность IKEv2/IPSec к быстрому подключению делает его отличным решением для мобильных телефонов.
  • Кастомизация VPN. L2TP/IPSec подходит для ручной настройки VPN. Он обеспечивает относительную безопасность и скорость, но уступает более новым решениям. 
  • Разработка собственных решений. PPTP прост в настройке, поэтому его стоит рассмотреть, если хотите запустить домашний VPN-сервер. SoftEther поддерживает другие варианты протоколов и открыт для различных экспериментов.
  • Ускорение работы VPN. Lightway отличается высокой скоростью и имеет самую маленькую кодовую базу среди всех VPN-протоколов.