Топ питань
Часова шкала
Чат
Перспективи
WireGuard
З Вікіпедії, вільної енциклопедії
Remove ads
WireGuard — це протокол зв’язку та безкоштовне програмне забезпечення з відкритим вихідним кодом, яке реалізує зашифровану віртуальну приватну мережу (VPN) і було розроблено з метою простоти використання, високої швидкості та низької поверхні атаки.[4] Він націлений на кращу продуктивність і потужність, ніж IPsec і OpenVPN, два поширені протоколи тунелювання.[5] Протокол WireGuard передає трафік через UDP.[6]
У березні 2020 року вийшла стабільна версія для Linux і була включена в ядро Linux 5.6, а також була перенесена на попередні ядра Linux у деяких дистрибутивах. Компоненти ядра Linux ліцензовані відповідно до GNU General Public License (GPL) версії 2; інші реалізації знаходяться під GPLv2 або іншими безкоштовними/відкритими ліцензіями.[4]
Remove ads
Протокол
Узагальнити
Перспектива
WireGuard використовує наступне:[4]
- X25519 для обміну ключами
- ChaCha20 для симетричного шифрування
- Poly1305 для кодів автентифікації повідомлень
- SipHash для ключів хеш-таблиці
- BLAKE2s для криптографічної хеш-функції
- Тільки на основі UDP[6]
У травні 2019 року дослідники з INRIA опублікували машинний аналіз протоколу WireGuard, створений за допомогою асистента CryptoVerif.[7]
Додатковий режим попереднього спільного симетричного ключа
WireGuard підтримує режим попередньо наданого симетричного ключа, який забезпечує додатковий рівень симетричного шифрування для пом’якшення майбутніх досягнень у квантових обчисленнях. Це усуває ризик того, що трафік може зберігатися, доки квантові комп’ютери не зможуть зламувати Curve25519, після чого трафік може бути розшифрований. Попередньо надані ключі «зазвичай викликають проблеми з точки зору керування ключами та, швидше за все, можуть бути вкрадені», але в короткостроковій перспективі, якщо симетричний ключ скомпрометовано, ключі Curve25519 все одно забезпечують більш ніж достатній захист.[8]
Мережа
WireGuard використовує лише[9] UDP[4] через потенційні недоліки TCP-over-TCP.[9] [10]
WireGuard повністю підтримує IPv6 як всередині, так і поза тунелем. Він підтримує лише рівень 3 для IPv4 і IPv6 та може інкапсулювати v4-в-v6 і навпаки.[11]
Розширюваність
WireGuard розроблено з можливістю розширення за допомогою сторонніх програм і скриптів. Це дозволило доповнити WireGuard різноманітними функціями, включаючи зручніші інтерфейси керування (в тому числі простіше налаштування ключів), ведення журналів, динамічне оновлення брандмауера та інтеграцію з LDAP.[джерело?]
Виключення таких складних функцій із мінімальної кодової бази ядра покращує його стабільність і безпеку. Для забезпечення безпеки WireGuard обмежує можливості реалізації криптографічного контролю, обмежує вибір процесів обміну ключами та відображає алгоритми [посилання на джерело] до невеликої підмножини сучасних криптографічних примітивів. Якщо в якомусь із примітивів знайдено вразливість, може бути випущена нова версія, яка вирішує проблему. Крім того, налаштування конфігурації, які впливають на безпеку програми в цілому, не можуть бути змінені непривілейованими користувачами.[12]
Remove ads
Згадки
Огляд Ars Technica показав, що WireGuard простий у налаштуванні та використанні, використовує надійне шифрування та має мінімальне ядро, яка забезпечує невелику поверхню для атаки[13].
WireGuard отримав фінансування від Фонду відкритих технологій.[14] і пожертвування від Mullvad, Private Internet Access, IVPN, NLnet Foundation[15] і OVPN.[16]
Сенатор від штату Орегон Рон Вайден (Ron Wyden) рекомендував Національному інституту стандартів і технологій (NIST) розглянути WireGuard як заміну існуючим технологіям.[17]
Remove ads
Доступність
Реалізації
Реалізації протоколу WireGuard включають:
- Початкова реалізація написана мовами C та Go.[18]
- Реалізація простору користувача від Cloudflare написана мовою Rust.[19] [20]
- Реалізація для OpenBSD, написана мовою C.[21]
- Реалізація wg(4) для NetBSD написана на C.[22]
- Реалізація FreeBSD написана на мові C і має багато спільного з реалізацією OpenBSD.[23]
- Власна реалізація ядра Windows під назвою "wireguard-nt", з серпня 2021 року[24]
- OPNsense через стандартний пакет os-WireGuard.[25]
- pfSense через експериментальний додатковий пакет для pfSense Plus 21.05, pfSense CE 2.5.2 та пізніших версій.
- Mikrotik має реалізацію на всіх сучасних роутерах
Історія
Узагальнити
Перспектива
Перші зразки базового коду існують з 30 червня 2016 року [26] Чотирма першими користувачами WireGuard стали провайдери VPN-послуг Mullvad[27], AzireVPN[28], IVPN[29] і cryptostorm[30].
9 грудня 2019 року Девід Міллер (David Miller), основний розробник мережевого стеку Linux, прийняв виправлення WireGuard до дерева підтримки "net-next" для включення в наступне ядро.[31] [32] [33]
28 січня 2020 року Лінус Торвальдс включив WireGuard до основного дерева ядра Linux.[34]
20 березня 2020 року розробники Debian увімкнули параметри збірки модуля WireGuard у своїй конфігурації ядра для версії Debian 11 (тестовій).[35]
29 березня 2020 року WireGuard було включено до дерева релізу Linux 5.6. Версія ПЗ для Windows залишається бета-версією.
30 березня 2020 року розробники Android додали підтримку WireGuard у своєму ядрі.[36]
22 квітня 2020 року розробник NetworkManager Беніаміно Гальвані об’єднав підтримку графічного інтерфейсу з WireGuard.[37]
12 травня 2020 року Метт Данвуді запропонував виправлення для підтримки рідного ядра WireGuard в OpenBSD.[38]
22 червня 2020 року після роботи Мета Данвуді (Matt Dunwoodie) та Джейсона А. Доненфельда (Jason A. Donenfel) підтримку WireGuard була додана в OpenBSD.[39]
23 листопада 2020 року Джейсон А. Доненфельд випустив оновлення пакета Windows. Було покращено встановлення, стабільність, підтримку ARM і корпоративні можливості.[40]
29 листопада 2020 року підтримку WireGuard було імпортовано в ядро FreeBSD 13.[23]
19 січня 2021 року підтримку WireGuard було додано в pfSense Community Edition (CE) 2.5.0.[41]
У березні 2021 року підтримку WireGuard у режимі ядра було вилучено з FreeBSD 13.0, все ще перебуває у стадії тестування, після того, як термінове очищення коду у FreeBSD WireGuard не вдалося швидко завершити.[42] У pfSense Community Edition (CE) 2.5.0 і pfSense Plus 21.02, що базуються на FreeBSD також видалено WireGuard у ядрі.[43]
У травні 2021 року підтримка WireGuard була повернута до pfSense CE та pfSense Plus як експериментальний пакет, написаний членом спільноти pfSense Крістіаном Макдональдом (Christian McDonald). Пакет WireGuard для pfSense включає поточну роботу над розробкою WireGuard у режимі ядра Джейсона А. Доненфельда, яка спочатку спонсорувалася компанією Netgate.[44] [45] [46]
У червні 2021 року офіційні сховища пакетів для pfSense CE 2.5.2 і pfSense Plus 21.05 включали пакет WireGuard.[47]
Remove ads
Дивись також
- Порівняння послуг віртуальної приватної мережі
- Secure Shell (SSH), криптографічний мережевий протокол, який використовується для захисту служб у незахищеній мережі.
Посилання
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads
