Відкривши 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, відкрийте налаштування «Протокол» і спробуйте перемикатися між ними, щоб зрозуміти, який стабільніше працює у вашій мережі.