Přeskočit na obsah

WireGuard

Z Wikipedie, otevřené encyklopedie
WireGuard
Logo
VývojářJason A. Donenfeld
První vydání2015[1]
Aktuální verze1.0.20220627 (27. června 2022)
Operační systémAndroid
IOS
Linux
FreeBSD
NetBSD
OpenBSD
MacOS
Microsoft Windows 7+
další[2][3][pozn. 1]
Vyvíjeno vC (Linux, FreeBSD moduly jádra, NetBSD, OpenBSD ovladače v jádře), Go (implementace v uživatelském prostoru)
Typ softwaruVirtuální privátní síť
LicenceGPL verze 2; různé licence pro svobodný a otevřený software
Webhttps://www.wireguard.com
Některá data mohou pocházet z datové položky.

WireGuard je komunikační protokol a svobodný a otevřený software, který implementuje šifrované virtuální privátní sítě (VPN), navržený se záměrem snadného použití, se schopností fungovat při vysokých rychlostech přenosů, a s malým prostorem pro útoky.[4] Jeho cílem je lepší výkonnost, než jakou poskytují dva rozšířené protokoly pro síťové tunelováníIPsec a OpenVPN.[5] Protokol WireGuard přenáší provoz přes UDP.[6]

Linuxová verze WireGuardu dosáhla v březnu 2020 produkční stability a byla začleněna do jádra Linuxu 5.6 a backportována do starších linuxových jader v některých linuxových distribucích.[3][7] Komponenty linuxového jádra mají licenci GPL verze 2; jiné implementace mají buď tuto nebo jinou licenci pro svobodný software s otevřeným zdrojovým textem.[4]

WireGuard používá následující kryptografické nástroje:[4]

V květnu 2019 výzkumníci z INRIA publikovali strojově ověřenou verifikaci protokolu WireGuard vytvořenou pomocí dokazovacího asistenta CryptoVerif.[8]

Volitelný režim předem sdílených symetrických klíčů

[editovat | editovat zdroj]

Pro zmírnění dopadu budoucích pokroků v kvantových výpočtech podporuje WireGuard režim předem sdílených symetrických klíčů, který poskytuje další vrstvu symetrického šifrování. Tím se řeší dopředná bezpečnost – riziko dešifrování současného provozu v budoucnosti, kdy kvantové počítače budou schopné prolomit Curve25519. Předem sdílené klíče „obvykle z hlediska správy klíčů působí problémy a zvyšují pravděpodobnost, že by mohly být odcizeny“, ale v krátkodobé perspektivě, pokud by došlo k překonání symetrického klíče, poskytují klíče používající Curve25519 stále více než dostačující ochranu.[9]

WireGuard[10] používá výhradně protokol UDP,[4] kvůli potenciálním nevýhodám TCP-over-TCP.[10][11]

WireGuard plně podporuje IPv6, v tunelu i mimo něj. Podporuje pouze vrstvu 3, jak pro IPv4, tak pro IPv6, a umožňuje zapouzdření v4-in-v6 a naopak.[12]

Rozšiřitelnost

[editovat | editovat zdroj]

WireGuard je navržen tak, aby jej bylo možné rozšiřovat programy a skripty třetích stran. Díky tomu byl WireGuard rozšířen o různé vlastnosti včetně uživatelsky přívětivějšího rozhraní pro správu (včetně snazšího nastavování klíčů), žurnálování, dynamických aktualizací firewallu, a integrace LDAP.[zdroj?]

Vyloučení těchto složitých funkcí z minimální codebase jádra zvyšuje stabilitu a bezpečnost. Pro zajištění bezpečnosti WireGuard omezuje volby implementace kryptografických kontrol i algoritmů výměny klíčů, a algoritmy mapuje na malou podmnožinu moderních kryptografických primitiv. Pokud je v některém z primitiv nalezena chyba, může být rychle vydána nová verze, která ji opravuje. Neprivilegovaní uživatelé nemohou měnit konfigurační nastavení, která ovlivňují bezpečnost celé aplikace.[13]

Příjetí

[editovat | editovat zdroj]

Podle recenze serveru Ars Technica lze WireGuard snadno nasadit a používat, používá silné šifry, a má minimální rozsah kódu, který poskytuje malý prostor pro útoky.[14]

WireGuard byl financován z Open Technologie Fund[15] a dary od společností Mullvad, Private Internet Access, IVPN, NLnet Basics[16] a OVPN.[17]

Oregonský senátor Ron Wyden doporučil Národní institutu pro standardy a technologie (NIST), aby provedl ohodnocení WireGuardu jako náhrady za stávající technologie.[18]

Dostupnost

[editovat | editovat zdroj]

Implementace

[editovat | editovat zdroj]

K implementacím protokolu WireGuard patří:

  • Donenfeldova počáteční implementace v jazyce C a Go.[19]
  • BoringTun společnosti Cloudflare, který implementuje WireGuard v uživatelském prostoru v jazyce Rust.[20][21]
  • Implementace Matta Dunwoodieho pro OpenBSD, napsaná v jazyce C.[22]
  • Implementace Ryota Ozakiho wg(4) pro NetBSD v jazyce C.[23]
  • Implementace pro FreeBSD v jazyce C sdílí většinu datové trajektorie s OpenBSD implementací.[24]
  • Nativní implementace pro jádro Microsoft Windows pojmenovaná „wireguard-nt“ dostupná od srpna 2021.[25]
  • OPNsense ze standardního balíčku os-WireGuard.[26]
  • PfSense z pokusného balíčku doplnění k pfSense Plus 21.05, pfSense CE 2.5.2 a novějších verzí.
  • MikroTik má implementaci ve všech moderních routerech

První snímky kódové základny jsou z 30. června 2016.[27] Prvními čtyřmi uživateli WireGuardu byly poskytovatelé VPN služeb Mullvad,[28] AzireVPN,[29] IVPN[30] a cryptostorm.[31]

9. prosince 2019 přijal David Miller – hlavní správce síťového zásobníku Linuxu – zdrojové texty WireGuardu do stromu „net-next“ aby je mohl začlenit do budoucího jádra.[32][33][34]

28. ledna 2020 Linus Torvalds začlenil do jádra strom net-next Davida Millera, čímž se WireGuard stal součástí hlavního stromu linuxového jádra.[35]

20. března 2020 vývojáři Debianu povolili možnost sestavení modulu WireGuardu v konfiguraci jádra pro Debian verze 11 (testovací).[36]

29. března 2020 byl WireGuard začleněn do stromu Linuxu 5.6. Verze pro Windows zůstává ve stádiu beta.[3]

30. března 2020 přidali vývojáři Androidu nativní podporu WireGuardu do svého Generic Kernel Image.[37]

22. dubna 2020 začlenil Beniamino Galvani podporu GUI pro WireGuard do nástroje NetworkManager.[38]

12. května 2020 navrhl Matt Dunwoodie úpravy pro nativní podporu WireGuardu do jádra OpenBSD.[39]

22. června 2020 byla podpora WireGuardu importována do OpenBSD po úpravách, které provedli Matt Dunwoodie a Jason A. Donenfeld.[40]

23. listopadu 2020 Jason A. Donenfeld uvolnil aktualizaci balíčku pro Microsoft Windows, která zlepšuje instalaci, stabilitu, podporu procesorů ARM a podnikových funkcí.[41]

29. listopadu 2020 byla podpora WireGuardu importována do jádra FreeBSD 13.[24]

19. ledna 2021 byla podpora WireGuard přidána pro náhled do vývojových snímků PfSense Community Edition (CE) 2.5.0.[42]

V březnu 2021, když se nepodařilo rychle dokončit naléhavé čištění kódu WireGuardu ve FreeBSD, byla z FreeBSD 13.0, které bylo stále ve fázi testování, odstraněna podpora jaderného režimu WireGuardu.[43] Verze pfSense Community Edition (CE) 2.5.0 a pfSense Plus 21.02 pro FreeBSD také odstranily WireGuard z jádra.[44]

V květnu 2021 byla podpora WireGuardu vrácena do vývojových snímků pfSense CE a pfSense Plus v podobě experimentálního balíčku, který vytvořil člen komunity pfSense, Christian McDonald. Balíček WireGuard pro pfSense začleňuje pokračující vývojovou práci Jasona A. Donenfelda na jáderném provedení WireGuardu, která byla původně sponzorována firmou Netgate.[45][46][47]

