PPTP VPN - что это? Средства защиты соединения. Реализация PPTP в разных ОС

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

Как рассказали представители Госдумы, в законе имеется оговорка, согласно которой шифрование сетей можно использовать в корпоративных целях. Это означает, что компаниям не придётся тратить значительные суммы и прокладывать частные сети между своими офисами, так как установка VPN-соединения практически (а в некоторых случаях так и есть) бесплатна. Поэтому сегодня мы решили рассмотреть два способа организации VPN-соединения в корпоративной сети и несколько применяемых для этого протоколов: PPTP, L2TP/IPsec, SSTP и OpenVPN.

Идет «по умолчанию» на любой VPN-совместимой платформе и легко настраивается без дополнительного программного обеспечения. Еще одно достоинство PPTP - высокое быстродействие. Но к сожалению, PPTP недостаточно безопасен. С момента включения протокола в состав Windows 95 OSR2 в конце девяностых, раскрылись несколько уязвимостей.

Самая серьезная - это возможность неинкапсулированной аутентификации MS-CHAP v2. Этот эксплойт позволил взломать PPTP за два дня. Microsoft «залатали» дыру, перейдя на протокол аутентификации PEAP , но потом сами предложили использовать VPN-протоколы L2TP/IPsec или SSTP. Еще один момент - PPTP-подключения легко заблокировать, потому что протокол работает с одним портом номер 1723 и использует GRE-протокол .

Когда VPN-туннель установлен, PPTP поддерживает два типа передаваемых сообщений: это контрольные сообщения для поддержания и отключения VPN-соединения, а также сами пакеты данных.

L2TP и IPsec

Layer 2 Tunneling Protocol, или L2TP , также представлен практически во всех современных операционных системах и работает со всеми устройствами, способными «воспринимать» VPN.

L2TP не умеет шифровать проходящий через него трафик, поэтому его часто используют в связке с IPsec . Однако это приводит к появлению негативного эффекта - в L2TP/IPsec происходит двойная инкапсуляция данных, что отрицательно сказывается на производительности. Также L2TP использует пятисотый UDP-порт, который легко блокируется файрволом, если вы находитесь за NAT.

L2TP/IPsec умеет работать с шифрами 3DES или AES. Первый уязвим для атак типа meet-in-the-middle и sweet32 , поэтому сегодня редко встречается на практике. При работе с AES-шифром о крупных уязвимостях неизвестно, поэтому в теории этот протокол должен быть безопасен (при правильной реализации). Однако Джон Гилмор (John Gilmore), основатель Electronic Frontier Foundation, указал в своем посте, что IPSec мог быть специальным образом ослаблен.

Наиболее серьезная проблема с L2TP/IPsec заключается в том, что многие VPN-сервисы реализуют его недостаточно хорошо. Они используют pre-shared keys (PSK), которые можно загрузить с сайта. PSK нужны для установки соединения, потому даже если данные оказываются скомпрометированы, они остаются под защитой AES. Но атакующий может использовать PSK, чтобы выдать себя за VPN-сервер и затем подслушать зашифрованный трафик (даже инжектировать вредоносный код).

SSTP

Secure Socket Tunneling Protocol, или SSTP , - это VPN-протокол, который разрабатывала компания Microsoft. Он основывается на SSL и впервые запущен в Windows Vista SP1. Сегодня протокол доступен для таких ОС, как RouterOS, Linux, SEIL и Mac OS X, однако основное применение он все равно находит на платформе Windows. SSTP - проприетарный стандарт, принадлежащий Microsoft, и его код недоступен для публичного обозрения.

Сам SSTP не имеет криптографического функционала за исключением одной функции - речь идет о криптографическом связывании (cryptographic binding), защищающем от атаки MITM. Шифрование же данных выполняет SSL. Описание процедуры установления VPN-соединения можно найти на сайте Microsoft.

Тесная интеграция с Windows упрощает работу с протоколом и повышает его стабильность на этой платформе. Однако SSTP использует SSL 3.0 , который уязвим для атаки POODLE , что в теории сказывается на защищённости VPN-протокола.

Типы подключения VPN

В сегодняшнем материале мы поговорим о двух наиболее часто используемых типах подключения к VPN. Речь пойдёт об удаленном доступе к корпоративной сети (remote access) и соединении «точка - точка» (site-to-site)

