Открыв VPN-приложение, вы можете заметить настройку «Протокол» с названиями вроде WireGuard. Большинство людей её никогда не трогают, и это нормально. Но если вам когда-нибудь было интересно, что означают эти названия, эта статья объяснит всё без математики и профессионального жаргона.

Что такое VPN-протокол

Протокол — это просто согласованный набор правил. Прежде чем ваше устройство и VPN-сервер смогут общаться конфиденциально, им нужно договориться о трёх вещах:

  1. Кто есть кто. Каждая сторона должна быть уверена, что общается с нужным собеседником, а не с самозванцем.
  2. Какие секретные ключи использовать. Им нужны общие ключи, которых не знает больше никто.
  3. Как упаковывать данные. Каждую порцию трафика нужно запереть, подписать и отправить так, чтобы другая сторона смогла её открыть.

VPN-протокол — это рецепт, который охватывает все три пункта. Разные рецепты по-разному находят баланс между простотой, скоростью и тем, как трафик выглядит в сети.

Шифрование в одном абзаце

Шифрование превращает читаемые данные в перемешанные, которые может вернуть в исходный вид только обладатель нужного ключа. Руководство EFF Surveillance Self-Defense называет шифрование одним из главных способов защитить информацию от злоумышленников и поставщиков услуг и отмечает, что при правильном использовании взломать его практически невозможно. Современное шифрование также распознаёт подделку. Если кто-то изменит в пути хотя бы крошечную часть зашифрованного сообщения, получатель это заметит и отбросит его.

Здесь участвуют ключи двух видов:

  • Открытые и закрытые ключи. Представьте навесной замок, который вы свободно раздаёте всем (открытый ключ), и единственный ключ от него, который храните у себя (закрытый ключ). Так два незнакомца могут договориться о секрете, ни разу не встретившись.
  • Сеансовые ключи. Когда стороны уже доверяют друг другу, они создают новые временные ключи для передачи самих данных. Ими быстро пользоваться, и они регулярно заменяются.

Что такое «рукопожатие»

Рукопожатие (handshake) — это короткий обмен сообщениями в начале соединения. Именно в нём обе стороны подтверждают, кто они, и договариваются о сеансовых ключах. Представьте двух людей, которые встречаются на вокзале: они обмениваются заранее условленной фразой, убеждаются, что перед ними нужный человек, а затем до конца поездки переходят на тайный язык, понятный только им двоим.

Хорошее рукопожатие проходит быстро, его трудно подделать, и оно не раскрывает ключи тому, кто подслушивает.

WireGuard: современный и намеренно компактный

WireGuard разработал Джейсон Доненфельд (Jason Donenfeld), а его устройство описано в открытой научной статье (whitepaper). Главная идея — сохранить всё компактным и простым, потому что в простом коде легче найти ошибки. На сайте проекта сказано, что WireGuard задуман простым в настройке и развёртывании и рассчитан на то, чтобы его можно было «всесторонне проверить силами одного человека», а не привлекать для аудита большие команды.

Вот чем WireGuard отличается от других, если говорить простыми словами:

  • Фиксированный набор надёжных компонентов. Старые протоколы позволяют сторонам выбирать из длинного списка вариантов, а это добавляет сложности и простора для ошибок. WireGuard использует один современный набор. Согласно странице протокола, в него входят ChaCha20 и Poly1305 для шифрования и защиты данных, Curve25519 для согласования ключей, BLAKE2s для хеширования и HKDF для получения ключей.
  • Рукопожатие на основе Noise. Рукопожатие WireGuard построено на Noise Protocol Framework — хорошо изученном подходе к проектированию обмена ключами. Рукопожатие короткое: одно сообщение от вашего устройства, один ответ от сервера, и туннель готов.
  • Ключи, которые постоянно меняются. В документации WireGuard сказано, что рукопожатие повторяется каждые несколько минут для смены ключей, что обеспечивает совершенную прямую секретность (perfect forward secrecy). Проще говоря, даже если ключ каким-то образом украдут позже, им не получится расшифровать трафик предыдущих сеансов.
  • Молчаливый по своей природе. Сервер WireGuard не отвечает на пакеты, которые не доказывают, что они пришли от известного ключа. Для постороннего сканера такой сервер просто не откликается.
  • Удобен для устройств в движении. Если ваш телефон переключается с Wi-Fi на мобильный интернет, WireGuard может продолжить работу туннеля с нового адреса без полного переподключения.

Именно благодаря такому сочетанию WireGuard стал популярным выбором для современных VPN-приложений.

