Шифрование VPN — первое, что обещают на сайтах провайдеров: «военное шифрование AES-256», «современная криптография ChaCha20». За маркетинговыми формулировками стоят вполне конкретные алгоритмы, и понимать их разницу полезно, чтобы не переплачивать за громкие слова. Разберём, как устроено шифрование в VPN-туннеле и что из этого действительно важно.
Из чего состоит шифрование VPN
Защищённое VPN-соединение опирается не на один алгоритм, а на несколько, каждый со своей задачей:
- Обмен ключами — асимметричная криптография (например, ECDH на кривой Curve25519 или RSA), с помощью которой клиент и сервер договариваются об общем секретном ключе, не передавая его по сети.
- Шифрование данных — симметричный шифр (AES или ChaCha20), который быстро шифрует каждый пакет этим общим ключом.
- Проверка целостности — код аутентификации (GCM, Poly1305 или HMAC), не позволяющий незаметно подменить или изменить пакет по дороге.
Цепочка настолько надёжна, насколько надёжно её самое слабое звено. Поэтому «AES-256» в рекламе мало что говорит без понимания, как устроены остальные этапы.
AES-256: стандарт с аппаратным ускорением
AES — блочный шифр, принятый как стандарт в США в 2001 году и с тех пор ставший самым распространённым симметричным алгоритмом в мире. Цифра 256 означает длину ключа в битах. Перебрать такое количество вариантов невозможно ни на одном существующем оборудовании, поэтому на практике атакуют не сам шифр, а ошибки в реализации и обмене ключами.
Главное преимущество AES — поддержка на уровне процессора: большинство современных компьютеров и смартфонов имеют специальные инструкции, благодаря которым шифрование почти не нагружает систему. В VPN он обычно работает в режиме GCM, который одновременно шифрует данные и проверяет их целостность. AES используется в OpenVPN и IKEv2 — подробнее о протоколах в статье WireGuard, OpenVPN и IKEv2.
ChaCha20: быстрый шифр без специального железа
ChaCha20 — потоковый шифр, разработанный криптографом Дэниелом Бернштейном. В паре с кодом аутентификации Poly1305 он решает ту же задачу, что и AES-GCM, но устроен так, что быстро работает на обычных вычислениях, без аппаратного ускорения. Это особенно заметно на недорогих смартфонах, роутерах и старых устройствах.
ChaCha20-Poly1305 входит в TLS 1.3 и является единственным вариантом шифрования в WireGuard — именно поэтому провайдеры с поддержкой WireGuard обычно упоминают ChaCha20, а не AES. Почему протокол стал популярным, мы разбирали в статье WireGuard: почему стал стандартом.
Что выбрать и на что смотреть
Для обычного пользователя разница между AES-256-GCM и ChaCha20-Poly1305 с точки зрения безопасности несущественна: оба считаются надёжными современными вариантами. Выбор скорее влияет на скорость и расход батареи на конкретном устройстве. Гораздо важнее другие признаки:
- Прямая секретность (perfect forward secrecy): ключи сессий регулярно меняются, и утечка одного ключа не раскрывает прошлый трафик.
- Отсутствие устаревших протоколов вроде PPTP в списке доступных.
- Открытый исходный код клиента и независимый аудит — например, у Mullvad и Proton VPN.
- Защита от утечек DNS и WebRTC: самое стойкое шифрование бесполезно, если часть запросов идёт мимо туннеля.
AES-128 хуже AES-256?⌄
Оба варианта на сегодня считаются стойкими. AES-256 даёт больший запас прочности на будущее, в том числе на случай появления мощных квантовых компьютеров, поэтому VPN-провайдеры чаще выбирают его.
Можно ли взломать шифрование VPN?⌄
Сами алгоритмы AES и ChaCha20 практическим атакам не поддаются. Реальные риски связаны с ошибками в настройке, устаревшими протоколами, утечками мимо туннеля и доверием к самому провайдеру.