🔌 История PPTP: взлет и падение протокола
- Получить ссылку
- X
- Электронная почта
- Другие приложения
Это третья статья из цикла об истории VPN-протоколов. Сегодня мы детально разберём, как устроен PPTP — от установки соединения до инкапсуляции пакетов, и почему этот протокол, когда-то бывший стандартом, сегодня считается опасным для использования.
🤔 Вместо введения: что
такое PPTP?
В прошлых статьях мы говорили о зарождении VPN и протоколе
аутентификации MS-CHAP. Но именно PPTP (Point-to-Point Tunneling
Protocol) стал тем самым протоколом, который сделал VPN массовым.
Разработанный в середине 1990-х годов консорциумом во главе с Microsoft, он
впервые позволил обычным пользователям подключаться к корпоративным сетям через
обычный интернет.
Главная идея PPTP проста: взять кадры PPP
(Point-to-Point Protocol), которые обычно передаются по прямому соединению,
завернуть их в IP-пакеты и отправить через интернет. На другом конце —
распаковать.
Звучит просто. И действительно — просто. Но именно в этой
простоте кроются как преимущества, так и фундаментальные проблемы протокола.
🏗️ Архитектура PPTP: два
параллельных канала
PPTP устроен не как единый поток данных, а как два
параллельных компонента:
- Управляющее
соединение — по TCP (порт 1723)
- Туннель
для данных — через модифицированный GRE (Generic Routing
Encapsulation)
Эти два канала работают одновременно, но решают разные
задачи.
text
Клиент <-----> TCP 1723 (управление) <----->
Сервер
Клиент <-----> GRE (данные) <-----> Сервер
📡 Компонент 1:
управляющее соединение (TCP 1723)
Управляющее соединение — это мозг всего
протокола. Оно отвечает за создание, поддержание и завершение туннеля.
Как оно устанавливается:
- Клиент
открывает TCP-соединение к серверу на порту 1723.
- Стороны
обмениваются сообщениями Start-Control-Connection-Request и Start-Control-Connection-Reply —
это как рукопожатие, в котором они договариваются о своих возможностях.
- После
установки соединения по нему передаются все управляющие сообщения:
- Запросы на установку звонка (Incoming-Call-Request /
Outgoing-Call-Request)
- Изменения
параметров (Set-Link-Info)
- Проверка
живости соединения (Echo-Request / Echo-Reply) — чтобы вовремя
заметить обрыв
- Завершение
сессии — когда пользователь отключается
Управляющее соединение существует все время,
пока активен туннель. Оно поддерживает связь между двумя ключевыми сущностями:
- PAC (PPTP
Access Concentrator) — устройство, к которому подключается пользователь
- PNS (PPTP
Network Server) — серверная сторона протокола
🚇 Компонент 2: туннель
данных (GRE)
Если управляющее соединение — это мозг, то GRE-туннель —
это кровеносная система. Именно по нему текут пользовательские
данные.
Что такое GRE?
GRE (Generic Routing Encapsulation) — это
протокол-«конверт». Он берёт один пакет, добавляет к нему свой заголовок и
упаковывает в другой пакет. В случае PPTP этот «конверт» используется для
транспортировки PPP-кадров через IP-сеть.
Структура пакета PPTP
Когда пользователь отправляет данные через PPTP-соединение,
пакет проходит несколько уровней «упаковки»:
В IP-заголовке устанавливается ID протокола, равный
47 — это сигнал для маршрутизаторов, что внутри находится GRE-пакет.
Особенность PPTP-GRE
Стандартный GRE был модифицирован для нужд PPTP. В заголовке
появились:
- Поле
Call ID — идентификатор сессии, чтобы различать несколько
пользователей в одном туннеле
- Поле
Acknowledgement Number — для управления потоком и подтверждениями
- Sequence
Number — для нумерации пакетов и обнаружения потерь
«PPTP использует модифицированную версию GRE для обеспечения
сервиса инкапсуляции с управлением потоком и перегрузками»
Важно: GRE не является TCP или UDP. Это
отдельный протокол, и многие современные межсетевые экраны (firewalls) и
NAT-устройства его неправильно обрабатывают. Именно поэтому для работы PPTP
часто требуется специальная настройка — «PPTP Passthrough».
🔄 Полный процесс
установки PPTP-соединения
Теперь, когда мы знаем оба компонента, давайте посмотрим,
как они работают вместе:
Шаг 1: Инициация
Клиент открывает TCP-соединение к серверу на порту
1723. Это старт управляющего канала.
Шаг 2: Установка управляющего соединения
Клиент и сервер обмениваются приветственными сообщениями,
договариваясь о возможностях (размер кадров, поддержка шифрования, протоколы
аутентификации).
Шаг 3: Запрос на создание туннеля
Клиент (или сервер) отправляет запрос на создание сессии
— Incoming-Call-Request. Это начало «трёхстороннего рукопожатия»
PPTP.
Шаг 4: Аутентификация
Сервер проверяет учётные данные пользователя. Используются
стандартные PPP-методы: PAP (передача пароля в открытом виде), CHAP,
MS-CHAPv1/v2, EAP.
Шаг 5: Создание GRE-туннеля
После успешной аутентификации стороны договариваются о
параметрах GRE-туннеля и начинают передавать данные.
Шаг 6: Передача данных
Пользовательские пакеты проходят через PPP-инкапсуляцию,
затем через GRE, затем через внешний IP и отправляются по интернету.
Шаг 7: Поддержание соединения
Управляющее соединение периодически отправляет Echo-Request и
ожидает Echo-Reply. Если ответа нет — соединение разрывается.
Шаг 8: Завершение
Когда пользователь отключается, по управляющему каналу
отправляется сообщение о завершении сессии, и TCP-соединение закрывается.
🔐 Шифрование и
аутентификация в PPTP
Здесь начинаются самые большие проблемы PPTP.
Аутентификация
PPTP сам по себе не определяет метод аутентификации.
Он использует механизмы PPP. На практике применялись:
- PAP —
пароль передаётся в открытом виде (никогда не используйте!)
- CHAP —
более безопасный, но всё ещё уязвимый
- MS-CHAPv1/v2 —
проприетарные протоколы Microsoft (о которых мы говорили в прошлой статье)
«Спецификация PPTP не описывает функции шифрования или
аутентификации и полагается на туннелируемый PPP-протокол для реализации всех
функций безопасности»
Шифрование: MPPE
Для шифрования данных PPTP использует MPPE
(Microsoft Point-to-Point Encryption).
MPPE — это не отдельный алгоритм, а обёртка над RC4 —
потоковым шифром, разработанным в 1987 году.
MPPE поддерживает три длины ключа:
- 40
бит — экспортная версия (смехотворно слабая)
- 56
бит — чуть лучше, но всё равно недостаточно
- 128
бит — максимальная, но и она имеет серьёзные проблемы
Важное ограничение: MPPE доступен только при
использовании MS-CHAPv1/v2 или EAP-TLS. Если используется PAP или CHAP —
шифрования не будет.
«MPPE обеспечивает шифрование только туннеля; он не
обеспечивает сквозное шифрование от клиента до VPN-сервера»
💀 Уязвимости PPTP: почему
он опасен
PPTP имеет столько проблем с безопасностью, что их можно
перечислять долго. Вот основные:
1. MS-CHAPv2 взламывается за часы
MS-CHAPv2 можно взломать, перехватив одно рукопожатие. В
2012 году исследователи показали, что это делается за считанные часы.
«Современные компьютеры могут взломать MS-CHAPv2 за часы,
иногда минуты»
2. RC4 — устаревший и сломанный шифр
RC4 имеет множество известных атак. Криптографы уже давно
рекомендуют отказаться от его использования.
3. Атаки с переворотом битов (Bit-flipping)
MPPE уязвим для атак, при которых злоумышленник изменяет
отдельные биты в зашифрованном трафике, добиваясь нужного эффекта при
расшифровке.
4. Отсутствие проверки целостности
GRE не проверяет целостность пакетов. Злоумышленник может
модифицировать трафик в пути, и никто этого не заметит.
5. Атака «человек посередине» (MITM)
Из-за слабой аутентификации и отсутствия проверки
сертификатов PPTP极易 поддаётся MITM-атакам.
6. Проблемы с NAT и Firewall
GRE-трафик (IP protocol 47) часто блокируется корпоративными
и домашними маршрутизаторами.
Современные серверы требуют правильной настройки безопасности. О том, как защитить свой сервер с помощью брандмауэра UFW, читайте в нашем руководстве по UFW.
⚖️ Преимущества PPTP (да, они
были)
Несмотря на все проблемы, у PPTP были и свои плюсы, которые
и сделали его популярным:
📋 Преимущества PPTP
| Преимущество | Пояснение |
|---|---|
| Простота настройки | Встроен во все версии Windows, настройка занимает минуты |
| Высокая скорость | Лёгкое шифрование даёт минимальную задержку |
| Широкая совместимость | Работает на устройствах от Windows 95 до Windows 11 |
| Поддержка любых протоколов | Через PPP можно передавать IP, IPX, NetBEUI и другие |
Таблица обновлена в рамках цикла статей об истории VPN-протоколов
📉 Почему PPTP умер?
PPTP — это классический пример того, как технология,
созданная для одной эпохи, становится опасной в другой. В 1990-х годах, когда
интернет был другим, а вычислительные мощности — ограниченными, PPTP казался
прогрессивным решением.
Сегодня ситуация иная:
- MS-CHAPv2 взламывается
за часы
- RC4 признан
небезопасным
- GRE плохо
проходит через NAT и фаерволы
- Нет
проверки целостности — трафик можно модифицировать
📋 Что использовать вместо PPTP?
| Протокол | Почему лучше |
|---|---|
| OpenVPN | Открытый код, современная криптография, гибкость |
| WireGuard | Современный, быстрый, безопасный |
| IKEv2/IPsec | Стабильный, хорошо работает на мобильных устройствах |
| L2TP/IPsec | Надёжный, но медленнее PPTP |
Таблица обновлена в рамках цикла статей об истории VPN-протоколов
Microsoft, создатель протокола, рекомендует отказаться от PPTP в пользу более безопасных решений.
✅
📚 Что мы узнали?
📋 Компоненты PPTP и их назначение
| Компонент | Назначение |
|---|---|
| TCP 1723 | Управляющее соединение — создание, управление, завершение туннеля |
| GRE (IP 47) | Туннель для данных — инкапсуляция PPP-кадров |
| PPP | Инкапсуляция пользовательских данных, аутентификация |
| MPPE (RC4) | Шифрование трафика (40/56/128 бит) |
| MS-CHAPv2 | ❌ Основной метод аутентификации (взломан) |
Таблица обновлена в рамках цикла статей об истории VPN-протоколов
Главный вывод: PPTP — это исторический артефакт.
Он сыграл огромную роль в развитии VPN-технологий, но сегодня его использование
— это серьёзный риск для безопасности. Если вы встретили PPTP в настройках —
отключайте.
🔜 Что дальше?
В следующей статье мы разберём L2TP (Layer 2Tunneling Protocol) — протокол, который пришёл на смену PPTP и объединил лучшие черты PPTP и L2F от Cisco. Узнаем, почему L2TP почти всегда используется вместе с IPsеc и в чём его сильные и слабые стороны.
Оставайтесь на связи! 🚀
📚 Источники
Материалы подготовлены на основе открытых источников:
- RFC 2637 — Point-to-Point
Tunneling Protocol (PPTP) — официальная спецификация
- Википедия — Point-to-Point
Tunneling Protocol
- Microsoft Learn — Point-to-Point
Tunneling Protocol
- GeeksforGeeks — Point-to-Point
Tunneling Protocol - PPTP
- Palo Alto Networks — What Is PPTP
- Check Point — Point-to-Point Tunneling
Protocol (PPTP)
- Private Internet Access — What Is a PPTP
VPN?
- Получить ссылку
- X
- Электронная почта
- Другие приложения
Популярные сообщения
🧬 ChaCha20 и Curve25519: Криптография под капотом WireGuard
Немного о том, зачем это нужно.
🚀 WireGuard: Технический разбор самого быстрого VPN-протокола
⚡ ИИ-помощник (на OpenRouter)
Спросите про VPN, протоколы или настройку серверов.
Комментарии
Отправить комментарий