Классические протоколы: PPTP, L2TP, IPsec, OpenVPN, SSTP

Эти пять — фундамент VPN-индустрии 2000-х. Понимать их обязательно: половину из них до сих пор используют в корпоративных сетях (IPsec, SSTP), а понимание их слабостей объясняет, почему появились WireGuard, Reality и всё остальное.

Главная мысль урока

Все пять протоколов прекрасно блокируются современным DPI. Кроме корпоративного site-to-site (где DPI обычно нет), в 2026 ни один из них не годится для обхода блокировок. Их нужно знать как «зачем мы пришли к новому». Не как «что использовать сегодня».

1. PPTP — Point-to-Point Tunneling Protocol

1996 год, Microsoft + Ascend + 3Com. Самый старый коммерческий VPN, который до сих пор местами включён по дефолту. Простая идея: расширение PPP (модемный протокол) на TCP/IP.

ПараметрЗначение
ТранспортTCP (control) + GRE (data, протокол IP №47)
ПортTCP 1723 + GRE
АутентификацияMS-CHAPv2 (взломан 2012), PAP (открытый пароль), EAP
ШифрованиеMPPE (RC4, 40/128 бит) — устаревшее, без AEAD
Безопасность 2026F — взломан, использовать НЕЛЬЗЯ
УдобствоВстроен в Windows из коробки до Windows 11
Почему PPTP мёртв

MS-CHAPv2 — публично сломан

В 2012 на DEF CON Moxie Marlinspike показал ChapCrack: за 1 день перебора DES-ключей атакующий с записью handshake получает пароль пользователя. Сервис cloudcracker.com делал это за $200.

После этого Microsoft, Apple, OpenBSD рекомендуют отключать PPTP. Cisco убрала из IOS. В iOS 10 и macOS Sierra (2016) поддержка удалена. Если в инструкции твоего VPN-провайдера встречаешь PPTP — беги.

2. L2TP/IPsec — Layer 2 Tunneling Protocol

1999-2005. Логичный наследник PPTP. Сам L2TP — туннельный протокол без шифрования, его всегда комбинируют с IPsec, который добавляет криптографию. Поэтому везде пишут «L2TP/IPsec» через слеш.

ПараметрЗначение
ТранспортUDP 1701 (L2TP) + UDP 500/4500 (IPsec IKE/NAT-T)
ШифрованиеIPsec: AES-CBC/GCM, ChaCha20-Poly1305 (новые реализации)
АутентификацияPSK (общий секрет) — главный режим, или сертификаты
Безопасность 2026C — криптография ок, но детектится мгновенно
Главная проблемаФиксированные порты 500/4500/1701 — блокируются на раз

Поверх IPsec накладывается L2TP — он переносит уже зашифрованный PPP. Получается двойная инкапсуляция: overhead ~70 байт. Зато встроено в Windows/macOS/iOS из коробки.

Под капотом

Почему IPsec не один и зачем L2TP

Классический IPsec в режиме tunnel передаёт IP-пакеты, но не умеет аутентифицировать пользователя (только машину) и плохо работает с динамическими IP. L2TP добавляет PPP-уровень: каждый клиент видит виртуальный «PPP-канал», получает динамический IP, можно раздать DNS, разные пароли. IPsec лишь защищает этот L2TP.

В современных продуктах эту проблему решили через IKEv2 mobike + EAP — и L2TP стал не нужен. Поэтому новые реализации идут «чистый IKEv2/IPsec» без L2TP.

3. IPsec — индустриальный стандарт

RFC 4301+ (2005). Не «один протокол», а целый стек (IKE + ESP + AH). Это до сих пор стандарт site-to-site VPN в корпоративных сетях, телекомах, между ДЦ. Если работаешь инженером СПД — этот раздел обязателен.

Стек IPsec

IPsec — два протокола работают вместе
IKE (control plane) «как договориться о ключах» UDP 500 (IKE_SA_INIT) DH key exchange, выбор шифров, аутентификация UDP 4500 (NAT-T) «как пройти через NAT» (overlay over UDP) Результат: SA (Security Association) пара ключей, SPI, шифр, время жизни передаётся в ESP для шифрования трафика ESP (data plane) «как шифровать пакеты» IP protocol №50 отдельный transport layer (не TCP, не UDP) tunnel mode шифрует ВЕСЬ исходный пакет, добавляет новый IP-header (site-to-site по умолчанию) transport mode шифрует ТОЛЬКО payload (TCP/UDP уже зашифрован) (host-to-host, гораздо реже) ключи
IKE договаривается о ключах, ESP с ними шифрует. Два разных протокола в одной системе.

IKEv1 vs IKEv2 — главная развилка

IKEv1 (1998)IKEv2 (2005, RFC 7296)
Сообщений в handshake9 (Main mode) или 6 (Aggressive)4 (всегда)
NAT TraversalХак через NAT-TВстроено в стандарт
EAP authenticationНетДа (RADIUS, OTP, сертификаты)
ПерезаключениеСложно, рвёт сессиюMOBIKE: смена IP без разрыва
Атаки на агрессивный режимУтечка PSK-хэша → offline bruteНет
Использовать в 2026НельзяДа
Атака

Aggressive Mode IKEv1 — древняя дыра, до сих пор у многих включена

В Aggressive Mode сервер шлёт PSK-хэш в открытом виде (один из шагов рукопожатия не шифруется). Атакующий с интернета может запросить handshake, получить хэш и offline перебирать словарём. Утилита ike-scan + psk-crack делают это автоматически.

В 2025 году такие настройки до сих пор встречаются на старых Cisco ASA и FortiGate. Если ты сетевик — это первая проверка при аудите.

