Разбираемся в VPN протоколах
В последние месяцы армия пользователей VPN значительно увеличилась. И речь не о любителях обходить блокировки и посещать запрещенные сайты, а о тех, кто использует VPN для безопасной работы (да-да, удаленной работы). Это повод еще раз посмотреть на арсенал доступных протоколов и сравнить их с точки зрения безопасности.
Для начала — немного общих положений о VPN. Сценарии использования VPN могут быть разными, самые популярные их них:
- построение защищенного канала между двумя или более удаленными сегментами сети (например, между офисами в Москве и Нижнем Новгороде);
- подключение удаленного работника к корпоративной сети (теперь об этом знает почти каждый офисный сотрудник);
- виртуальное изменение местоположения с помощью услуг VPN Providers (требует наименьших телодвижений для настройки, однако весь ваш трафик будет проходить через чужой сервер).
Для реализации этих сценариев существуют различные виды VPN протоколов — для связи, для шифрования трафика и другие. И уже на основании подходящего протокола можно «строить» свое решение. Два самых известных и широко используемых протокола — OpenVPN и IPSec, а сравнительно недавно появился WireGuard, вызвавший некоторые разногласия. Есть и другие альтернативы, уже устаревшие, но вполне способные решать определенные задачи.
Преимущество того или иного протокола VPN зависит от ряда факторов и условий использования:
Устройства — разные устройства поддерживают разные протоколы.
Сеть — если определенные сервисы не доступны в вашей локации, некоторые протоколы могут не подойти. Например, есть VPN Providers, которые работают в Китае, тогда как большинство существующих провайдеров заблокированы.
Производительность — некоторые протоколы обладают бОльшей производительностью, особенно на мобильных устройствах. Другие — более удобны для использования в больших сетях.
Модель угроз — некоторые протоколы менее безопасны, чем другие, поэтому и злоумышленники могут воздействовать на них по-разному.
Итак, с общей частью закончили, теперь переходим к подробному описанию и сравнению протоколов.
PPTP
Point-to-Point Tunneling Protocol (PPTP) — один из старейших VPN протоколов, используемых до сих пор, изначально был разработан компанией Microsoft.
PPTP использует два соединения — одно для управления, другое для инкапсуляции данных. Первое работает с использованием TCP, в котором порт сервера 1723. Второе работает с помощью протокола GRE, который является транспортным протоколом (то есть заменой TCP/UDP). Этот факт мешает клиентам, находящимся за NAT, установить подключение с сервером, так как для них установление подключения точка-точка не представляется возможным по умолчанию. Однако, поскольку в протоколе GRE, что использует PPTP (а именно enhanced GRE), есть заголовок Call ID, маршрутизаторы, выполняющие натирование, могут идентифицировать и сопоставить GRE трафик, идущий от клиента локальной сети к внешнему серверу и наоборот. Это дает возможность клиентам за NAT установить подключение point-to-point и пользоваться протоколом GRE. Данная технология называется VPN PassTrough. Она поддерживается большим количеством современного клиентского сетевого оборудования.
PPTP поддерживается нативно на всех версиях Windows и большинстве других операционных систем. Несмотря на относительно высокую скорость, PPTP не слишком надежен: после обрыва соединения он не восстанавливается так же быстро, как, например, OpenVPN.
В настоящее время PPTP по существу устарел и Microsoft советует пользоваться другими VPN решениями. Мы также не советуем выбирать PPTP, если для вас важна безопасность и конфиденциальность.
Конечно, если вы просто используете VPN для разблокировки контента, PPTP имеет место быть, однако, повторимся: есть более безопасные варианты, на которые стоит обратить внимание.
SSTP
Secure Socket Tunneling Protocol (SSTP) — проприетарный продукт от Microsoft. Как и PPTP, SSTP не очень широко используется в индустрии VPN, но, в отличие от PPTP, у него не диагностированы серьезные проблемы с безопасностью.
SSTP отправляет трафик по SSL через TCP-порт 443. Это делает его полезным для использования в ограниченных сетевых ситуациях, например, если вам нужен VPN для Китая. Несмотря на то, что SSTP также доступен и на Linux, RouterOS и SEIL, по большей части он все равно используется Windows-системами.
С точки зрения производительности SSTP работает быстро, стабильно и безопасно. К сожалению, очень немногие VPN провайдеры поддерживают SSTP.
SSTP может выручить, если блокируются другие VPN протоколы, но опять-таки OpenVPN будет лучшим выбором (если он доступен).
IPsec
Internet Protocol Security (IPsec) — это набор протоколов для обеспечения защиты данных, передаваемых по IP-сети. В отличие от SSL, который работает на прикладном уровне, IPsec работает на сетевом уровне и может использоваться нативно со многими операционными системами, что позволяет использовать его без сторонних приложений (в отличие от OpenVPN).
IPsec стал очень популярным протоколом для использования в паре с L2TP или IKEv2, о чем мы поговорим ниже.
IPsec шифрует весь IP-пакет, используя:
- Authentication Header (AH), который ставит цифровую подпись на каждом пакете;
- Encapsulating Security Protocol (ESP), который обеспечивает конфиденциальность, целостность и аутентификацию пакета при передаче.
Обсуждение IPsec было бы неполным без упоминания утечки презентации Агентства Национальной Безопасности США, в которой обсуждаются протоколы IPsec (L2TP и IKE). Трудно прийти к однозначным выводам на основании расплывчатых ссылок в этой презентации, но если модель угроз для вашей системы включает целевое наблюдение со стороны любопытных зарубежных коллег, это повод рассмотреть другие варианты. И все же протоколы IPsec еще считаются безопасными, если они реализованы должным образом.
Теперь мы рассмотрим, как IPsec используется в паре с L2TP и IKEv2.
L2TP/IPsec
Layer 2 Tunneling Protocol (L2TP) был впервые предложен в 1999 году в качестве обновления протоколов L2F (Cisco) и PPTP (Microsoft). Поскольку L2TP сам по себе не обеспечивает шифрование или аутентификацию, часто с ним используется IPsec. L2TP в паре с IPsec поддерживается многими операционными системами, стандартизирован в RFC 3193.
L2TP/IPsec считается безопасным и не имеет серьезных выявленных проблем (гораздо безопаснее, чем PPTP). L2TP/IPsec может использовать шифрование 3DES или AES, хотя, учитывая, что 3DES в настоящее время считается слабым шифром, он используется редко.
У протокола L2TP иногда возникают проблемы из-за использования по умолчанию UDP-порта 500, который, как известно, блокируется некоторыми брандмауэрами.
Протокол L2TP/IPsec позволяет обеспечить высокую безопасность передаваемых данных, прост в настройке и поддерживается всеми современными операционными системами. Однако L2TP/IPsec инкапсулирует передаваемые данные дважды, что делает его менее эффективным и более медленным, чем другие VPN-протоколы.
IKEv2/IPsec
Internet Key Exchange version 2 (IKEv2) является протоколом IPsec, используемым для выполнения взаимной аутентификации, создания и обслуживания Security Associations (SA), стандартизован в RFC 7296. Так же защищен IPsec, как и L2TP, что может говорить об их одинаковом уровне безопасности. Хотя IKEv2 был разработан Microsoft совместно с Cisco, существуют реализации протокола с открытым исходным кодом (например, OpenIKEv2, Openswan и strongSwan).
Благодаря поддержке Mobility and Multi-homing Protocol (MOBIKE) IKEv2 очень устойчив к смене сетей. Это делает IKEv2 отличным выбором для пользователей смартфонов, которые регулярно переключаются между домашним Wi-Fi и мобильным соединением или перемещаются между точками доступа.
IKEv2/IPsec может использовать ряд различных криптографических алгоритмов, включая AES, Blowfish и Camellia, в том числе с 256-битными ключами.
IKEv2 поддерживает Perfect Forward Secrecy.
Во многих случаях IKEv2 быстрее OpenVPN, так как он менее ресурсоемкий. С точки зрения производительности IKEv2 может быть лучшим вариантом для мобильных пользователей, потому как он хорошо переустанавливает соединения. IKEv2 нативно поддерживается на Windows 7+, Mac OS 10.11+, iOS, а также на некоторых Android-устройствах.
OpenVPN
OpenVPN — это универсальный протокол VPN с открытым исходным кодом, разработанный компанией OpenVPN Technologies. На сегодняшний день это, пожалуй, самый популярный протокол VPN. Будучи открытым стандартом, он прошел не одну независимую экспертизу безопасности.
В большинстве ситуаций, когда нужно подключение через VPN, скорее всего подойдет OpenVPN. Он стабилен и предлагает хорошую скорость передачи данных. OpenVPN использует стандартные протоколы TCP и UDP и это позволяет ему стать альтернативой IPsec тогда, когда провайдер блокирует некоторые протоколы VPN.
Для работы OpenVPN нужно специальное клиентское программное обеспечение, а не то, которое работает из коробки. Большинство VPN-сервисов создают свои приложения для работы с OpenVPN, которые можно использовать в разных операционных системах и устройствах. Протокол может работать на любом из портов TCP и UPD и может использоваться на всех основных платформах через сторонние клиенты: Windows, Mac OS, Linux, Apple iOS, Android.
Но если он не подходит для вашей ситуации, стоит обратить внимание на альтернативные решения.
WireGuard
Самый новый и неизведанный протокол VPN — WireGuard. Позиционируется разработчиками как замена IPsec и OpenVPN для большинства случаев их использования, будучи при этом более безопасным, более производительным и простым в использовании.

