Що таке WireGuard VPN і як він працює?
Як працює найшвидший доступний протокол шифрування VPN



Поділіться
Забезпечення конфіденційності та безпеки даних за допомогою віртуальної приватної мережі (VPN) може здатися простим: увімкніть її, зачекайте на з’єднання, і за лічені секунди ваша IP-адреса буде прихована, а дані зашифровані. Однак анонімність в Інтернеті далеко не чарівна. Технологія, що лежить в основі VPN, — це складний і багатоетапний процес.
VPN – це, перш за все, мережі. Але вони працюють на комунікаційних протоколах, які обробляють кілька етапів шифрування, тому дані користувача захищені під час передачі. WireGuard – це відносно новий протокол шифрування VPN, але він на сьогоднішній день є найшвидшим з доступних.
Швидкість WireGuard забезпечується ретельно підібраними та ефективними протоколами для кожного етапу процесу шифрування, а також дуже лаконічною кодовою базою. Хоча це може бути не той протокол, який використовується більшістю традиційних VPN, він став протоколом вибору для нових децентралізованих VPN (dVPN). Багато VPN-мереж зараз швидко наслідують цей приклад.
У цій статті розглядаються етапи процесу шифрування WireGuard, його переваги та недоліки, а також те, як він унікально забезпечує переваги покращених функцій конфіденційності dVPN.
Що таке WireGuard VPN?
WireGuard – це комунікаційний протокол з відкритим кодом, який забезпечує процедури зашифрованої маршрутизації, за допомогою яких багато сучасних VPN захищають дані та конфіденційність користувачів. Він використовує найсучасніші протоколи для кожного етапу криптографічного процесу з відкритим ключем, що робить його найшвидшим доступним VPN-протоколом.
WireGuard був запущений у 2015 році, а потім випущений для Linux у 2020 році. Тепер він сумісний з усіма основними операційними системами та пристроями, і його все частіше використовують нові VPN-сервіси. Завдяки високій швидкості, можливості перевірки з відкритим вихідним кодом та низьким накладним навантаженням на дані, очікується, що WireGuard незабаром може перевершити більш широко поширені протоколи зв'язку, що використовуються основними VPN.
Дізнайтеся більше про те, як працює шифрування даних, у [повному посібнику Nym] (https://nym.com/blog/what-is-encryption).
Що таке VPN?
Як працює VPN WireGuard?
WireGuard — це програмний клієнт, який працює на комп’ютері користувача, а також на VPN або проксі-сервері, дозволяючи зашифрованому трафіку швидко та безпечно передавати між ними. Отже, коли ви підключаєтеся до VPN-сервера за допомогою протоколу WireGuard, ось уявлення про те, що відбувається у фоновому режимі:
Рукостискання
Перед будь-яким обміном ключами або даними клієнт надсилає запит на сервер, ініціюючи те, що називається рукостисканням. Сервер відповідає, надсилаючи свій відкритий ключ клієнту. WireGuard використовує технологію рукостискання Noise_IK від Noise, яка має низку переваг у сфері безпеки та конфіденційності, таких як уникнення атак компрометації ключів та повторного відтворення, приховування ідентичності учасників рукостискання та ідеальна пряма секретність.
Обмін ключами та їх отримання
Потім сервер і клієнт обмінюються відкритими ключами, щоб перевірити ідентифікацію один одного. Для обміну ключами Wireguard використовує Curve25519, найсучаснішу криптографію еліптичних кривих, засновану на публічній криптографічній функції Діффі-Хеллмана.
Сервер і клієнт використовують обміняні ключі для створення унікального ключа, відомого лише їм. Це робиться за допомогою функції виведення ключа (KDF). Для етапу отримання ключів WireGuard використовує HKDF (або KDF на основі HMAC), що є перевагою в VPN-маршрутизації завдяки високобезпечному двоетапному процесу та гнучкості щодо довжини ключів. Отриманий ключ використовується для симетричного шифрування між клієнтом та VPN-сервером.
Шифрування та автентифікація
Для етапів шифрування та автентифікації WireGuard використовує ChaCha20-Poly1305, який є комбінацією потокового шифру ChaCha20 та коду автентифікації повідомлень Poly1305. Цей алгоритм є високопродуктивним і загалом швидшим, ніж AES-GCM.
Хешування
Хешування стосується процесу зашифрованої маршрутизації, в якому вхідні дані будь-якого розміру перетворюються на рядок символів фіксованого розміру. Після перетворення вихідну дату або «хеш-значення» можна використовувати для визначення того, чи був пакет даних маніпульований або змінений під час передачі. Якщо так, то хеш-значення для одержувача буде відрізнятися від того, яке було для відправника. WireGuard використовує Blake2 для своєї хеш-функції, яка є швидшою та оптимальнішою, ніж попередні стандарти (наприклад, Sha-1 та -2), і вважається такою ж безпечною, як і передові стандарти, такі як Sha-3.
Транспортування
Транспортний рівень відповідає за перетворення даних вашого трафіку в зашифровані пакети для надсилання через Інтернет. WireGuard обгортає зашифровані дані за допомогою протоколу користувацьких дейтаграм (UDP). Цей протокол зв'язку забезпечує швидку та безпечну передачу даних. Він не використовує TCP, оскільки він менш ефективний у мережах VPN через більші накладні витрати даних та відомі проблеми («збої TCP»).
Маршрутизація
Після того, як ваші дані пройдуть цей складний, але дуже ефективний процес VPN-шифрування за допомогою WireGuard на вашому пристрої, що гарантує автентичність передбачуваного одержувача та безпеку пакетів даних, вони будуть перенаправлені на VPN-сервер. Там IP-адреса вашого трафіку замінюється на власну публічну IP-адресу VPN-сервера.
Розшифрування
Оскільки саме VPN-сервер забезпечує шифрування ваших даних на своєму сервері, після потрапляння туди цей рівень шифрування видаляється або розшифровується за допомогою вищезазначених ключів. Однак, якщо припустити, що оригінальне з’єднання між вашим пристроєм та цільовим одержувачем в Інтернеті захищене через HTTPS, один рівень шифрування має залишитися, що запобігає перегляду VPN ваших даних у відкритому вигляді. Після видалення шифрування VPN, VPN зможе побачити кінцевий пункт призначення, куди надсилати ваші дані. Якщо HTTPS-шифрування ввімкнено за замовчуванням, ваш трафік буде зашифровано з кінця в кінець за допомогою VPN на базі WireGuard.
Сумісність WireGuard
WireGuard іноді критикують за його обмеженішу сумісність порівняно з іншими протоколами, такими як OpenVPN. Але це значною мірою перебільшено, оскільки йдеться про сумісність конкретного обладнання (наприклад, маршрутизаторів), а не операційних систем.
-
Операційні системи: WireGuard сумісний з більшістю основних операційних систем та пристроїв: Windows, Mac OS, Linux, Android, iOS та сучасними версіями BSD.
-
Маршрутизатори: Одна з апаратних проблем WireGuard полягає в тому, що він не так широко сумісний з багатьма VPN-маршрутизаторами, як OpenVPN наразі. Це не несподівано, оскільки WireGuard існує на ринку лише чотири роки. З випуском нового обладнання для маршрутизаторів у найближчі роки, Nym очікує, що цей розрив у сумісності швидко усунеться.
Переваги WireGuard VPN
Швидкість
WireGuard дуже швидкий, що стосується протоколів VPN-зв'язку, на 50% швидший, ніж OpenVPN, який був галузевим стандартом протягом двох десятиліть. Мінімальна кодова база
Код WireGuard надзвичайно короткий, становить лише 4000 рядків. Для порівняння, версії OpenVPN мають близько 100 000 рядків коду. Це робить роботу WireGuard надзвичайно оптимізованою та ефективною.
Високий рівень безпеки
WireGuard використовує найсучасніші алгоритми шифрування та криптографію з відкритим ключем для обміну ключами. Ці стандарти шифрування наразі незламні. Більше того, ця лаконічна та легка кодова база забезпечує значно менший вплив можливих атак, тоді як непомітні помилки конфігурації у складнішому OpenVPN можуть призвести до витоків або більших вразливостей атак.
Швидке відновлення підключення
WireGuard створений без збереження стану, тобто він не залежить від підтримки безперервного стану з'єднання між вузлами. Така конструкція дозволяє безперешкодно обробляти перебої, оскільки немає потреби відновлювати сеанс або стан з'єднання. Щойно пакети знову почнуть надходити, WireGuard зможе продовжити роботу з того місця, де вона зупинилася.
Відкритий програмний код
WireGuard має відкритий вихідний код, тому його може перевірити будь-хто. Однак, чи легко перевірити код з відкритим вихідним кодом, залежить від його розміру. У цьому відношенні WireGuard вирізняється невеликим та лаконічним розміром своєї кодової бази. Це не лише робить протокол надзвичайно спрощеним, але й дозволяє легше проводити публічні перевірки.
Недоліки WireGuard VPN
Відсутність обфускації
У WireGuard відсутня вбудована функція обфускації. Розроблений як простий, швидкий та безпечний VPN-протокол, він зосереджений на простоті та продуктивності. Однак, він не містить функцій для обфускації трафіку, щоб приховати той факт, що використовується VPN. Це означає, що трафік WireGuard може бути ідентифікований інструментами моніторингу мережі або суб'єктами, які виконують глибоку перевірку пакетів (DPI).
Інші інструменти, такі як Obfsproxy, Shadowsocks або Stunnel, можна використовувати разом із WireGuard, щоб додати обфускацію до процедури маршрутизації VPN.
Не інтегровано у всі VPN
Більшість основних VPN-провайдерів на ринку ще не використовують WireGuard, а OpenVPN використовують вже десятиліттями. Це просто означає, що WireGuard порівняно менше перевірений на міцність на фронті VPN. Однак, це швидко змінюється, оскільки все більше VPN інтегруються з WireGuard.
Відсутність підтримки маршрутизаторів
Наразі WireGuard не підтримується такою кількістю VPN-роутерів, як OpenVPN, головним чином тому, що це обладнання було розроблено та запрограмовано до появи WireGuard. Таким чином, Nym очікує зміни сумісності маршрутизаторів для WireGuard у найближчі роки.
Протокол WireGuard проти інших VPN-протоколів
WireGuard — не єдиний протокол зв’язку, який використовується VPN на ринку, і відмінності між ними можуть бути суттєвими для продуктивності VPN, а також для конфіденційності користувачів.
WireGuard проти OpenVPN
OpenVPN – це протокол зв'язку, який використовується переважною більшістю VPN на ринку. Він був представлений у 2001 році, що зробило його перевіреним галузевим стандартом для зашифрованої маршрутизації VPN. Однак, між WireGuard та OpenVPN існують суттєві відмінності в продуктивності. Прочитайте детальне порівняння двох протоколів, проведене Nym.
OpenVPN: Має перевагу гнучкої конфігурації для користувачів та програмістів, з широким вибором шифрування для використання. Він також має набагато ширшу сумісність з VPN-маршрутизаторами та частіше зустрічається в корпоративних системах.
WireGuard: Набагато швидший за OpenVPN, зі значно меншими накладними витратами даних та рівним рівнем безпеки.
WireGuard проти IPSec/IKEv2
IPSec (Internet Protocol Security) та IKEv2 (Internet Key Exchange версії 2) – це протоколи, що використовуються для захисту інтернет-зв'язку. Вони часто використовуються разом як IPSec/IKEv2.
IpSec/IKEv2: Як і OpenVPN, він підтримує широкий спектр криптографічних протоколів, але також має надзвичайно великі накладні витрати даних, з кодовою базою в сотні тисяч рядків. Це може зробити його схильним до помилок та неправильної конфігурації, а також ускладнити аудит.
WireGuard: Простіший та ефективніший, але без можливості вибору типів шифрування для користувачів.
WireGuard проти PPTP
Протокол тунелювання «Point-to-Point» (PPTP) є одним із найстаріших протоколів шифрування VPN. Він був представлений у середині 1990-х років компанією Microsoft і досі використовується деякими застарілими платформами.
PPTP: Використовує MPPE (Microsoft Point-to-Point Encryption) з шифром RC4, який вважається слабким за сучасними стандартами. Однак, він відносно швидкий і простий в налаштуванні, тому може бути корисним у ситуаціях, коли швидкість є більшою проблемою, ніж захист. WireGuard: Не тільки надзвичайно швидкий, але й використовує найсучасніші алгоритми шифрування, що робить компроміс між швидкістю та безпекою PPTP абсолютно непотрібним.
WireGuard проти L2TP
L2TP (протокол тунелювання 2-го рівня) є розширенням PPTP та L2F (протокол пересилання 2-го рівня).
L2TP: Сам по собі L2TP не забезпечує шифрування, тому його часто поєднують з IPsec для забезпечення шифрування та захисту даних, що передаються (L2TP/IPsec).
WireGuard: Оскільки L2TP не шифрує дані користувачів, порівнювати його з WireGuard не потрібно.
WireGuard: Прискорення децентралізованих мереж
Коли йдеться про конфіденційність в Інтернеті, WireGuard є такою захопливою та важливою технологією завдяки своїй здатності забезпечувати швидку та безпечну маршрутизацію для децентралізованих VPN (dVPN), орієнтованих на конфіденційність.
Централізовані та односерверні архітектури традиційних VPN, з одного боку, ніколи не забезпечували належного захисту конфіденційності користувачів. Вони вразливі до витоків даних, співпраці з запитами на масове спостереження, бекдорів для рекламодавців та продажу даних брокерам. З іншого боку, dVPN є перспективними, але швидкість є проблемою. Чим більше серверів мають пройти ваші дані, щоб приховати ваш трафік, тим повільніше все буде. Це може не бути великою проблемою для надсилання конфіденційного електронного листа, але це буде проблема для комплексної мережевої маршрутизації.
WireGuard — це революційне рішення для забезпечення конфіденційності: воно забезпечує надзвичайно швидкий, ефективний та оптимізований протокол маршрутизації, щоб користувачі могли скористатися перевагами розширеного захисту конфіденційності багатострибкового dVPN без шкоди для швидкості.
NymVPN вирішив надати користувачам вибір. Вони можуть легко переключитися на використання двоступеневого режиму dVPN на базі WireGuard для дуже швидкого та конфіденційного щоденного захисту. Або ж, для дуже чутливих випадків використання (таких як обмін повідомленнями та крипто-транзакції), користувачі можуть обрати неперевершений 5-стрибковий режим мікснету на базі протоколу Sphinx, спеціально розробленого для обробки трафіку мікснету.
Вибираючи найкращий VPN для ваших потреб у сфері конфіденційності, врахуйте, як децентралізована мережа з WireGuard може зробити так, щоб вам не довелося жертвувати своєю конфіденційністю для легкого та швидкого користування Інтернетом.

WireGuard VPN: ЧаПи
WireGuard за замовчуванням використовує фіксовані UDP-порти, що спрощує маршрутизацію, але потенційно робить трафік більш придатним для відбитків пальців, хоча плагіни обфускації або інтегрована маршрутизація (як у NymVPN) можуть маскувати поведінку портів.
NymVPN інтегрує двострибковий dVPN-сеанс на основі WireGuard у свою мікс-мережу, додаючи шари для приховування метаданих, зберігаючи швидкість WireGuard для щоденного перегляду веб-сторінок.
WireGuard регулярно змінює ключі сеансів (через ChaCha20-Poly1305) після короткого часу або через певний обсяг даних, обмежуючи вплив компрометації ключів та забезпечуючи безпеку минулих сеансів.
Мінімальна кодова база WireGuard ефективно працює на Linux, macOS, Android, iOS та вбудованих пристроях, але на малопотужному обладнанні накладні витрати на обмін ключами можуть призвести до незначного навантаження на процесор.
WireGuard є високоефективним і, як правило, споживає менше заряду батареї, ніж складніші протоколи, такі як OpenVPN з TLS, завдяки швидшому підтвердженню зв'язку, що зменшує час, протягом якого радіо залишається активним.
Про авторів

Casey Ford, PhD
Керівник відділу комунікацій
Ania M. Piotrowska, PhD
Технічний рецензентЗміст
Читати далі...

Що таке шифрування? Повний посібник
Пояснення технології, що лежить в основі безпеки даних в Інтернеті, та її обмежень щодо конфіденційності
