Этот протокол позволяет реализовывать защищенное соединение «точка-точка» путем создания туннеля в незащищенной сети. Работа PPTP заключается во внедрении в пакеты IP кадров PPP для передачи их в любой IP-сети, в том числе, Internet. Кроме того, эту технологию можно применить для создания туннеля между локальными сетями. Для обслуживания созданного PPTP туннеля используется TCP-соединение. Краткая спецификация Публикация спецификации протокола произошла в 1999 г. в документе RFC2637, однако комьюнити IETF ее так и не ратифицировало. Будучи менее безопасным, нежели IPSec, PPTP устанавливает PPP-сессию при помощи протокола GRE. Для управления и инициации соединения GRE используется 1723 порт TCP. Перенаправление PPTP за сетевой экран затруднено, так как протокол требует установления двух сессий одновременно. Шифрование трафика может осуществляться при помощи MPPE, а для аутентификации используются различные механизмы, самыми безопасными из которых считаются EAP-TLS и MS-CHAPv2. Реализация Впервые технологию реализовала компания Cisco, продав впоследствии лицензию на использование компании Microsoft. Популярность к PPTP пришла благодаря тому, что этот протокол был первым, который Microsoft использовала для туннелирования. Начиная с Windows95 OSR2, клиент PPTP включен во все версии ОС Microsoft, однако в нем есть ограничение на два исходящих соединения, запущенных одновременно. Из-за патентных сложностей в дистрибутивах Linux некоторое время отсутствовала полноценная поддержка PPTP. Впервые она появилась в 2005 г. в ядре Linux версии 2.6.13, а официально — c версии 2.6.13. Что касается безопасности, то использование MPEE не обеспечивает достаточной защищенности протокола PPTP. FreeBSD также поддерживает PPTP, в качестве сервера используя mpd и подсистему netgraph, а также, как вариант, программу PoPToP. Как клиент может выступать pptpclient, либо работающий как клиент mpd. Все эти программы доступны через систему портов. В MacOS X существует встроенный клиент PPTP, а для старых версий MacOS есть реализации, продаваемые Cisco. КПК Palm, оборудованные поддержкой Wi-Fi, оснащаются клиентом Mergic. Поддержка PPTP реализована также в Windows Mobile и Apple iOS (iPhone, iPad). Безопасность В результате многочисленных аналитических исследований в реализации PPTP обнаружен ряд серьезных уязвимостей. Они относятся к устройству протокола MPPE, протоколам аутентификации, используемым PPP, а также интеграции MPPE и PPP в ходе установки ключа сессии. Вот краткий перечень уязвимостей: Для шифрования MPPE используется поток RC4. Так как не существует реализации аутентификации потока из цифр и букв, данный поток является уязвимым к подмене битов. Злоумышленник может заменять ряд битов для изменения исходящего потока без опасности обнаружить себя. Увидеть подобную подмену можно только в протоколах, использующих подсчет контрольных сумм. MSCHAP-v1 является абсолютно ненадежным (извлекать хеши паролей из обмена MSCHAP-v1 позволяет ряд утилит). MSCHAP-v2 считается уязвимым к атаке по словарю на перехваченные пакеты challenge responseю (существуют утилиты, совершающие подобные атаки). Используя MSCHAP-v1, протокол MPPE использует один сессионный ключ RC4 для шифрования в обоих направлениях. Из-за этого извлечение ключа можно осуществить достаточно простыми методами.