Все IP-пакеты, приходящие на WireGuard интерфейс, инкапсулируются в UDP и безопасно доставляются другим пирам. WireGuard использует современную криптографию:
- Curve25519 для обмена ключами,
- ChaCha20 для шифрования,
- Poly1305 для аутентификации данных,
- SipHash для ключей хеш-таблицы,
- BLAKE2 для хеширования.
Код WireGuard выглядит куда скромнее и проще, чем код OpenVPN, в результате чего его проще исследовать на уязвимости (4 тысячи строк кода против нескольких сотен тысяч). Также многие отмечают, что его гораздо легче развернуть и настроить.
Результаты тестов производительности можно увидеть на официальном сайте (как не сложно догадаться, они хороши). Стоит отметить, что лучшие результаты WireGuard покажет на Linux системах, т.к. там он реализован в виде модуля ядра.
Совсем недавно был представлен WireGuard 1.0.0, который отметил собой поставку компонентов WireGuard в основном составе ядра Linux 5.6. Включенный в состав ядра Linux код прошел дополнительный аудит безопасности, выполненный независимой фирмой, который не выявил каких-либо проблем. Для многих это отличные новости, но сможет ли WireGuard стать достойной заменой IPsec и OpenVPN покажет время и независимые исследования безопасности.
Мы постарались охарактеризовать самые популярные VPN протоколы, надеемся, обзор был для вас полезен. В качестве резюме приводим сравнительную таблицу, где еще раз обозначены важные, на наш взгляд, показатели.
| PPTP | SSTP | L2TP/IPsec | IKEv2/IPsec | OpenVPN | WireGuard | |
|---|---|---|---|---|---|---|
| Компания-разработчик | Microsoft | Microsoft | L2TP — совместная разработка Cisco и Microsoft, IPsec — The Internet Engineering Task Force | IKEv2 — совместная разработка Cisco и Microsoft, IPsec — The Internet Engineering Task Force | OpenVPN Technologies | Jason A. Donenfeld |
| Лицензия | Proprietary | Proprietary | Proprietary | Proprietary, но существуют реализации протокола с открытым исходным кодом | GNU GPL | GNU GPL |
| Развертывание | Windows, macOS, iOS, некоторое время GNU/Linux. Работает “из коробки”, не требуя установки дополнительного ПО | Windows. Работает “из коробки”, не требуя установки дополнительного ПО | Windows,Mac OS X, Linux, iOS, Android. Многие ОС (включая Windows 2000/XP +, Mac OS 10.3+) имеют встроенную поддержку, нет необходимости ставить дополнительное ПО | Windows 7+, macOS 10.11+ и большинство мобильных ОС имеют встроенную поддержку | Windows, Mac OS, GNU/Linux, Apple iOS, Android и маршрутизаторы. Необходима установка специализированного ПО, поддерживающего работу с данным протоколом | Windows, Mac OS, GNU/Linux, Apple iOS, Android. Установить сам WireGuard, а затем настроить по руководству |
| Шифрование | Использует Microsoft Point-to-Point Encryption (MPPE), который реализует RSA RC4 с максимум 128-битными сеансовыми ключами | SSL (шифруются все части, кроме TCP- и SSL-заголовков) | 3DES или AES | Реализует большое количество криптографических алгоритмов, включая AES, Blowfish, Camellia | Использует библиотеку OpenSSL (реализует большинство популярных криптографических стандартов) | Обмен ключами по 1-RTT, Curve25519 для ECDH, RFC7539 для ChaCha20 и Poly1305 для аутентификационного шифрования, и BLAKE2s для хеширования |
| Порты | TCP-порт 1723 | TCP-порт 443 | UDP-порт 500 для первонач. обмена ключами и UDP-порт 1701 для начальной конфигурации L2TP, UDP-порт 5500 для обхода NAT | UDP-порт 500 для первоначального обмена ключами, а UDP-порт 4500 — для обхода NAT | Любой UDP- или TCP-порт | Любой UDP-порт |
| Недостатки безопасности | Обладает серьезными уязвимостями. MSCHAP-v2 уязвим для атаки по словарю, а алгоритм RC4 подвергается атаке Bit-flipping | Серьезных недостатков безопасности не было выявлено | 3DES уязвим для Meet-in-the-middle и Sweet32, но AES не имеет известных уязвимостей. Однако есть мнение, что стандарт IPsec скомпрометирован АНБ США | Не удалось найти информации об имеющихся недостатках безопасности, кроме инцидента с утечкой докладов АНБ касательно IPsec | Серьезных недостатков безопасности не было выявлено | Серьезных недостатков безопасности не было выявлено |
Материал подготовлен совместно с veneramuholovka
Какие существуют разновидности VPN и чем они отличаются
В прошлой статье мы разобрались с тем, что такое VPN. Теперь познакомимся с конкретными реализациями этой технологии и кратко расскажем об их преимуществах и недостатках.

