PPTP
PPTP (Point-to-Point Tunneling Protocol, протокол туннелирования «точка-точка») — это устаревший сетевой протокол канального уровня, разработанный для создания виртуальных частных сетей (VPN) путём инкапсуляции PPP-кадров (Point-to-Point Protocol) в IP-пакеты. Протокол был стандартизирован в 1999 году в RFC 2637, но к началу 2020-х годов считается небезопасным и практически не используется в современных системах из-за многочисленных уязвимостей.
История создания
Протокол PPTP был разработан компаниями Microsoft Corporation (организация признана нежелательной в РФ) и Ascend Communications (ныне часть Nokia) в середине 1990-х годов. Первоначально он предназначался для организации удалённого доступа к корпоративным сетям через коммутируемые телефонные линии (dial-up) с использованием PPP. В 1996 году Microsoft включила поддержку PPTP в операционную систему Windows 95, что обеспечило протоколу широкое распространение.
В 1999 году спецификация PPTP была опубликована как информационный RFC 2637, однако она так и не получила статуса стандарта Интернета (Internet Standard). Протокол оставался проприетарным, хотя его реализация была доступна для многих операционных систем, включая Linux, macOS и Android.
Архитектура и принцип работы
PPTP работает на канальном уровне модели OSI (уровень 2) и использует два параллельных соединения:
- Управляющее соединение — TCP-порт 1723 для установки, поддержания и разрыва туннеля.
- Туннельное соединение — протокол GRE (Generic Routing Encapsulation, IP-протокол 47) для передачи инкапсулированных PPP-пакетов.
Процесс установки соединения
- Клиент устанавливает TCP-соединение с сервером на порт 1723.
- По управляющему каналу происходит аутентификация и согласование параметров туннеля.
- После установки туннеля клиент и сервер обмениваются PPP-пакетами, инкапсулированными в GRE-кадры.
- PPP-пакет может содержать вторичную аутентификацию (например, PAP, CHAP, MS-CHAP v1/v2) и протоколы сетевого уровня (IP, IPX, NetBEUI).
Инкапсуляция данных
Структура пакета PPTP выглядит следующим образом:
- IP-заголовок (внешний)
- GRE-заголовок (с флагом PPTP)
- PPP-заголовок
- Полезная нагрузка (данные пользователя)
- При необходимости — PPP-контрольная сумма
Классификация и варианты
PPTP не имеет формальных подтипов, однако различают:
- PPTP-клиент — программное обеспечение, инициирующее соединение.
- PPTP-сервер — служба, принимающая входящие соединения (часто реализована как часть RAS — Remote Access Service в Windows Server).
- PPTP-пассивный режим — используется в некоторых маршрутизаторах для проброса портов.
Устройство и характеристики
Основные параметры
- Максимальный размер пакета (MTU) — 1400 байт (из-за накладных расходов GRE и PPP).
- Поддерживаемые протоколы аутентификации: PAP (нешифрованный), CHAP, MS-CHAP v1, MS-CHAP v2, EAP-TLS.
- Методы шифрования: MPPE (Microsoft Point-to-Point Encryption) с ключами 40, 56 или 128 бит.
- Порты: TCP 1723 (управление), IP-протокол 47 (GRE).
Особенности реализации
- Не требует установки дополнительного ПО в Windows (встроенная поддержка).
- Не поддерживает шифрование на уровне IP (IPsec), что является одним из главных недостатков.
- Не обеспечивает целостность и аутентификацию передаваемых данных на уровне пакетов.
Применение
В конце 1990-х — начале 2000-х годов PPTP широко использовался для:
- Удалённого доступа сотрудников к корпоративным сетям через интернет.
- Организации VPN-соединений в малых и средних предприятиях.
- Обхода региональных ограничений доступа к веб-сайтам (например, для доступа к заблокированным ресурсам).
В России PPTP применялся в некоторых коммерческих VPN-сервисах до 2010-х годов, но после выявления критических уязвимостей его использование резко сократилось. В настоящее время протокол практически не используется в корпоративном секторе и полностью вытеснен более безопасными решениями (OpenVPN, IPsec, WireGuard).
Критика и уязвимости
PPTP подвергается серьёзной критике со стороны специалистов по информационной безопасности. Основные недостатки:
1. Отсутствие аутентификации GRE-пакетов
GRE-туннель не имеет встроенной аутентификации, что позволяет злоумышленнику проводить атаки типа «человек посередине» (MITM) и подменять пакеты.
2. Слабость протокола MS-CHAP v2
Аутентификация MS-CHAP v2, используемая по умолчанию, уязвима к атаке по словарю. В 2012 году исследователи Moxie Marlinspike и David Hulton продемонстрировали возможность восстановления пароля MS-CHAP v2 за несколько часов с помощью облачных вычислений.
3. Уязвимость MPPE
Шифрование MPPE использует потоковый шифр RC4, который подвержен атакам на основе известного открытого текста. Ключи шифрования могут быть восстановлены при перехвате достаточного количества трафика.
4. Отсутствие защиты целостности
PPTP не обеспечивает проверку целостности передаваемых данных, что позволяет злоумышленнику модифицировать пакеты без обнаружения.
5. Проблемы с NAT
PPTP плохо работает через устройства трансляции сетевых адресов (NAT), так как GRE-пакеты не имеют портов. Для решения этой проблемы требуется поддержка PPTP-пасса (PPTP Passthrough) в маршрутизаторе.
6. Устаревшая криптография
Используемые алгоритмы (RC4, MD4, MD5) считаются криптографически слабыми и не рекомендованы к применению в современных системах.
Интересные факты
- В 1998 году компания Microsoft выпустила обновление для PPTP, исправляющее несколько уязвимостей, но протокол так и не стал безопасным.
- Протокол PPTP поддерживается в Windows вплоть до Windows 11, но Microsoft официально рекомендует использовать вместо него L2TP/IPsec или SSTP.
- В 2012 году на конференции Black Hat была представлена утилита
pptp-chap, позволяющая восстанавливать пароли MS-CHAP v2 за считанные минуты. - В некоторых странах (например, в Китае) PPTP блокируется на уровне провайдеров из-за простоты обнаружения GRE-трафика.
Современное состояние
По состоянию на 2025 год PPTP считается устаревшим и небезопасным протоколом. Ведущие организации по информационной безопасности (NIST, ENISA, OWASP) не рекомендуют его использование. В России протокол не запрещён, но его применение в корпоративных сетях считается недопустимым с точки зрения защиты информации. Вместо PPTP рекомендуется использовать:
- OpenVPN (с шифрованием AES-256-GCM)
- IPsec/IKEv2
- WireGuard
- L2TP/IPsec (с сильными ключами)
Несмотря на это, PPTP всё ещё встречается в старых сетевых устройствах и встроенных системах, где обновление протокола невозможно по техническим причинам.
Источники
- RFC 2637 — Point-to-Point Tunneling Protocol (PPTP), 1999.
- RFC 3078 — Microsoft Point-to-Point Encryption (MPPE) Protocol, 2001.
- RFC 2548 — Microsoft Vendor-specific RADIUS Attributes, 1999.
- M. Marlinspike, D. Hulton. «Divide and Conquer: Cracking MS-CHAPv2 with a 100% success rate», Black Hat 2012.
- NIST Special Publication 800-77 Rev. 1 — Guide to IPsec VPNs, 2020.
- ENISA — Security of Virtual Private Networks, 2021.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →