WireGuard - WireGuard

WireGuard
Logo WireGuard.svg
Původní autoři Jason A. Donenfeld
Vývojáři Jason A. Donenfeld
Stabilní uvolnění
1.0.20210219 / 19. února 2021 ; Před 7 měsíci ( 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 .com

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í:

V květnu 2019 vědci z INRIA publikovali strojem kontrolovaný důkaz WireGuard, vyrobený pomocí asistenta důkazu CryptoVerif .

Volitelný režim sdíleného symetrického klíče

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ří:

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é

Poznámky

Reference

externí odkazy