Igor Oskolkov
Итак, в прошлый раз мы разобрались с тем, что такое технология VPN, где она нужна и зачем используется. В этот раз мы познакомимся с ее конкретными реализациями и кратко расскажем об их преимуществах и недостатках.

Само по себе определение VPN (виртуальная частная сеть) довольно широко, и с ходу трудно сказать, что можно считать VPN, а что нет. С определенной натяжкой VPN можно назвать и прародительницу Интернета ARPANET. Любопытно, что почти все технологии, а чаще всего все-таки протоколы, изначально применявшиеся для построения распределенных корпоративных сетей, постепенно становились основными способами доступа в Сеть для обычных пользователей.
Впрочем, ни дела давно минувших дней, ни заботы корпоративные нас не волнуют. С чисто практической точки зрения следует кратко познакомиться с теми вариациями VPN, которые неподготовленный и не шибко разбирающийся в сетевых технологиях пользователь сможет встретить на своем пути.
В первую очередь стоит рассмотреть те из них, что помогут защититься при использовании публичного Wi-Fi-доступа и позволят обойти блокировки тех или иных ресурсов. Как правило, доступные частным пользователям VPN-сервисы опираются на возможности популярных ОС и предлагают самостоятельно настроить с помощью пошаговой инструкции подключение к ним.
В последнее время сервисы VPN еще больше упростили этот процесс — они скрывают технические детали и доводят его до уровня «сюда положить денежку, отсюда скачать программку, нажать эту кнопочку и радоваться жизни, не забывая пополнять баланс личного счета». Тем не менее в некоторых случаях может быть полезно понимать, чем одни вариации VPN отличаются от других.

