Одного изобретателя у ВПН нет. С 1992 по 1999 год идею шифрованного туннеля развивали параллельно: в оборонной лаборатории США над IPsec и в группе производителей над PPTP, а OpenVPN и WireGuard позже написали по одному автору, Джеймс Йонан и Джейсон Доненфельд.
Ниже даты и имена взяты из документов IETF, документации проектов и статей Википедии, источник назван рядом с каждым фактом. Чего в них нет, того мы не пишем.
Хронология: семь дат на одной линии
Если нужна общая картина, она такая. Все даты проверены по документам, названным в тексте дальше.
- 1992: по Википедии, Военно-морская исследовательская лаборатория США (NRL) по заказу DARPA начинает работу над шифрованием IP-пакетов, а в IETF создана рабочая группа по безопасности IP.
- Август 1995: RFC 1825, автор Р. Аткинсон из NRL, описывает механизмы безопасности на уровне IP.
- Июнь 1996: черновик IETF по PPTP, авторов шестеро.
- Июль 1999: PPTP опубликован как RFC 2637 со статусом "информационный".
- 13 мая 2001: по Википедии, дата первого выпуска OpenVPN.
- 2017: статья Джейсона Доненфельда о WireGuard на симпозиуме NDSS.
- Март 2020: по Википедии, WireGuard входит в ядро Linux 5.6.
IPsec: шифрование на уровне IP
По Википедии, в 1992 году NRL получила от DARPA средства на реализацию IPv6 и шифрования IP в BSD 4.4, а стандарты, разработанные лабораторией, вышли в IETF как RFC 1825-1827. Первый из них, RFC 1825 за август 1995 года, сам оговаривает, что описывает не общую архитектуру интернета, а безопасность именно на уровне IP.
Затем архитектуру переписывали: RFC 2401 от ноября 1998 года, авторы С. Кент и Р. Аткинсон, заменил RFC 1825, а RFC 4301 от декабря 2005 года, авторы С. Кент и К. Сео, заменил RFC 2401. По тексту RFC 4301, IPsec задуман, чтобы дать совместимую криптографическую защиту для IPv4 и IPv6, и работает на уровне IP, закрывая любые протоколы поверх него.
PPTP: туннель из группы компаний
Черновик PPTP от июня 1996 года подписали шестеро: Кори Хэмзе из Ascend Communications, Гурдип Сингх Пол из Microsoft, Уильям Вертхайн из U.S. Robotics, Джефф Тааруд из 3Com и Эндрю Литтл из ECI Telematics. В итоговом RFC 2637 от июля 1999 года список изменился, там в том числе Г. Зорн из Microsoft, а сам документ имеет статус информационного: стандартом IETF PPTP не стал. Поэтому звание единственного изобретателя ни за одним автором документы не закрепляют.
По определению RFC 2637, протокол позволяет "туннелировать" PPP через IP-сеть. В разделе о безопасности сказано, что пакеты GRE, образующие туннель, криптографически не защищены, сообщения управляющего канала не проходят проверку подлинности, а данные PPP можно перехватить и прочитать, если они не зашифрованы отдельно. Шифрование MPPE описал RFC 3078 от марта 2001 года, авторы Пол и Зорн.
Позже у PPTP нашли серьёзные уязвимости. По статье Википедии, они связаны с проверкой подлинности в PPP и устройством MPPE, а в 2012 году показали, что подбор ключа MS-CHAPv2 по сложности равен подбору одного ключа DES. Сегодня PPTP в Википедии называют устаревшим способом.
OpenVPN: сертификаты и открытый код
Автор OpenVPN - Джеймс Йонан, а по журналу изменений, на который ссылается Википедия, первый выпуск датирован 13 мая 2001 года. Руководство проекта описывает его как свободный демон, который пытается дать многие возможности IPsec при небольшом размере кода.
В режиме SSL/TLS каждая сторона предъявляет сертификат, подписанный общим центром сертификации, затем стороны обмениваются ключами сеанса. Управляющий канал и канал данных идут по одному порту TCP или UDP. Так OpenVPN встроил в туннель привычную всем по сайтам схему проверки сертификатов.
WireGuard и VLESS: меньше кода, проще настройка
WireGuard написал Джейсон Доненфельд, его статья "WireGuard: Next Generation Kernel Network Tunnel" представлена на симпозиуме NDSS 2017 года в Сан-Диего. На сайте проекта сказано, что он задуман как более простой и быстрый, чем IPsec, и заметно производительнее OpenVPN, а код достаточно мал, чтобы один человек мог его прочитать. По Википедии, в марте 2020 года версия для Linux вошла в ядро 5.6.
VLESS, протокол из проекта Xray, устроен ещё лаконичнее: документация описывает его как лёгкий транспортный протокол без состояния, где пользователя узнают по идентификатору UUID. Имени одного изобретателя в документации нет, поэтому и мы его не называем.
Что из этой истории пригодится при выборе
Главный вывод: название протокола говорит о происхождении и устройстве, а не о качестве сервиса. Сервис должен называть протокол, а вы можете прочитать, как тот устроен, как сделано выше. PPTP для новых настроек не берут, остальные протоколы живут и развиваются.
У Хамджисс протокол VLESS. Своего приложения у нас нет, ключ работает в бесплатных VLESS-клиентах: про установку на телефон читайте в материале ВПН для Андроид, про компьютер в материале ВПН на ПК. Начать можно так.
- Откройте Telegram-бот @openworldlinkVPN - получите персональный VLESS-ключ и 10 дней бесплатно.
- Поставьте бесплатный клиент с поддержкой VLESS на свой телефон или компьютер.
- Добавьте ключ из бота в клиент и подключитесь; ключ рассчитан на до 5 устройств одновременно.
Источники
- RFC 2637: Point-to-Point Tunneling Protocol (PPTP)
- draft-ietf-pppext-pptp-00 (июнь 1996)
- RFC 3078: Microsoft Point-To-Point Encryption (MPPE) Protocol
- RFC 1825: Security Architecture for the Internet Protocol
- RFC 4301: Security Architecture for the Internet Protocol
- IPsec - Wikipedia
- Point-to-Point Tunneling Protocol - Wikipedia
- OpenVPN - Wikipedia
- WireGuard - Wikipedia