Удаленный доступ позволяет сотрудникам компании безопасно подключаться к корпоративной сети через интернет. Особенно это важно в том случае, когда сотрудник работает не в офисе и подключается через незащищенные точки доступа, например Wi-Fi в кафе. Для организации этого соединения, устанавливается туннель между клиентом на гаджете пользователя и VPN-шлюзом в сети компании. Шлюз проводит аутентификацию, а затем предоставляет (или ограничивает) доступ к ресурсам сети.

Чтобы защитить соединение чаще всего используются протоколы IPsec или SSL. Также возможно применение протоколов PPTP и L2TP.


/ Wikimedia / Philippe Belet / PD

PPTP (Point-to-Point Tunneling Protocol) - туннельный протокол типа точка-точка, позволяющий компьютеру устанавливать защищённое соединение с сервером за счёт создания специального туннеля в стандартной, незащищённой сети. PPTP помещает (инкапсулирует) кадры PPP в IP-пакеты для передачи по глобальной IP-сети, например Интернет. PPTP может также использоваться для организации туннеля между двумя локальными сетями.

Спецификация протокола была опубликована как «информационная» RFC 2637 в 1999 году. Она не была ратифицирована IETF. Протокол считается менее безопасным, чем IPSec - протокол защиты сетевого трафика на IP-уровне .

PPTP работает, устанавливая обычную PPP сессию с противоположной стороной с помощью протокола GRE туннели по 47 порту. Второе соединение на TCP-порту 1723 используется для инициации и управления GRE-соединением. PPTP сложно перенаправлять за сетевой экран , так как он требует одновременного установления двух сетевых сессий.

PPTP-трафик может быть зашифрован с помощью MPPE. Для аутентификации клиентов могут использоваться различные механизмы, наиболее безопасные из них - MS-CHAPv2 и EAP-TLS. Протокол PPTP нельзя считать приемлемым, с точки зрения информационной безопасности, как минимум, без принятия дополнительных мер по обеспечению информационной безопасности каналов связи, либо без применения дополнительных средств защиты информации (например - дополнительного шифрования). Т.о. PPTP не следует применять в общедоступных сетях (Интернет, частные(домашние) сети) для обеспечения конфиденциальности и-или сохранности коммерческой тайны (и особенно - для сохранности государственной тайны).

PPTP - Поддержка встроена в Windows.

Пожалуйста, обратите внимание, что PPTP VPN сервис использует для своей работы порт TCP 1721/TCP и протокол IP GRE (номер 47). Такие пакеты должны проходить через Ваш Firewall/NAT (и соответственно, Firewall/NAT Вашего провайдера), а если по дороге до нашего сервера есть NAT, то он должен корректно обрабатывать VPN соединение в целом (как правило, это осуществляется с помощью модуля PPTP NAT helper).

Реализация PPTP

Cisco первой реализовала PPTP и позже лицензировала эту технологию корпорации Microsoft. PPTP удалось добиться популярности благодаря тому что это первый протокол тоннелирования, поддерживаемый корпорацией Microsoft. Все версии Microsoft Windows, начиная с Windows 95 OSR2, включают в свой состав PPTP-клиент, однако существует ограничение на два одновременных исходящих соединения. А сервис удалённого доступа для Microsoft Windows включает в себя PPTP сервер.

До недавнего времени в Linux-дистрибутивах отсутствовала полная поддержка PPTP из-за опасения патентных претензий по поводу протокола MPPE. Впервые полная поддержка MPPE появилась в Linux 2.6.13. Официально поддержка PPTP была начата с версии ядра Linux 2.6.14. Тем не менее, сам факт применения MPPE в PPTP фактически не обеспечивает безопасность протокола PPTP. Операционная система FreeBSD поддерживает PPTP протокол, используя в качестве сервера PPTP порт MPD 5 настройка (/usr/ports/net/mpd), используя подсистему netgraph. В качестве клиента PPTP в системе FreeBSD может выступать либо порт pptpclient (/usr/ports/net/pptpclient), либо порт mpd, работающий в режиме клиента. Mac OS X поставляется со встроенным PPTP клиентом. Cisco и Efficient Networks продают реализации PPTP клиента для более старых версий Mac OS . КПК Palm, имеющие поддержку Wi-Fi, поставляются с PPTP клиентом Mergic.

PPTP (англ. Point-to-point tunneling protocol) - туннельный протокол типа точка-точка, позволяющий компьютеру устанавливать защищённое соединение с сервером за счёт создания специального туннеля в стандартной, незащищённой, сети. PPTP помещает (инкапсулирует) кадры PPP в IP-пакеты для передачи по глобальной IP-сети, например Интернет. PPTP может также использоваться для организации туннеля между двумя локальными сетями. РРТР использует дополнительное TCP-соединение для обслуживания туннеля.