Настройки VPN в операционных системах Android (слева) и Windows (справа)
Популярные типы VPN
PPTP (Point-to-Point Tunneling Protocol) появился 20 лет назад, и в этом заключаются как его достоинства, так и недостатки. Несомненный плюс этого протокола — он поддерживается буквально всеми ОС, даже очень старыми. За счет этого достигается определенная универсальность и доступность. К тому же по современным меркам он очень нетребователен к вычислительным ресурсам.
Обратная сторона медали — из-за столь солидного возраста нынче он предлагает низкий уровень защиты пользователя. Казавшиеся достаточно надежными в середине 1990-х методы шифрования по нынешним меркам слабы и сочетаются с не самой удачной архитектурой и рядом ошибок в самой популярной реализации протокола от Microsoft.
Кроме того, по умолчанию шифрование вообще не предлагается, а взлом пароля на современном аппаратном обеспечении возможен менее чем за сутки. Тем не менее в тех случаях, когда защита подключения не так важна или когда нет иных вариантов VPN-подключений, то уж лучше использовать PPTP с шифрованием, чем вообще без него.
Мне однажды удалось попасть в не очень приятную ситуацию в одной из стран с особым (если вы понимаете, о чем я) отношением к Интернету. Отправка электронной почты через корпоративный PPTP-сервер на родине закончилась тем, что письма, высланные в течение одного дня, были доставлены адресату с задержкой от пары дней до пары недель. Где и почему они «путешествовали», читатель может предположить сам. Использование же иных, более надежных вариантов VPN пресекалось.
L2TP (Layer 2 Tunneling Protocol) во многом схож с PPTP. Эти стандарты разрабатывались и были приняты практически одновременно, но L2TP считается более эффективным для построения виртуальных сетей, хотя и чуточку более требователен к вычислительным ресурсам по сравнению с PPTP. Фактически же он используется интернет-провайдерами и корпоративными пользователями. Обратите внимание, что L2TP по умолчанию также не предлагает шифрования и используется одновременно с другими протоколами — как правило, это IPSec.
IPSec (Internet Protocol Security) — это целый набор протоколов, стандартов и рекомендаций, специально разработанный для создания безопасных соединений в Сети. Первые наработки тоже появились в начале 1990-х годов, однако изначально была поставлена цель не «высечь IPSec в граните», а регулярно дорабатывать его для соответствия духу времени.
Нетрудно догадаться, для ведомств какого характера велись эти разработки. Набор IPSec состоит из десятков стандартов (и каждый из них внутри себя имеет не одну версию), описывающих различные этапы работы с защищенными соединениями. Он действительно хорош и с точки зрения архитектуры, и с точки зрения надежности используемых алгоритмов, и с точки зрения возможностей.
При всех достоинствах IPSec у него есть и недостатки. Во-первых, для неподготовленного пользователя он очень сложен в настройке, что, в свою очередь, чревато снижением уровня защиты в том случае, если что-то сделано неправильно. К тому же, как было отмечено, он нередко используется в совокупности с другими технологиями.
Во-вторых, он гораздо требовательнее к вычислительным ресурсам. Отчасти этот недостаток компенсируется использованием аппаратного ускорения некоторых вариантов алгоритма шифрования AES — именно он предлагается в современных версиях IPSec, хотя есть и другие варианты алгоритмов. Подобные ускорители уже есть в современных процессорах как для настольных, так и для мобильных устройств, а также для Wi-Fi-роутеров.
К сожалению, то, что хорошо продумали теоретики (математики в первую очередь), в жизнь претворяют практики, далеко не всегда обладающие достаточным уровнем знания и понимания предметной области. Исследование, опубликованное в октябре 2015 года, показывает, что до 66% IPSec-подключений могут быть относительно легко взломаны и что АНБ США может обладать подходящим аппаратным обеспечением для такого взлома.
Проблема кроется в некорректном использовании алгоритмов для инициализации защищенных соединений. Причем это касается не только IPSec, но и TLS с SSH, а также TOR и OTR. То есть имеется потенциальная возможность прочтения не только VPN-подключений, но и защищенных соединений для ряда сайтов, почтовых серверов, мессенджеров и так далее.
Да, для реализации подобной атаки требуются довольно долгие приготовления и хорошие вычислительные ресурсы, но в данном случае примечательно, что исследователи использовали облачные технологии Amazon и, судя по всему, потратили сумму, вполне подъемную и для частного лица.
После такой подготовки время на атаку сокращается до минуты в лучшем случае или до месяца — в худшем. Впрочем, некоторые эксперты скептически отнеслись к данному исследованию — они утверждают, что в реальности процент уязвимых систем не так велик, хотя к некоторым аспектам исследования действительно стоит отнестись очень серьезно, а разработчики потенциально уязвимого ПО уже выпустили или планируют обновления и предупредили пользователей.
SSL (Secure Sockets Layer) и TLS (Transport Layer Security) VPN, как видно из названия, представляют целый класс решений, опирающихся на соответствующие протоколы SSL и TLS, иногда дополненные другими методами защиты. Собственно говоря, SSL/TLS каждый из вас встречал в первую очередь на веб-сайтах, включая и тот, что вы читаете прямо сейчас: префикс https и зеленый замочек в адресной строке говорят об использовании именно этих протоколов защиты соединения.
Первые версии протокола появились еще в прошлом веке, но активно использоваться стали только в этом. Широкая распространенность этих протоколов способствовала их детальному изучению и последовательному выявлению все новых и новых уязвимостей как в архитектуре, так и в конкретных реализациях. SSL 3.0 был упразднен в июне 2015 года, актуальной на текущий момент является версия TLS 1.2, однако полностью безопасной считать ее нельзя — многое опять-таки зависит от реализации (см. IPSec). Кроме того, оба протокола вынуждены нести на себе тяжкий груз обратной совместимости.
Плюсом SSL/TLS VPN является то, что из-за широкого применения этих протоколов в Интернете они беспрепятственно пропускаются практически всеми публичными сетями. Минус — не слишком высокая производительность на практике и сложность в настройке, а также необходимость установки дополнительного ПО.
Популярными реализациями SSL/TLS VPN являются OpenVPN (SSL 3.0/TLS 1.2) и Microsoft SSTP (SSL 3.0). Фактически SSTP привязан к платформе Windows. OpenVPN в силу своей открытости имеет множество реализаций практически для всех платформ и к тому же на данный момент считается наиболее надежным вариантом VPN.
Заключение
Мы перечислили лишь самые популярные у частных пользователей типы VPN. Впрочем, за годы развития этой технологии у нее появилось бессчетное множество вариаций. Одни только решения для корпоративного и телекоммуникационного секторов чего стоят.
Обычному же пользователю я советую использовать, если это вообще возможно, только OpenVPN в силу его открытости, надежности и защищенности. Впрочем, и для него, и для других типов VPN есть еще ряд хитрых нюансов технического и юридического характера, о которых мы поговорим в следующем материале.
Виды VPN-соединений (PPTP, L2TP, IPSec, SSL)
Раньше для осуществления безопасной передачи данных возникала необходимость в выделенной линии, связывающей два пункта. Расходы на организацию таких линий довольно велики.
Виртуальная частная сеть дает пользователям безопасный способ доступа к ресурсам корпоративной сети через Интернет или другие общественные или частные сети без необходимости выделения линии.
Безопасная частная виртуальная сеть представляет собой совокупность технологий/служб туннелирования, аутентификации, управления доступом и контроля, используемых для защиты данных и передачи трафика через Интернет.
Существует много причин для использования виртуальных частных сетей. Наиболее типичны следующие из них:
Безопасность (защита данных).
С помощью аутентификации получатель сообщения, являющийся пользователем виртуальной частной сети, может отслеживать источник полученных пакетов и обеспечить целостность данных.
С средств защиты данных в виртуальных частных сетях гарантируется конфиденциальность исходных пользовательских данных.
Стоимость (снижение количества линий доступа и уменьшение расходов на междугороднюю телефонную связь).
Организация виртуальной частной сети позволяет компании передавать данные через линии доступа к Интернету, таким образом уменьшая необходимость в некоторых из существующих линий.
При организации виртуальной частной сети снижаются расходы на междугороднюю телефонную связь, поскольку пользователь обычно получает услуги от местного Интернет-провайдера, а не совершает междугородний звонок для установления прямой связи с компанией.
Известно, что сети, использующие протокол IP, имеют «слабое место», обусловленное самой структурой протокола IP. Разработчики IP не намеревались обеспечивать каких-либо функций безопасности на уровне IP, а гибкость IP позволяет хитроумно использовать особенности данного протокола в целях преодоления контроля за трафиком, управления доступом и других мер безопасности. Поэтому данные в сети, использующей протокол IP, могут быть легко подделаны или перехвачены.
При туннелировании для передачи по сети протокольных пакетов сети одного типа они вставляются или инкапсулируются в протокольные пакеты другой сети. Это обеспечивает безопасность при передаче данных.
Протоколы для построения VPN-туннеля:
PPTP
PPTP (Point-to-Point Tunneling Protocol) — туннельный протокол типа точка-точка, позволяющий компьютеру устанавливать защищённое соединение с сервером за счёт создания специального туннеля в стандартной, незащищённой сети. Протокол PPTP позволяет инкапсулировать (упаковывать или скрыть от использования) пакеты PPP в пакеты протокола Internet Protocol (IP) и передавать их по сетям IP (в том числе и Интернет).
PPTP обеспечивает безопасную передачу данных от удаленного клиента к отдельному серверу предприятия путем создания в сети TCP/IP частной виртуальной сети. PPTP может также использоваться для организации туннеля между двумя локальными сетями. PPTP работает, устанавливая обычную PPP-сессию с противоположной стороной с помощью протокола Generic Routing Encapsulation (GRE). Второе соединение на TCP порту 1723 используется для инициации и управления GRE-соединением. Для защиты данных PPTP-трафика может быть использован протокол MPPE. Для аутентификация клиентов могут использоваться различные механизмы, наиболее безопасные из них — MSCHAPv2 и EAP-TLS.
Для обеспечения работы клиента по протоколу PPTP, необходимо установить IP-соединение с туннельным сервером PPTP. Все передаваемые по этому соединению данные могут быть защищены и сжаты. По туннелю PPTP могут передаваться данные различных протоколоыв сетевого уровня (TCP/IP, NetBEUI и IPX).
Преимущества протокола PPTP:
- Использование частного IP-адреса. Пространство IP-адресов частной сети не должно координироваться с пространством глобальных (внешних) адресов.
- Поддержка множества протоколов. Можно осуществлять доступ к частным сетям, использующим различные комбинации TCP/IP или IPX.
- Безопасность передачи данных. Для предотвращения несанкционированного подключения используются протоколы и политики обеспечения безопасности сервера удаленного доступа.
- Возможность использования аутентификации и защиты данных при передачи пакетов через Интернет.
- Разнообразие протоколов. Так как используется кадрирование PPP, удаленные пользователи могут использовать для доступа к корпоративому узлу большое количество различных протоколов, таких как IP, IPX и т.д.
- Создание туннелей в различных сетях. L2TP может работать как в сетях IP, так и в сетях ATM, Frame Relay и др.
- Безопасность передачи данных. При этом, пользователь не должен иметь никакого специального программного обеспечения.
- Возможность аутентификации пользователей.
- Виртуальная частная сеть между организациями
- Мобильный пользователь
- Пользователь SOHO
- Экономическая эффективность
- Законченное решение для коммерческого использования
- Интегрированное безопасное решение
- Нет необходимости в дополнительном программном обеспечении
- Простота конфигурирования
- Экономически эффективное решение для дистанционных пользователей и филиалов
- Совместимость с решениями большинства поставщиков решений для виртуальных частных сетей.
- Простота использования
- Нет необходимости в дополнительном программном обеспечении
- Безопасный удаленный доступ
L2TP
L2TP (Layer 2 Tunneling Protocol) — протокол туннелирования уровня 2 (канального уровня). Объединяет протокол L2F (Layer 2 Forwarding), разработанный компанией Cisco, и протокол PPTP корпорации Microsoft. Позволяет организовывать VPN с заданными приоритетами доступа, однако не содержит в себе средств для защиты данных и механизмов аутентификации.
Протокол L2TP использует сообщения двух типов: управляющие и информационные сообщения. Управляющие сообщения используются для установления, поддержания и ликвидации туннелей и вызовов. Для обеспечения доставки ими используется надежный управляющий канал протокола L2TP. Информационные сообщения используются для инкапсулирования кадров PPP, передаваемых по туннелю. При потере пакета он не передается повторно.
Структура протокола описывает передачу кадров PPP и управляющих сообщений по управляющему каналу и каналу данных протокола L2TP. Кадры PPP передаются по ненадежному каналу данных, предварительно дополняясь заголовком L2TP, а затем — по транспорту для передачи пакетов, такому как Frame Relay, ATM и т.п. Управляющие сообщения передаются по надежному управляющему каналу L2TP с последующей передачей по тому же транспорту для пересылки пакетов.
Все управляющие сообщения должны содержать порядковые номера, используемые для обеспечения надежной доставки по управляющему каналу. Информационные сообщения могут использовать порядковые номера для упорядочивания пакетов и выявления утерянных пакетов.
Преимущества протокола L2TP:
IPSec
IPSec (IP Security) — набор протоколов, касающихся вопросов обеспечения защиты данных при транспортировке IP-пакетов. IPSec также включает в себя протоколы для защищённого обмена ключами в сети Интернет. Протоколы IPSec работают на сетевом уровне (уровень 3 модели OSI).
Internet-протокол (IP) не имеет средств защиты передаваемых данных. Он даже не может гарантировать, что отправитель является именно тем, за кого он себя выдает. IPSec представляет собой попытку исправить ситуацию. При использовании IPSec весь передаваемый трафик может быть защищен перед передачей по сети. При использовании IPSec получатель сообщения может отслеживать источник полученных пакетов и удостовериться в целостности данных. Необходимо быть уверенным в том, что транзакция может осуществляться только один раз (за исключением случая, когда пользователь уполномочен повторять ее). Это означает, что не должно существовать возможности записи транзакции и последующего ее повторения в записи с целью создания у пользователя впечатления об осуществлении нескольких транзакций. Представьте себе, что мошенник получил информацию о трафике и знает, что передача такого трафика может дать ему какие-то преимущества (например, в результате на его счет будут переведены деньги). Необходимо обеспечить невозможность повторной передачи такого трафика.
С помощью виртуальной частной сети (VPN) можно решать следующие прикладные задачи:
IPSec VPN оптимален для объединения сетей разных офисов через Интернет.
Можно устанавливать VPN-соединение с использованием протокола IPSec.
Для пользователей SMB/SOHO (Малый бизнес/Малый офис/Домашний офис):
Для дистанционных пользователей:
Для коллективных пользователей:
Существует две разновидности протокола IPSec: ESP (Encapsulation Security Payload, инкапсуляция защищенных данных) и AH (Authentication Header, Аутентифицирующий заголовок). ESP и AH — новые протоколы IP. О том, что пакет является пакетом ESP, говорит значение в поле протокола заголовка IP, равное 50, а для пакета AH — равное 51.
В пакетах ESP и AH между заголовком IP (IP header) и данными протокола верхнего уровня вставляется заголовок ESP/AH (ESP/AH header).
ESP может обеспечивать как защиту данных, так и аутентификацию, а также возможен вариант протокола ESP без использования защиты данных или без аутентификации. Однако, невозможно использовать протокол ESP одновременно без защиты данных и без аутентификации, поскольку в данном случае безопасность не обеспечивается. При осуществлении защиты передаваемых данных заголовок ESP не защищен, но защищены данные протокола верхнего уровня и часть трейлера ESP.
А в случае аутентификации производится аутентификация заголовка ESP, данных протокола верхнего уровня и части трейлера ESP.
Хотя протокол AH может обеспечивать только аутентификацию, она выполняется не только для заголовка AH и данных протокола верхнего уровня, но также и для заголовка IP.
Протоколы семейства IPSec могут использоваться для защиты либо всех полезных данных IP-пакета, либо данных протоколов верхнего уровня в поле полезных данных IP-пакета. Это различие определяется выбором двух различных режимов протокола IPSec: транспортного режима или туннельного режима.
Транспортный режим в основном используется хостом IP для защиты генерируемых им самим данных, а туннельный режим используется шлюзом безопасности для предоставления услуги IPSec другим машинам, не имеющим функций IPSec. Однако функции хоста IPSec и шлюза безопасности могут выполняться одной и той же машиной. Оба протокола IPSec, AH и ESP, могут выполняться в транспортном или туннельном режиме.
SSL VPN
SSL (Secure Socket Layer) протокол защищенных сокетов, обеспечивающий безопасную передачу данных по сети Интернет. При его использовании создается защищенное соединение между клиентом и сервером.
SSL использует защиту данных с открытым ключом для подтверждения подлинности передатчика и получателя. Поддерживает надёжность передачи данных за счёт использования корректирующих кодов и безопасных хэш-функций.
SSL использует RC4, MD5, RSA и другие алгоритмы защиты данных.
SSL использует два ключа для защиты данных — открытый ключ и закрытый или частный ключ известный только получателю сообщения.
На сегодняшний день, в сети Интернет можно встретить множество сайтов на которых используется протокол SSL для обеспечения безопасности пользовательских данных (например, веб-сайты предоставляющие коммерческие и банковские сервисы). Практически все самые популярные браузеры, почтовые клиенты и интернет-приложения поддерживают работу с протоколом SSL. Для доступа к страницам, защищённым протоколом SSL, в URL вместо обычного префикса http, как правило, применяется префикс https (порт 443), указывающий на то, что будет использоваться SSL-соединение.
SSL также может обеспечить защиту протоколов прикладного уровня (уровень 7 модели OSI), например, таких как POP3 или FTP. Для работы SSL требуется, чтобы на сервере имелся SSL-сертификат.
Безопасное соединение между клиентом и сервером при использовании SSL выполняет две функции — аутентификацию и защиту данных.
SSL состоит из двух уровней. На нижних уровнях (уровни 4-5) многоуровневого транспортного протокола (например, TCP) он является протоколом записи и используется для инкапсуляции (то есть формирования пакета) различных протоколов. Для каждого инкапсулированного протокола он обеспечивает условия, при которых сервер и клиент могут подтверждать друг другу свою подлинность, выполнять защиту передаваемых данных и производить обмен ключами, прежде чем протокол прикладной программы начнет передавать и получать данные.
Преимущества протокола SSL:
SSL VPN оптимален для подключения удаленных пользователей к ресурсам локальной сети офиса через Интернет.
Что такое VPN-протоколы и какие они бывают
В тексте рассказываем, что такое VPN-протоколы, какие решения доступны на рынке и что лучше использовать.