Где IPsec живёт и почему

Когда IPsec — правильный выбор

Site-to-site между корпоративными сетями без активного DPI. В корпсети не блокируют UDP 500/4500 — это нормальный трафик. Скорость отличная (на железе с AES-NI близка к линейной), стандарт RFC, совместимость между вендорами. WireGuard в site-to-site между разными вендорами не работает — IPsec единственный универсальный.

4. OpenVPN — народный TLS-VPN

2001, James Yonan. Идея: построим VPN поверх TLS, используем готовую OpenSSL, запустим в userspace. Получилось — кросс-платформа (Linux/Win/Mac/iOS/Android/роутеры), гибкая конфигурация, тысячи опций. До WireGuard был стандартом VPN-сервисов.

ПараметрЗначение
ТранспортUDP (по умолчанию, рекомендуемый) или TCP
Порт1194 (default), но любой
КриптографияTLS 1.2/1.3 для control, AES-GCM или ChaCha20-Poly1305 для data
Аутентификацияx.509 сертификаты (PKI), TLS-PSK, username/password (PAM)
Размер кода~600 000 строк + OpenSSL ещё столько же
Безопасность 2026B+ — крипта ок, fingerprint детектится

Почему OpenVPN детектируется ТСПУ за миллисекунду

OpenVPN маскируется неудачно: первый пакет от клиента имеет легко узнаваемый формат:

0000 38 00 00 00 00 00 00 00 00 opcode 0x38 = P_CONTROL_HARD_RESET_CLIENT_V2 0009 07 0a 5d 8c 91 23 ... session id (8 байт) 0011 00 ... packet id
Атака

Pattern-matching на opcode 0x38

DPI смотрит первый байт UDP-пакета: если 0x38 (или 0x40, 0x48 — другие OpenVPN opcodes) — это OpenVPN с вероятностью 99.9%. Время детекта — один пакет. Поэтому OpenVPN на дефолтных настройках мёртв в России, Иране, Китае.

Контрмеры (частичные)

tls-crypt-v2 — обёртка control-канала в дополнительный HMAC-шифр. Первый пакет становится «случайным», pattern на opcode уже не сработает. Поэтому в 2024-2025 OpenVPN с tls-crypt-v2 ещё работает кое-где в РФ.

Но это полумера: статистика пакетов (тайминги, размеры, ratio TCP/UDP) выдаёт OpenVPN ML-классификатору. Полноценный обход требует обфускации поверх — obfsproxy/obfs4 или Cloak. Сама архитектура OpenVPN не умеет маскироваться.

Где OpenVPN всё ещё уместен

5. SSTP — Secure Socket Tunneling Protocol

Microsoft, Windows Server 2008. Идея: пробросим VPN через стандартный HTTPS-порт 443, чтобы файрволы пропускали как обычный веб-трафик. Получился первый «VPN через 443» — прародитель всех современных решений (Trojan, Reality).

ПараметрЗначение
ТранспортTCP 443 (HTTPS)
КриптографияTLS (любая версия, поддерживаемая ОС)
Аутентификацияx.509 + PPP внутри (PAP/CHAP/MS-CHAPv2/EAP)
ПоддержкаWindows (родная), Linux (sstp-client, неофициально)
Безопасность 2026C — криптография ок, fingerprint обнаруживается

Из плюсов: проходит через любой корпоративный proxy, работает где разрешён только TCP 443. Из минусов: проприетарный (Microsoft), плохая кросс-платформа, fingerprint TLS handshake выдаёт SSTP против обычного браузера за 1 ClientHello (ALPN, расширения, шифры — всё специфическое).

6. Сводная таблица для запоминания

Протокол Транспорт Шифрование Обход блокировок Где живёт Тир 2026
PPTP TCP 1723 + GRE MPPE (RC4) — взломан Нет (древний) F
L2TP/IPsec UDP 500/4500/1701 AES-GCM Нет (детект на портах) iOS/macOS из коробки C
IKEv2/IPsec UDP 500/4500 AES-GCM, ChaCha20 Нет (детект на портах) Site-to-site, корпорат A (для site-to-site)
OpenVPN UDP UDP (любой порт) TLS 1.3 + AES-GCM Слабый (opcode), tls-crypt-v2 помогает Remote-access, PKI B
OpenVPN TCP TCP (любой) TLS 1.3 + AES-GCM Чуть лучше, но медленнее Через restrictive networks B-
SSTP TCP 443 TLS Через корп. прокси — да; против DPI — нет Windows-only legacy C+

7. Почему мы пошли дальше

Главный вывод урока — почему 2010-е дали миру WireGuard, Trojan, Reality:

  1. IKE детектится по портам. UDP 500/4500 — известны всем. Достаточно правила «дропать всё с этих портов» — IPsec на колене.
  2. OpenVPN детектится по opcode. Первый байт пакета выдаёт. tls-crypt-v2 спасает на год вперёд, потом обходят и его.
  3. PPTP сломан криптографически. Не используется.
  4. SSTP — Windows-only, fingerprint TLS handshake виден.
  5. Все классические протоколы НЕ маскируются. Они не пытаются выглядеть «как что-то ещё». В 2010-х это было ок (блокировок мало). В 2020-х — нет.

Решения «следующего поколения» (WireGuard, Xray, Reality) решают разные задачи: WireGuard — «делаем меньше кода и быстрее», Trojan/Reality — «маскируемся под HTTPS». Дальше в курсе мы их разбираем по очереди.

В следующем уроке — WireGuard: почему 4000 строк кода стали стандартом, как устроен Noise_IK handshake, что у WG плохо в 2026 (UDP, фиксированный handshake) и как это лечат через AmneziaWG.