Спецификация

Спецификация протокола была опубликована как «информационный» RFC 2637 в 1999 году. Она не была ратифицирована IETF. Протокол считается менее безопасным, чем другие VPN-протоколы, например, IPSec. PPTP работает, устанавливая обычную PPP сессию с противоположной стороной с помощью протокола Generic Routing Encapsulation. Второе соединение на TCP-порте 1723 используется для инициации и управления GRE-соединением. PPTP сложно перенаправлять за сетевой экран, так как он требует одновременного установления двух сетевых сессий.

PPTP-трафик может быть зашифрован с помощью MPPE. Для аутентификации клиентов могут использоваться различные механизмы, наиболее безопасные из них - MSCHAP-v2 и EAP-TLS.

Реализация PPTP

Cisco первой реализовала PPTP и позже лицензировала эту технологию корпорации Microsoft.

PPTP удалось добиться популярности благодаря тому что это первый VPN протокол, поддерживаемый корпорацией Microsoft. Все версии Microsoft Windows, начиная с Windows 95 OSR2, включают в свой состав PPTP-клиент, однако существует ограничение на два одновременных исходящих соединения. А сервис удалённого доступа для Microsoft Windows включает в себя PPTP сервер.

До недавнего времени в Linux-дистрибутивах отсутствовала полная поддержка PPTP из-за опасения патентных претензий по поводу протокола MPPE. Впервые полная поддержка MPPE появилась в Linux 2.6.13. Официально поддержка PPTP была начата с версии ядра Linux 2.6.14.

Операционная система FreeBSD поддерживает PPTP протокол, используя в качестве сервера PPTP порт mpd (/usr/ports/net/mpd), используя подсистему netgraph. В качестве клиента PPTP в системе FreeBSD может выступать либо порт pptpclient (/usr/ports/net/pptpclient), либо порт mpd, работающий в режиме клиента.

Mac OS X поставляется со встроенным PPTP клиентом. Cisco и Efficient Networks продают реализации PPTP клиента для более старых версий Mac OS. КПК Palm, имеющие поддержку Wi-Fi, поставляются с PPTP клиентом Mergic.

Microsoft Windows Mobile 2003 и более новые также поддерживают PPTP.

Пожалуйста, обратите внимание, что PPTP VPN сервис использует для своей работы порт TCP 1721/TCP и протокол IP GRE (номер 47). Такие пакеты должны проходить через Ваш Firewall/NAT (и соответственно, Firewall/NAT Вашего провайдера), а если по дороге до нашего сервера есть NAT, то он должен корректно обрабатывать VPN соединение в целом (как правило, это осуществляется с помощью модуля PPTP NAT helper).

Наши сервера поддерживают PPTP VPN c MPPE (Microsoft Point-to-Point Encryption) шифрованием и MPPC сжатием.

PPTP (от англ. Point-to-Point Tunneling Protocol ) - туннельный протокол типа точка-точка (узел-узел), позволяющий компьютеру устанавливать защищённое соединение с сервером за счёт создания туннеля в незащищённой сети.

PPTP помещает (инкапсулирует) кадры PPP в IP-пакеты для передачи по глобальной IP-сети, например Интернет. PPTP может также использоваться для организации туннеля между двумя локальными сетями. РРТР использует дополнительное TCP-соединение для обслуживания туннеля.

Данный протокол менее безопасен, чем IPSec. PPTP работает, устанавливая обычную PPP сессию с противоположной стороной с помощью протокола Generic Routing Encapsulation. Второе соединение на TCP-порте 1723 используется для инициации и управления GRE-соединением. PPTP сложно перенаправлять за сетевой экран, так как он требует одновременного установления двух сетевых сессий. PPTP-трафик может быть зашифрован с помощью MPPE. Для аутентификации клиентов могут использоваться различные механизмы, например - MS-CHAPv2 и EAP-TLS.

