WireGuard - WireGuard
| Původní autoři | Jason A. Donenfeld |
|---|---|
| Vývojáři | Jason A. Donenfeld |
| Stabilní uvolnění | 1.0.20210219 / 19. února 2021
|
| Úložiště | |
| Napsáno | C ( Linux , moduly jádra FreeBSD , NetBSD , ovladače jádra OpenBSD ), Go (implementace uživatelského prostoru) |
| Operační systém | |
| Typ | Soukromá virtuální síť |
| Licence | různé free a open-source |
| webová stránka | www |
WireGuard je komunikační protokol a bezplatný software s otevřeným zdrojovým kódem, který implementuje šifrované virtuální privátní sítě (VPN) a byl navržen s cílem snadného použití, vysokorychlostního výkonu a povrchu s nízkým útokem . Zaměřuje se na lepší výkon a vyšší výkon než IPsec a OpenVPN , dva běžné tunelovací protokoly . Protokol WireGuard předává provoz přes UDP .
V březnu 2020 dosáhla verze softwaru pro Linux stabilní produkční verze a byla začleněna do jádra Linux 5.6 a v některých distribucích Linuxu byla zpětně přenesena do dřívějších jader Linuxu . Součásti jádra Linux jsou licencovány pod licencí GNU General Public License (GPL) verze 2; další implementace jsou pod licencí GPLv2 nebo jinými licencemi zdarma/open-source.
Protokol
WireGuard používá následující:
- Curve25519 pro výměnu klíčů
- ChaCha20 pro symetrické šifrování
- Poly1305 pro ověřovací kódy zpráv
- SipHash pro hashovatelné klíče
- BLAKE2s pro kryptografickou hashovací funkci
- Pouze na bázi UDP
V květnu 2019 vědci z INRIA publikovali strojem kontrolovaný důkaz WireGuard, vyrobený pomocí asistenta důkazu CryptoVerif .
WireGuard podporuje režim předem sdíleného symetrického klíče, který poskytuje další vrstvu symetrického šifrování, aby se zmírnily budoucí pokroky v kvantové výpočetní technice. Riziko spočívá v tom, že provoz bude ukládán, dokud nebudou kvantové počítače schopny prolomit Curve25519 ; v tomto okamžiku by mohl být provoz dešifrován. Předsdílené klíče jsou „obvykle z hlediska správy klíčů problematické a mohou být s větší pravděpodobností ukradeny“, ale v krátkodobém horizontu, pokud je symetrický klíč narušen, klíče Curve25519 stále poskytují více než dostatečnou ochranu.
Sítě
WireGuard používá pouze UDP, a proto nefunguje v sítích, které blokují provoz UDP. To je na rozdíl od alternativ, jako je OpenVPN, kvůli mnoha nevýhodám směrování TCP přes TCP.
WireGuard plně podporuje IPv6, uvnitř i vně tunelu. Podporuje pouze vrstvu 3 pro IPv4 i IPv6 a může zapouzdřit v4-in-v6 a naopak.
WireGuard podporuje více topologií :
- Point-to-point
-
Hvězda (server/klient)
- Než klient začne odesílat data, nemusí být definován koncový bod klienta.
- Koncové body klienta lze staticky předdefinovat.
- Pletivo
Protože je podporováno point-to-point , lze vytvářet další topologie, ale ne na stejném tunelu.
Rozšiřitelnost
WireGuard je navržen tak, aby byl rozšířen o programy a skripty třetích stran. To bylo použito k rozšíření WireGuard o různé funkce, včetně uživatelsky přívětivějších rozhraní pro správu (včetně snadnějšího nastavení klíčů), protokolování, dynamických aktualizací brány firewall a integrace LDAP .
Vyloučení takových komplexních funkcí z minimální základní kódové základny zlepšuje jeho stabilitu a zabezpečení. Aby byla zajištěna bezpečnost, WireGuard omezuje možnosti implementace kryptografických kontrol, omezuje možnosti procesů výměny klíčů a mapuje algoritmy na malou podmnožinu moderních kryptografických primitiv . Pokud je u některého z primitiv nalezena chyba, může být vydána nová verze, která problém vyřeší. Neprivilegovaní uživatelé také nemohou měnit nastavení konfigurace, která ovlivňují zabezpečení celé aplikace.
Recepce
Cílem WireGuard je poskytnout jednoduchou a efektivní implementaci virtuální soukromé sítě. Recenze společnosti Ars Technica z roku 2018 zjistila, že nastavení populárních technologií VPN, jako je OpenVPN a IPsec, je často složité, snadno se odpojují (při absenci další konfigurace), zabere značný čas vyjednávání o opětovném připojení, mohou používat zastaralé šifry a mají relativně masivní kódové základny s více než 400 000 respektive 600 000 řádky kódu, což brání ladění.
Design WireGuard se snaží tyto problémy omezit, přičemž ve výchozím nastavení má být tunel bezpečnější a snadněji spravovatelný. Pomocí verzování kryptografických balíčků se zaměřuje na šifry, o nichž se věří, že patří mezi nejbezpečnější současné šifrovací metody, a v době přezkoumání Ars Technica měla základnu kódů přibližně 4000 řádků kódu jádra, přibližně 1% buď OpenVPN nebo IPsec , což usnadňuje bezpečnostní audity . WireGuard byl oceněn tvůrcem jádra Linuxu Linusem Torvaldsem, který jej na rozdíl od OpenVPN a IPsec nazval „uměleckým dílem“. Ars Technica uvedla, že při testování byly stabilní tunely snadno vytvořeny pomocí WireGuard, ve srovnání s alternativami, a uvedla, že ve srovnání s okamžitým opětovným připojením WireGuard „žádné nesmysly“ by bylo „těžké se vrátit“ k dlouhým zpožděním opětovného připojení.
Senátor za Oregon Ron Wyden doporučil Národnímu institutu pro standardy a technologie (NIST), aby vyhodnotili WireGuard jako náhradu za stávající technologie jako IPsec a OpenVPN .
Dostupnost
Implementace
Implementace protokolu WireGuard zahrnuje:
- Počáteční implementace Donenfelda, napsaná v jazyce C and Go.
- Cloudflare 's BoringTun, implementace uživatelského prostoru napsaná v Rust .
- Implementace Matta Dunwoodieho pro OpenBSD, napsaná v C.
- Implementace Ryota Ozaki wg (4) pro NetBSD je napsána v jazyce C.
- Implementace FreeBSD je napsána v jazyce C a sdílí většinu datové cesty s implementací OpenBSD.
- OpenWrt Project: WireGuard
- Nativní implementace jádra Windows s názvem „wireguard-nt“, od srpna 2021
- OPNsense prostřednictvím standardního balíčku os-WireGuard
- pfSense přes standardní balíček (pfSense-pkg-WireGuard) (komunitní balíček podporovaný Netgate)
Podpora Linuxu
Mezi uživatelské vesmírné programy podporující WireGuard patří:
- NetworkManager od verze 1.16
- systemd od verze 237
- Intel ConnMan od verze 1.38
- IPVanish VPN od verze 3.7.4.0
- Mozilla VPN (s Mullvadem )
- Síť NOIA
- NordVPN přes Nordlynx
- PiVPN od 17. října 2019
- Soukromý přístup k internetu VPN od 10. dubna 2020
- ProtonVPN od července 2021
- Surfshark od října 2020
- Mistborn (software) VPN od března 2020
- Oracle Linux s „ Unbreakable Enterprise Kernel “, vydání 6, aktualizace 1, od listopadu 2020
- oVPN od února 2020, zavedení v roce 2021
- Torguard od roku 2020
- Trust.zone VPN od února 2021
- Veeam Powered Network v2, od května 2019
- VPN Neomezené od listopadu 2019
- Vypr VPN od května 2020
- Windscribe v roce 2020
Dějiny
Počáteční snímky kódové základny existují od 30. června 2016. Čtyři první uživatelé WireGuard byli poskytovatelé služeb VPN Mullvad , AzireVPN, IVPN a cryptostorm. Společnost WireGuard obdržela dary od společností Mullvad, Private Internet Access , IVPN , NLnet Foundation a nyní také od OVPN.
V červnu 2018 vývojáři WireGuard doporučují považovat kód a protokol za experimentální a upozorňují, že dosud nedosáhli stabilního vydání kompatibilního se sledováním CVE všech bezpečnostních chyb, které mohou být objeveny.
Dne 9.
28. ledna 2020 spojil Linus Torvalds strom Davida Millera s net-next a WireGuard vstoupil do hlavního stromu jádra Linuxu.
Dne 20. března 2020 vývojáři Debianu v konfiguraci jádra pro verzi Debian 11 (testování) povolili možnosti sestavení modulu pro WireGuard.
Dne 29. března 2020 byl WireGuard začleněn do stromu vydání Linux 5.6. Verze softwaru pro Windows zůstává ve verzi beta.
Dne 30. března 2020 vývojáři systému Android přidali do svého obecného obrazu jádra podporu nativního jádra pro WireGuard.
Dne 22. dubna 2020 sloučil vývojář NetworkManager Beniamino Galvani podporu GUI pro WireGuard.
Dne 12. května 2020 Matt Dunwoodie navrhl opravy pro podporu nativního jádra WireGuard v OpenBSD .
Dne 22. června 2020, po práci Matta Dunwoodieho a Jasona A. Donenfelda, byla podpora WireGuard importována do OpenBSD.
23. listopadu 2020 vydal Jason A. Donenfeld aktualizaci balíčku Windows , která zlepšuje instalaci, stabilitu, podporu ARM a podnikové funkce.
Dne 29. listopadu 2020 byla podpora WireGuard importována do jádra FreeBSD 13.
Dne 19. ledna 2021, byla přidána podpora WireGuard pro náhled v pfsense Community Edition (CE) 2.5.0 rozvoje momentky.
V březnu 2021 byla podpora WireGuard v režimu jádra odstraněna z FreeBSD 13.0, stále v testování, poté, co nebylo možné rychle dokončit naléhavé vyčištění kódu ve FreeBSD WireGuard. FreeFDD založené na pfSense Community Edition (CE) 2.5.0 a pfSense Plus 21.02 odstranily také jádro založené na WireGuard.
V květnu 2021 byla podpora WireGuard znovu zavedena zpět do vývojových snímků pfSense CE a pfSense Plus jako experimentální balíček napsaný členem komunity pfSense, Christianem McDonaldem. Balíček WireGuard pro pfSense zahrnuje pokračující vývojovou práci WireGuard v režimu jádra od Jasona A. Donenfelda, kterou původně sponzorovala společnost Netgate
V červnu 2021 obsahovaly oficiální úložiště balíčků pro pfSense CE 2.5.2 a pfSense Plus 21.05 balíček WireGuard
Viz také
- Porovnání služeb virtuální privátní sítě
- Secure Shell (SSH), kryptografický síťový protokol používaný k zabezpečení služeb přes nezabezpečenou síť.