Что такое VPN
VPN (Virtual Private Network) — это один из способов подключения к сети, когда между устройством и удаленным хостом создается защищенное соединение.
По мере того, как компании переносят свои данные и приложения в облако, потребность в виртуальной частной сети (VPN) становится скорее необходимостью, чем опцией. В том числе из-за того, что мошенники стали целенаправленно атаковать российские компании. А последние — использовать разные способы для повышения безопасности своей инфраструктуры.
Сценарии использования VPN
- Удаленный доступ. Сотрудники компаний используют VPN для удаленной работы с корпоративными ресурсами.
- Транспортные тоннели. Между разными сегментами сети можно построить канал для передачи данных. Например, соединить офис в Москве и Санкт-Петербурге.
- Доступ к запрещенным ресурсам и анонимизация. Среди обычных пользователей это популярный сценарий. VPN позволяет получить доступ к сайту в обход региональных или государственных блокировок.
Что такое VPN-протокол
Протоколы VPN — это специальные правила, определяющие порядок работы виртуальной частной сети. Они отвечают за процессы аутентификации устройств, способы передачи данных, безопасность используемых алгоритмов и приватность соединения.
VPN-протокол состоит из туннелирования и шифрования. Протокол туннелирования создает соединение между вашим устройством и VPN-сервером, а протокол шифрования шифрует данные, чтобы никто не смог перехватить или подделать их.
Как работают VPN-протоколы
- Пользователь выбирает сервер в VPN-приложении и подключается к нему со своего устройства.
- VPN-сервис создает зашифрованный туннель. В нем шифрует данные клиента с помощью протокола.
- 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.

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 как сервис
Создайте удаленный доступ к вашей инфраструктуре в Selectel, используя алгоритмы шифрования ГОСТ.
Какой 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-бит, можно использовать другие протоколы поверх | Высокая | Поддержка нескольких десктопных и мобильных ОС. Нет нативных операционных систем. Подходит для мобильных устройств |
| Совсем небезопасен | Наблюдаются проблемы с безопасностью | Безопасен | Высокий уровень безопасности |
| 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-протоколов.