Вопрос безопасности и надежности протокола

  • MSCHAP-v1 совершенно ненадёжен. Существуют утилиты для лёгкого извлечения хэшей паролей из перехваченного обмена MSCHAP-v1;
  • MSCHAP-v2 уязвим к словарной атаке на перехваченные challenge-response пакеты. Существуют программы, выполняющие данный процесс;
  • В 2012 году было показано, что сложность подбора ключа MSCHAP-v2 эквивалентна подбору ключа к шифрованию DES, и был представлен онлайн-сервис, который способен восстановить ключ за 23 часа;
  • При использовании MSCHAP-v1, MPPE применяет одинаковый RC4 сессионный ключ для шифрования информационного потока в обоих направлениях. Поэтому стандартным методом является выполнение XOR’а потоков из разных направлений вместе, благодаря чему криптоаналитик может узнать ключ;
  • MPPE использует RC4 поток для шифрования. Не существует метода для аутентификации цифробуквенного потока, и поэтому данный поток уязвим к атаке, делающей подмену битов. Злоумышленник легко может заменить некоторые биты для изменения исходящего потока без опасности своего обнаружения. Данная подмена битов может быть зафиксирована с помощью протоколов, считающих контрольные суммы.

Структура

На рисунке 1 показано строение PPTP пакета. В целом - ничего особенного, в IP пакет инкапсулируется PPP кадр и GRE заголовок.

Кратко о GRE. Это протокол туннелирования, который работает на 3 уровне модели OSI. Функция GRE - инкапсуляция пакетов сетевого уровня сетевой модели OSI в IP пакеты.

Туннелирование подразумевает три протокола:

  • пассажир - инкапсулированный протокол (IP, CLNP, IPX, Apple Talk, DECnet Phase IV, XNS, VINES и Apollo);
  • протокол инкапсуляции (GRE);
  • транспортный протокол (IP).

Заголовок занимает 4 байта (рис. 2) и состоит из 2х частей:

1) 1-2 байты — flags:

- ChecksumPresent – бит 0, если равен 1, то в заголовке GRE присутствует необязательное поле контрольной суммы – Checksumfield;

- Key Present – бит 2, если равен 1, то в заголовке GRE присутствует необязательное поле, содержащее ключ – Key field;

- Sequence Number Present – бит 3, если равен 1, то в заголовке GRE присутствует необязательное поле порядкового номера – SequenceNumberfield;

- Version Number – биты 13–15. Данное поле обозначает версию реализации GRE. Значение 0 обычно используется для GRE. Point-To-Point протокол (PP2P) использует версию 1.

2) 3-4 байты. Содержат тип протокола (ethertype) инкапсулированного пакета.

MTU

Не менее важный вопрос для протокола - это вопрос MTU .

Так как PPTP - это полезная нагрузка + заголовок PPP+ GRE + заголовок IP. MTU Ethernet = 1500 байт, header IP = 20 байт, GRE = 4 байта. 1500-20-4 = 1476 байт.

Управляющие сообщения

В основе обмена данными по протоколу PPTP лежит управляющее соединение PPTP - последовательность управляющих сообщений, которые устанавливают и обслуживают туннель. Полное соединение PPTP состоит только из одного соединения TCP/IP, которое требует передачи эхо-команд для поддержания его открытым, пока выполняются транзакции. Ниже, на рисунке 3, указаны управляющие сообщения и их значения.

, и как его можно использовать? На сегодняшний день немногие современные пользователи знает что это.

Более того, некоторые пользователи, используя его, подчас даже не подозревают, что являются активными его пользователями.

А узнают о его существовании просто случайно, не задаваясь даже целью понять что это, и чем оно так полезно.

Введение в теорию PPTP

Название подключения или соединения PPTP происходит от имени протокола, на основе какового и построено такое подключение.

Полная расшифровка его англоязычной аббревиатуры звучит как point to point tunneling protocol. Что, по сути, означает туннельный протокол от точки к точке.

Точками в этом случае обозначены пара абонентов, которые связываются путем передачи данных зашифрованных в пакеты и передающихся посредством незащищенных сетей, построенных по принципам TCP/IP.

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

Если рассматривать соединение PPTP более подробно, окажется, что оно позволяет преобразовывать кадры PPP в IP-пакеты привычного типа.

А именно они передаются по каналу связи, например, по интернету или другой проводной, а также беспроводной сети.

Важно, что PPTP сложно назвать идеальным, и в ряде случаев, этот способ проигрывает в сравнении с другими моделями типа IPSec, поскольку имеет меньший уровень безопасности.

Впрочем, это не мешает его использовать повсюду и достаточно широко. От такого не стоит отказываться, и сейчас рассмотрим почему.

рис. 1 – Схематическое изображение PPTP соединения

Что дает соединение PPTP

