Безопасность

Как работает шифрование трафика в туннеле

Шифрование в туннеле состоит из двух независимых механизмов: симметричного шифра, который закрывает содержимое, и обмена ключами, который позволяет сторонам договориться о секрете. Разбираем оба и очерчиваем границы того, что они дают.

Обновлено

Как работает шифрование трафика в туннеле

Параметры криптографии

Симметричный шифрChaCha20-Poly1305, при аппаратном ускорении — AES-256-GCM
Обмен ключамиX25519 (Curve25519), в TLS-транспорте — ECDHE
Проверка целостностиPoly1305 или GHASH, встроены в режим шифрования
Прямая секретностьЕсть: сессионные ключи не выводятся из долговременных
Смена сессионного ключаКаждые 120 секунд в WireGuard
Стоимость шифрования3–7% одного ядра процессора на 500 Мбит/с
Как работает шифрование трафика в туннеле — схема
Схема кликабельна в полном размере после публикации изображения
По пунктам

Как это устроено технически

Симметричный шифр закрывает содержимое

ChaCha20-Poly1305 или AES-256-GCM. Оба режима шифруют и одновременно проверяют целостность: изменённый по дороге пакет не расшифруется, а будет отброшен как повреждённый.

Обмен ключами отделён от шифрования

Стороны договариваются о секрете через X25519 или ECDHE, не передавая его по сети. Наблюдатель, записавший весь обмен, не может вычислить полученный ключ за разумное время.

Ключи меняются в течение сессии

WireGuard переустанавливает сессионный ключ каждые две минуты. Компрометация одного ключа раскрывает только тот отрезок трафика, который им зашифрован, а не всю историю.

Проверка подлинности стороны

Кроме шифрования протокол подтверждает, что вы говорите именно с нашим сервером. Без этой части шифрование бесполезно: канал можно было бы перехватить подстановкой посредника.

Симметричный шифр: чем ChaCha20 отличается от AES

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

AES-256-GCM опирается на аппаратные инструкции процессора. На машине с поддержкой AES-NI, а это все настольные процессоры последних пятнадцати лет, он обрабатывает поток почти бесплатно: несколько процентов ядра на гигабитном канале. Без аппаратной поддержки он резко замедляется, и это заметно на бюджетных роутерах и старых ARM-устройствах.

ChaCha20-Poly1305 спроектирован так, чтобы быстро работать на обычных арифметических операциях, без специальных инструкций. На мобильных процессорах и в роутерах он часто быстрее AES, поэтому WireGuard использует именно его и не даёт выбора. Криптографической разницы в стойкости между ними на практике нет — обе конструкции считаются надёжными, выбор определяется железом.

Обмен ключами: как договориться о секрете по открытому каналу

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

В WireGuard за это отвечает X25519 — операция на эллиптической кривой Curve25519. В протоколах поверх TLS используется ECDHE, тот же принцип с эфемерными, то есть одноразовыми, ключами. Наблюдатель, записавший весь обмен целиком, получает два публичных значения, из которых вывести общий секрет вычислительно неосуществимо при текущем уровне техники.

Здесь же решается вторая задача — подтверждение подлинности. Обмен ключами сам по себе не защищает от посредника, который представится сервером обеим сторонам. Поэтому клиент заранее знает публичный ключ сервера и сверяет его. Если ключ не совпал, соединение не устанавливается — это и есть защита от подмены.

Прямая секретность: что это значит конкретно

Прямая секретность (forward secrecy) означает, что сессионные ключи не выводятся из долговременного ключа сервера. Каждое соединение получает собственный секрет, живущий ровно столько, сколько длится сессия, и нигде не сохраняемый после её окончания.

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

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

Почему «военное шифрование 256 бит» — маркетинг

Формулировка встречается на сайтах почти всех сервисов и не означает ничего конкретного. Военного стандарта шифрования для гражданских продуктов не существует; AES действительно одобрен американским институтом стандартов для государственных данных, но ровно тот же алгоритм работает в вашем браузере при открытии любого сайта по HTTPS и в архиваторе с паролем.