Какое место занимает TLS

Вы и так каждый день, сами того не замечая, пользуетесь ещё одним важным протоколом — TLS, той самой буквой «S» в HTTPS. Когда в браузере появляется значок замка, страницу защищает TLS. Актуальная версия, TLS 1.3, описана в RFC 8446. Этот протокол тоже использует рукопожатие для согласования ключей, а затем шифрует весь обмен данными.

TLS важен для VPN, потому что некоторые VPN-протоколы построены поверх него. Их трафик упакован в такое же зашифрованное соединение, какое используют обычные защищённые сайты.

Почему VPN в разных сетях работает по-разному

Шифрование скрывает содержимое пакета, но у каждого протокола всё равно есть узнаваемые внешние очертания. Представьте конверты: прочитать письмо нельзя, но видно размер и форму конверта, а также то, как часто приходят письма. Сетевое оборудование может анализировать эти очертания — такой метод часто называют классификацией трафика или глубоким анализом пакетов (deep packet inspection).

Организации делают это по разным причинам. Корпоративная сеть может пропускать только определённые виды трафика. Сеть отеля может по-своему распределять ресурсы и отдавать приоритет привычному ей трафику. Некоторые интернет-провайдеры управляют трафиком в зависимости от его типа.

Поскольку у WireGuard фиксированный и компактный формат сообщений, его пакеты бывает легко узнать. Это не слабость шифрования — оно остаётся надёжным, — но в отдельных нестабильных или перегруженных сетях соединение по WireGuard может работать медленнее или прерываться.

Поэтому некоторые современные протоколы уделяют внимание не только тому, как трафик заперт, но и тому, как он выглядит. Есть два основных подхода:

  • Дополнительная защита пакетов. Размеры пакетов меняются или к ним добавляется заполнение, чтобы по внешнему виду трафика было труднее судить о его содержимом.
  • Привычный конверт. Туннель передаётся внутри TLS-соединения, так что выглядит как обычный зашифрованный веб-трафик, с которым большинство сетей и так работает каждый день.

Оба подхода сохраняют шифрование ваших данных на всём пути между устройством и VPN-сервером. Их цель — стабильное и конфиденциальное соединение. Всегда соблюдайте законы и правила сети, которые на вас распространяются.

Протоколы в приложениях VPNRice

VPNRice предлагает три протокола и режим «Авто»:

  • WireGuard. Стандартный протокол, описанный выше. Хороший выбор по умолчанию для большинства домашних и мобильных сетей.
  • RiceGuard. WireGuard с дополнительной защитой пакетов. Он сохраняет криптографию WireGuard, но меняет внешние очертания пакетов.
  • RiceGuardX. Построен на VLESS с REALITY — протоколе на основе TLS, поэтому туннель передаётся внутри TLS-соединения.
  • Авто. Приложение само выбирает протокол и переключается на другой, если соединение не работает.

Все три протокола и режим «Авто» доступны на Android и Android TV. На iPhone и iPad режим «Авто» не использует RiceGuardX. В приложении для Windows есть WireGuard, RiceGuardX и «Авто». Расширения для Chrome и Firefox устроены иначе: это браузерные прокси, которые направляют через серверы VPNRice только трафик вашего браузера (сайты, открытые по HTTPS, по-прежнему защищены сквозным шифрованием).

Какой протокол выбрать?

Для большинства людей честный ответ такой: оставьте режим «Авто». Если хотите поэкспериментировать:

  • Используйте WireGuard, если у вас обычная сеть и вам нужна простая, хорошо изученная конфигурация.
  • Если в какой-то сети соединение нестабильно, режим «Авто» попробует другой протокол; можно также переключиться вручную.

Что бы вы ни выбрали, основа остаётся прежней: надёжное шифрование, быстрое рукопожатие и регулярно меняющиеся ключи.

Главное

  • Протокол — это свод правил, по которым ваше устройство и VPN-сервер общаются конфиденциально.
  • Рукопожатие подтверждает подлинность сторон и создаёт новые ключи.
  • WireGuard — современный, компактный протокол с фиксированным набором надёжной криптографии.
  • Некоторые сети распознают VPN-трафик по его внешним очертаниям, хотя прочитать его не могут.
  • Более новые протоколы меняют внешний вид трафика, сохраняя его зашифрованным.

Хотите увидеть эти протоколы в деле? Скачайте VPNRice, откройте настройку «Протокол» и попробуйте переключаться между ними, чтобы понять, какой стабильнее работает в вашей сети.