Несмотря на некоторые огрехи в безопасности, соединение PPTP позволяет обеспечить базовую защиту данных и поэтому такой протокол имеет широкую сферу применения.

В частности, его можно с успехом использовать для осуществления дальних звонков с ощутимой экономией.

Происходит это потому как этот протокол не требует прямого соединения между двумя абонентами. Оно производится по защищенной линии в интернете, которая и называется туннелем.

Что касается туннеля, то он используется исключительно в роли посредника.

В то же время PPTP с успехом применяется при формировании клиент-серверных соединений. В этом случае соединение происходит несколько иначе.

Абонент, т. е. пользователь подключает свой терминал – рабочее устройство к серверу посредством того же защищенного канала.

Базовые правила подключения PPTP

Но прежде чем начать работу с подключением PPTP, его следует настроить и соблюсти несколько важных условий.

К особенностям настройки используемого туннелирования стоит отнести следующее:

  • порт TCP № 1723;
  • порт IP GRE №

При этом чтобы данные настройки работали соответствующим образом параметры встроенного брандмауэра (или сетевого экрана) не должны ограничивать поток IP-пакетов.

Их отправка и прием должна быть свободной.

Впрочем, даже если эти правила будут соблюдены при настройке подключения локально, не факт, что PPTP будет работать корректно.

Важно: Для правильной работы протокола провайдер должен обеспечить полную свободу пересылки туннелированных данных.

Детализация процесса подключения

Упомянутые выше точки соединяются посредством PPP-сессии, которая формируется на платформе протокола GRE.

Его аббревиатура расшифровывается как Generic Routing Encapsulation.

За его менеджмент и инициализацию несет ответственность второе подключение порта TCP.

Информация в форме пакета IPX который передается от точки к точке называется полезной нагрузкой, а дополняется он управляющей информацией.

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

Постобработку производятся встроенными средствами системы соответственно указанному протоколу.

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

Поэтому важно использовать хорошо продуманную комбинацию логина и пароля, которые и отвечают за безопасность в процессе отправки/получения данных, а не в процессе пересылки.

рис. 4 – Уязвимые места PPTP

Обеспечение защиты соединения

Как отмечалось выше, данные передаются в форме шифрованного пакета.

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

Мы же выделим те которые характеризуются высокой степенью защищенности, в частности это:

  • MSCHAP-v1;
  • MSCHAP-v2;
  • EAP-TLS;
  • MPPE.

Чтобы обеспечить повышенный уровень защиты можно дополнительно использовать дозвоны - звонки ответа, реализованные программным путем.

Они позволяют удостовериться в том, был ли пакет данных передан полностью, и был ли поврежден в процессе пересылки.

А пока рассмотрим, чем выделяются представленные выше варианты.

Стоит отметить, что MSCHAP-v1 не отличается своей надежностью.

Для извлечения парольных хешей из него можно использовать специальные утилиты перехваченного обмена.

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

Криптоаналитики могут расшифровать данные и из MPPE, который базируется на использовании потока RC4.

К примеру, расшифровать его можно используя метод подмены битов.

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

Таким образом, становится понятно, что установленную на PPTP защиту можно обойти. И именно поэтому приходится использовать дополнительные средства безопасности.

рис. 5 – Упрощенная схема защищенного PPTP канала

Вам это может быть интересно:

Пример настройки параметров PPTP в OS MS WINDOWS 7

Чтобы понять все тонкости PPTP-соединения стоит попытаться самостоятельно провести настройки такого подключения.

Мы рассмотрим, как этот процесс происходит в системе , в частности, в популярной седьмой ее версии. Сделать это несложно следуя нашим рекомендациям.

Изначально потребуется запустить Панель управления . Произвести это проще всего из меню Пуск .

В ней понадобится выбрать категорию Центр управления сетями .

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

Найти его можно в области уведомлений, расположенной справа в нижней части экрана.

После запуска Центра управления можно будет вносить изменения в свойства сетевого адаптера.

С этой целью понадобится в левой области окна выбрать команду Изменение параметров сетевого адаптера .

Затем можно вызывать пункт Свойства из контекстного меню для имеющегося локального подключения.

При этом большая часть провайдеров позволяет устанавливать адреса на рабочих станциях для DNS и IP серверов в автоматическом режиме.

По завершении внесения изменений в настройки понадобится активизировать подключение.

С этой целью в основном окне Центра управления нужно выделить настроенное ранее подключение и вызвать для него меню правой кнопкой мыши.

В нем следует выбрать пункт Включить .