Число 256 указывает длину ключа. Разница между 128 и 256 битами на практике неощутима: перебор 128-битного ключа уже за пределами возможного при любом мыслимом объёме вычислений. Более длинный ключ не делает систему пропорционально безопаснее — он лишь увеличивает запас там, где запаса и так избыточно.

Взламывают не шифр. Реальные компрометации происходят через ошибки реализации, слабые генераторы случайных чисел, утечку ключей с устройства, уязвимости в клиентском коде и человеческий фактор. Поэтому осмысленный вопрос к сервису — не «сколько бит», а «какой протокол, как реализован обмен ключами, есть ли прямая секретность и кто проверял код».

Что шифрование не защищает

Оно закрывает содержимое трафика в пути между вашим устройством и сервером. Всё остальное остаётся за его пределами, и это важно понимать без иллюзий. Факт соединения виден: провайдер знает, что вы установили зашифрованное соединение с определённым адресом, в какое время и какой объём данных передали. Скрыть само наличие соединения шифрование не пытается.

Оно не влияет на то, что делает сайт после того, как вы к нему подключились. Учётная запись, в которую вы вошли, идентифицирует вас точнее любого адреса. Cookies и отпечаток браузера — набор из версии, шрифтов, разрешения экрана, часового пояса — позволяют узнать устройство между сессиями. Часовой пояс и языковые заголовки часто выдают реальный регион при любой локации туннеля.

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

Где шифрование заканчивается Канал зашифрован до нашего сервера, дальше трафик идёт к сайту обычным путём и защищён уже сертификатом самого сайта. Содержимое, которое вы отправляете в форму на странице, шифрование канала не скрывает от владельца этой страницы.
Вопросы

Частые вопросы

Какой шифр выбрать в настройках клиента?
На настольном компьютере с современным процессором разница между AES-256-GCM и ChaCha20-Poly1305 в пределах пары процентов загрузки ядра — берите значение по умолчанию. На телефоне, роутере или одноплатном компьютере ChaCha20 обычно быстрее, и клиент выбирает его автоматически.
Сильно ли шифрование замедляет соединение?
Потеря скорости складывается из двух частей: накладные расходы протокола на заголовки — около 4–8%, и вычислительная стоимость шифрования. Вторая на современном железе близка к нулю. Основное падение скорости в туннеле обычно вызвано расстоянием до сервера и его загрузкой, а не криптографией.
Защищает ли туннель от вредоносных сайтов и фишинга?
Нет. Шифрование гарантирует, что данные дойдут до сервера неизменными и непрочитанными посторонним. Если вы сами отправили пароль на поддельный сайт, он будет доставлен туда в целости. Против фишинга работают менеджер паролей, двухфакторная аутентификация и внимание к адресу страницы.
Нужен ли VPN, если сайт и так открывается по HTTPS?
HTTPS шифрует содержимое соединения с конкретным сайтом, но имя домена в большинстве случаев видно наблюдателю в сети, как и ваш адрес — сайту. Туннель закрывает эти метаданные от вашего провайдера и подставляет другой адрес для сайта. Механизмы дополняют друг друга, а не заменяют.
Что такое проверка целостности и зачем она нужна?
Режимы GCM и Poly1305 добавляют к каждому пакету код проверки. Если пакет изменён в пути хотя бы на один бит, код не сойдётся, и пакет будет отброшен. Без этого шифрование защищало бы от чтения, но не от подмены содержимого вслепую.
Устареет ли текущее шифрование с появлением квантовых компьютеров?
Под угрозой прежде всего обмен ключами: алгоритм Шора теоретически ломает схемы на эллиптических кривых. Симметричные шифры страдают меньше — эффективная стойкость 256-битного ключа снижается примерно вдвое, что всё ещё избыточно. Постквантовые схемы обмена ключами уже стандартизуются, и протоколы будут их поддерживать по мере готовности.
Проверяется за минуту

Убедитесь сами, а не поверьте на слово

Безлимитный трафик, три устройства по одной ссылке, оплата и поддержка внутри бота. Регистрация на сайте не нужна.

Подписка оформляется в Telegram-канале сервиса · Безлимитный трафик · Поддержка круглосуточно