Протокол OpenVPN
Инженерный золотой стандарт корпоративной безопасности 2000-х годов и его крах в эпоху глубокой фильтрации трафика (DPI/ТСПУ).
1. История создания
Проект OpenVPN появился в 2001 году благодаря инженеру Джеймсу Йонану (James Yonan). В то время мир корпоративных виртуальных сетей был разделён между крайне уязвимым и нестабильным PPTP и чудовищно сложным в настройке IPsec, который часто намертво блокировался межсетевыми экранами и NAT-маршрутизаторами из-за отсутствия стандартной адресации портов.
Главная идея Йонана заключалась в том, чтобы упаковать весь туннель в один легко маршрутизируемый порт (по умолчанию UDP 1194), переложив всю криптографическую работу на проверенную библиотеку OpenSSL. Это избавило сеть от проблем с трансляцией сетевых адресов (NAT Traversal) и сделало OpenVPN де-факто мировым стандартом на следующие 15–20 лет.
2. Как устроен OpenVPN под капотом
В отличие от монолитных протоколов, OpenVPN использует два раздельных канала данных внутри одной сессии:
- Control Channel (Канал управления): Работает на базе классического TLS-рукопожатия. Здесь происходит взаимная аутентификация сервера и клиента по сертификатам (PKI), обмен ключами и согласование шифрования.
- Data Channel (Канал передачи данных): После завершения TLS-хэндшейка полезные пакеты пользователя шифруются симметричным шифром (AES-GCM, ChaCha20-Poly1305) и пересылаются без оверхеда TLS.
Работа с операционной системой строится через виртуальные сетевые интерфейсы TUN (3 уровень L3, IP-маршрутизация) или TAP (2 уровень L2, Ethernet-мост).
3. Анатомия блокировки ТСПУ / DPI
Почему OpenVPN перестал работать в РФ и других странах с жесткой фильтрацией? Причина в предсказуемости протокола на физическом уровне:
- Байт опкода (Opcode Header): Самый первый байт каждого пакета OpenVPN содержит 5 бит типа пакета (Opcode) и 3 бита ID ключа. Значения опкодов строго фиксированы (например,
P_CONTROL_HARD_RESET_CLIENT_V2). Сенсор DPI мгновенно видит эти маркеры даже при смене стандартного порта 1194. - TLS-рукопожатие внутри неканоничного транспорта: Даже если вы запустите OpenVPN через TCP порт 443, DPI анализирует структуру пакета. Если заголовок TLS вложен в кастомный мультиплексор OpenVPN, он не похож на обычный браузерный HTTPS, что приводит к сбросу сессии (RST/Drop) через 2-3 пакета.
- Энтропия и тайминги: Длина пакетов рукопожатия и их распределение во времени имеют выраженный статистический отпечаток (fingerprint), который детектируется пассивными ML-модулями фильтрации.
4. Вердикт: Что представляет собой OpenVPN сегодня
Где он незаменим
- Корпоративные закрытые сети (Site-to-Site, Enterprise LAN).
- Гибкая аутентификация по смарт-картам, LDAP, Active Directory.
- Эмуляция Ethernet-мостов через TAP (работает то, что требует L2).
- Десятилетия аудитов безопасности кода.
Почему не подходит для обхода блокировок
- Успешно глушится ТСПУ по всей стране за пару секунд.
- Низкая производительность: переключения контекста между ядром и User-space сильно нагружают процессор (DCO решает это лишь частично).
- Высокий оверхед и пинг на мобильных сетях.