V červnu 2021 oficiální repozitáře pfSense CE 2.5.2 i pfSense Plus 21.05 obsahovaly balíček WireGuard.[48]

  1. Na některých platformách je k dispozici pouze beta verze.

V tomto článku byl použit překlad textu z článku WireGuard na anglické Wikipedii.

  1. GRAUER, Yael. How one hacker's push to secure the internet became a crucial part of Mac, Linux, and Windows operating systems. www.businessinsider.com. 2021-01-16. Dostupné online [cit. 2022-11-25]. 
  2. Installation [online]. WireGuard [cit. 2020-04-23]. Dostupné online. 
  3. a b c SALTER, Jim. WireGuard VPN makes it to 1.0.0—and into the next Linux kernel [online]. 2020-03-30 [cit. 2020-04-23]. Dostupné v archivu pořízeném z originálu dne 2020-03-31. 
  4. a b c d WireGuard: fast, modern, secure VPN tunnel [online]. WireGuard [cit. 2021-03-31]. Dostupné v archivu pořízeném z originálu dne 2018-04-28. 
  5. Applied Cryptography and Network Security. [s.l.]: Springer, 2018-06-11. Dostupné v archivu pořízeném z originálu dne 2019-02-18. ISBN 978-3-319-93387-0. 
  6. a b DONENFELD, Jason A. Known Limitations - WireGuard [online]. www.wireguard.com [cit. 2020-06-01]. Dostupné online. (anglicky) 
  7. FIKAR, Jan. WireGuard bude v Linuxu 5.6 a bude mít verzi 1.0. Root.cz [online]. 2019-12-27. Dostupné online. 
  8. LIPP, Benjamin; BLANCHET, Bruno; BHARGAVAN, Karthikeyan. A Mechanised Cryptographic Proof of the WireGuard Virtual Private Network Protocol. Paris: Inria, 2019. (Research Report RR-9269). Dostupné online. hal-02100345. S. 49. 
  9. DONENFELD, Jason. WireGuard: Next Generation Kernel Network Tunnel [online]. Wireguard.com, 2021-05-02. Dostupné online. 
  10. a b DONENFELD, Jason A. Known Limitations - WireGuard [online]. www.wireguard.com [cit. 2021-05-02]. Dostupné online. (anglicky) 
  11. Why TCP Over TCP Is A Bad Idea [online]. sites.inka.de [cit. 2021-05-02]. Dostupné online. 
  12. DONENFELD, Jason A. WireGuard: Next Generation Kernel Network Tunnel. In: [s.l.]: [s.n.] Dostupné v archivu pořízeném z originálu dne 2018-03-04. Kapitola Introduction & Motivation.
  13. Wireguard VPN Protocol - Privacy HQ [online]. privacyhq.com [cit. 2021-05-06]. Dostupné online. 
  14. SALTER, Jim. WireGuard VPN review: A new type of VPN offers serious advantages [online]. Ars Technica, 2018-08-26. Dostupné v archivu pořízeném z originálu dne 2018-09-20. 
  15. Building a more secure, accessible and resilient WireGuard VPN protocol. [online]. www.opentech.fund [cit. 2022-06-20]. Dostupné online. 
  16. Donations [online]. WireGuard [cit. 2018-04-28]. Dostupné v archivu pořízeném z originálu dne 2018-04-28. 
  17. OVPN donates to support WireGuard [online]. OVPN, 2020-03-23. Dostupné online. 
  18. US Senator Recommends Open-Source WireGuard To NIST For Government VPN [online]. Phoronix, 2018-06-30 [cit. 2018-08-05]. Dostupné v archivu pořízeném z originálu dne 2018-08-05. 
  19. DONENFELD, Jason. WireGuard: fast, modern, secure VPN tunnel [online]. 2019-06-07 [cit. 2019-06-16]. Dostupné online. 
  20. KRASNOV, Vlad. BoringTun, a userspace WireGuard implementation in Rust [online]. Cloudflare Blog, 2018-12-18 [cit. 2019-03-29]. Dostupné v archivu pořízeném z originálu dne 2019-04-04. (anglicky) 
  21. CloudFlare Launches "BoringTun" As Rust-Written WireGuard User-Space Implementation [online]. phoronix.com [cit. 2019-03-29]. Dostupné online. 
  22. JOHANSSON, Janne. WireGuard imported into OpenBSD [online]. 2020-06-21. Dostupné online. 
  23. wg(4) - NetBSD Manual Pages [online]. 2020-08-20. Dostupné online. 
  24. a b Import kernel WireGuard support [online]. Dostupné online. 
  25. WireGuardNT, a high-performance WireGuard implementation for the Windows kernel [online]. 2021-08-02. Dostupné online. 
  26. OPNsense search results for wireguard|OPNsense documentation [online]. OPNsense [cit. 2021-04-28]. Dostupné online. 
  27. Index of /Monolithic-historical/ [online]. Dostupné online. 
  28. MASON, John. Mullvad Review [online]. thebestvpn.com, 2019-02-13 [cit. 2019-04-08]. Dostupné v archivu pořízeném z originálu dne 2019-06-24. 2. Strong Tunneling Protocols – OpenVPN & WireGuard. 
  29. MASON, John. AzireVPN Review [online]. thebestvpn.com, 2019-02-19 [cit. 2019-04-08]. Dostupné v archivu pořízeném z originálu dne 2019-05-08. 2. Impressive Protocols and Encryption. 
  30. PESTELL, Nick. Introducing Wireguard [online]. 2018-12-11 [cit. 2019-09-22]. Dostupné online. 
  31. WireGuard support added! [online]. cryptostorm blog, 2019-04-05 [cit. 2019-12-09]. Dostupné v archivu pořízeném z originálu dne 2019-12-09. 
  32. e7096c131e5161fa3b8e52a650d7719d2857adfd - pub/scm/linux/kernel/git/davem/net-next - Git at Google [online]. kernel.googlesource.com. Dostupné online. 
  33. LKML: David Miller: Re: [PATCH net-next v2] net: WireGuard secure network tunnel [online]. lkml.org. Dostupné online. 
  34. [ANNOUNCE] WireGuard merged to net-next, on its way to Linux 5.6 [online]. 2020-01-09. Dostupné v archivu pořízeném z originálu dne 2020-01-09. 
  35. TORVALDS, Linus. index : kernel/git/torvalds/linux.git [online]. Kernel.org [cit. 2020-02-02]. Dostupné online. 
  36. drivers/net: Enable WIREGUARD as module [online]. Dostupné online. 
  37. ANDROID: GKI: enable CONFIG_WIREGUARD [online]. Dostupné online. 
  38. merge branch 'bg/wireguard' (d321d0df) · Commits · GNOME / network-manager-applet [online]. gitlab.gnome.org [cit. 2020-05-30]. Dostupné online. (anglicky) 
  39. WireGuard for OpenBSD Kernel Patches Posted [online]. Dostupné online. 
  40. add wg(4), an in kernel driver for WireGuard vpn communication [online]. Dostupné online. 
  41. [ANNOUNCE] WireGuard for Windows 0.3: ARM support, enterprise features, & more [online]. Dostupné online. 
  42. WireGuard for pfSense Software [online]. Dostupné online. 
  43. ANDERSON, Tim. FreeBSD 13.0 to ship without WireGuard support as dev steps in to fix 'grave issues' with initial implementation. www.theregister.com. Situation Publishing, 2021-03-23. Dostupné online [cit. 2021-03-31]. 
  44. THOMPSON, Jim. WireGuard Removed from pfSense® CE and pfSense® Plus Software [online]. Netgate blog, 2021-03-18 [cit. 2021-03-20]. Dostupné online. (anglicky) 
  45. LONG, Scott. pfSense: WireGuard returns as an Experimental Package [online]. Netgate, 2021-05-05 [cit. 2021-06-09]. Dostupné online. (anglicky) 
  46. PAXSON, Audian. WireGuard for pfSense Software [online]. Netgate, 2021-01-19 [cit. 2021-06-09]. Dostupné online. (anglicky) 
  47. wireguard-freebsd - WireGuard implementation for the FreeBSD kernel [online]. git.zx2c4.com [cit. 2021-06-09]. Dostupné online. 
  48. PINGLE, Jim. pfSense Plus 21.05-RELEASE Now Available [online]. Netgate, 2021-06-02 [cit. 2021-06-09]. Dostupné online. (anglicky) 

Související články

[editovat | editovat zdroj]

Externí odkazy

[editovat | editovat zdroj]