PPTP

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

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

править

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

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

Реализация PPTP

править

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

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

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

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

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

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

Безопасность протокола PPTP

править

PPTP был объектом множества анализов безопасности, в нём были обнаружены различные серьёзные уязвимости. Известные относятся к используемым протоколам аутентификации PPP, устройству протокола MPPE и интеграции между аутентификациями MPPE и PPP для установки сессионного ключа. Краткий обзор данных уязвимостей:

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

См. также

править

Примечания

править
  1. "PPTP - Point to Point Tunneling Protocol", Bradley Mitchell, Updated June 25, 2016. Дата обращения: 13 ноября 2016. Архивировано 13 ноября 2016 года.
  2. Служба поддержки Apple. Дата обращения: 12 июля 2017. Архивировано 27 сентября 2016 года.
  3. 1 2 Bruce Schneier, Cryptanalysis of Microsoft's Point to Point Tunneling Protocol (PPTP). Дата обращения: 21 декабря 2010. Архивировано из оригинала 4 июня 2011 года.
  4. Статья Exploiting Cisco Leap Архивировано 26 июля 2012 года.  (англ.)  (Дата обращения: 1 сентября 2011)
  5. Divide and Conquer: Cracking MS-CHAPv2 with a 100% success rate Архивировано 16 марта 2016 года.
  6. Bruce Schneier, Cryptanalysis of Microsoft's PPTP Authentication Extensions (MS-CHAPv2), October 19 1999. Дата обращения: 21 декабря 2010. Архивировано 3 апреля 2015 года.

Ссылки

править