WireGuard
Originalförfattare | Jason A. Donenfeld |
---|---|
Utvecklare | Jason A. Donenfeld |
Initial release | 2015 |
Stabil frisättning | 1.0.20220627 / 27 juni 2022
|
Förvar | |
Skrivet i | C ( Linux , FreeBSD- kärnmoduler, NetBSD , OpenBSD- kärndrivrutiner), Go (användarutrymmesimplementering) |
Operativ system | |
Typ | Virtuellt privat nätverk |
Licens | olika gratis och öppen källkod |
Hemsida |
|
WireGuard är ett kommunikationsprotokoll och gratis och öppen källkodsprogramvara som implementerar krypterade virtuella privata nätverk (VPN) och designades med målen användarvänlighet, höghastighetsprestanda och låg attackyta . Det syftar till bättre prestanda och mer kraft än IPsec och OpenVPN , två vanliga tunnlingsprotokoll . WireGuard-protokollet skickar trafik över UDP .
I mars 2020 nådde Linux-versionen av programvaran en stabil produktionsversion och inkorporerades i Linux 5.6-kärnan och backporterades till tidigare Linux-kärnor i vissa Linux-distributioner . Linux-kärnkomponenterna är licensierade under GNU General Public License (GPL) version 2; andra implementeringar är under GPLv2 eller andra fri/öppen källkodslicenser.
Protokoll
WireGuard använder följande:
- X25519 för nyckelbyte
- ChaCha20 för symmetrisk kryptering
- Poly1305 för meddelandeautentiseringskoder
- SipHash för hashbara nycklar
- BLAKE2s för kryptografisk hashfunktion
- Endast UDP-baserad
I maj 2019 publicerade forskare från INRIA ett maskinkontrollerat bevis på WireGuard-protokollet, framtaget med hjälp av CryptoVerif- provassistenten .
WireGuard stöder fördelat symmetrisk nyckelläge, vilket ger ett extra lager av symmetrisk kryptering för att mildra framtida framsteg inom kvantberäkning. Detta tar itu med risken att trafik kan lagras tills kvantdatorer kan bryta Curve25519 , vid vilken tidpunkt trafik kan dekrypteras. Fördelade nycklar är "vanligtvis besvärliga ur ett nyckelhanteringsperspektiv och kan vara mer sannolikt stulna", men på kortare sikt, om den symmetriska nyckeln äventyras, ger Curve25519-nycklarna fortfarande mer än tillräckligt skydd.
Nätverk
WireGuard använder endast UDP , på grund av de potentiella nackdelarna med TCP-över-TCP.
WireGuard har fullt stöd för IPv6, både inuti och utanför tunneln. Den stöder endast lager 3 för både IPv4 och IPv6 och kan kapsla in v4-i-v6 och vice versa.
Sträckbarhet
WireGuard är utformad för att utökas med program och skript från tredje part. Detta har använts för att utöka WireGuard med olika funktioner, inklusive mer användarvänliga hanteringsgränssnitt (inklusive enklare inställning av nycklar), loggning, dynamiska brandväggsuppdateringar och LDAP- integration. [ citat behövs ]
Att utesluta sådana komplexa funktioner från den minimala kärnkodbasen förbättrar dess stabilitet och säkerhet. För att säkerställa säkerheten begränsar WireGuard alternativen för att implementera kryptografiska kontroller, begränsar valen för nyckelutbytesprocesser och mappar algoritmer [ citat behövs ] till en liten delmängd av moderna kryptografiska primitiver . Om ett fel hittas i någon av primitiverna kan en ny version släppas som löser problemet. Dessutom kan konfigurationsinställningar som påverkar säkerheten för den övergripande applikationen inte ändras av oprivilegierade användare.
Reception
En recension av Ars Technica fann att WireGuard var lätt att installera och använda, använde starka chiffer och hade en minimal kodbas som gav en liten attackyta.
WireGuard har fått medel från Open Technology Fund . och donationer från Mullvad, Private Internet Access , IVPN , NLnet Foundation och OVPN.
Oregon- senator Ron Wyden har rekommenderat National Institute of Standards and Technology (NIST) att de utvärderar WireGuard som en ersättning för befintlig teknik.
Tillgänglighet
Genomföranden
Implementering av WireGuard-protokollet inkluderar:
- Donenfelds initiala implementering, skriven i C och Go.
- Cloudflares BoringTun, en implementering av användarutrymme skriven i Rust .
- Matt Dunwoodies implementering för OpenBSD, skriven i C.
- Ryota Ozakis wg(4)-implementering, för NetBSD, är skriven i C.
- FreeBSD-implementeringen är skriven i C och delar det mesta av datavägen med OpenBSD-implementeringen.
- Inbyggd Windows- kärnimplementering med namnet "wireguard-nt", sedan augusti 2021.
- OPNsense via standardpaketet os-WireGuard.
- pfSense via experimentellt tilläggspaket på pfSense Plus 21.05, pfSense CE 2.5.2 och senare versioner.
- Mikrotik har en implementering på alla moderna routrar
Historia
Tidiga ögonblicksbilder av kodbasen finns från 30 juni 2016. Fyra tidiga användare av WireGuard var VPN-tjänsteleverantörerna Mullvad , AzireVPN, IVPN och cryptostorm.
Den 9 december 2019 accepterade David Miller – primär underhållare av Linux-nätverksstacken – WireGuard-korrigeringarna i "net-next" underhållarträdet, för inkludering i en kommande kärna.
Den 28 januari 2020 slog Linus Torvalds ihop David Millers nät-nästa träd, och WireGuard gick in i Linux-kärnträdet.
Den 20 mars 2020 aktiverade Debianutvecklare modulbyggningsalternativen för WireGuard i deras kärnkonfiguration för Debian 11-versionen (testning).
Den 29 mars 2020 införlivades WireGuard i versionsträdet för Linux 5.6. Windows-versionen av programvaran förblir i beta.
Den 30 mars 2020 lade Android- utvecklare till inbyggt kärnstöd för WireGuard i sin Generic Kernel Image.
Den 22 april 2020 slog NetworkManager -utvecklaren Beniamino Galvani ihop GUI- stöd för WireGuard.
Den 12 maj 2020 föreslog Matt Dunwoodie patchar för inbyggt kärnstöd för WireGuard i OpenBSD .
Den 22 juni 2020, efter Matt Dunwoodie och Jason A. Donenfelds arbete, importerades WireGuard-stöd till OpenBSD.
Den 23 november 2020 släppte Jason A. Donenfeld en uppdatering av Windows -paketet som förbättrar installation, stabilitet, ARM- stöd och företagsfunktioner .
Den 29 november 2020 importerades WireGuard-stöd till FreeBSD 13-kärnan.
Den 19 januari 2021 lades WireGuard-stöd till för förhandsvisning i pfSense Community Edition (CE) 2.5.0 utvecklingsögonblicksbilder.
I mars 2021 togs stöd för WireGuard i kärnläge bort från FreeBSD 13.0, som fortfarande testas, efter att en brådskande kodrensning i FreeBSD WireGuard inte kunde slutföras snabbt. FreeBSD-baserad pfSense Community Edition (CE) 2.5.0 och pfSense Plus 21.02 tog också bort kärnbaserade WireGuard.
I maj 2021 återinfördes WireGuard-stödet tillbaka till pfSense CE och pfSense Plus utvecklingsögonblicksbilder som ett experimentpaket skrivet av en medlem av pfSense-communityt, Christian McDonald. WireGuard-paketet för pfSense innehåller det pågående WireGuard-utvecklingsarbetet i kärnläge av Jason A. Donenfeld som ursprungligen sponsrades av Netgate.
I juni 2021 inkluderade de officiella paketförråden för både pfSense CE 2.5.2 och pfSense Plus 21.05 WireGuard-paketet.
Se även
- Jämförelse av virtuella privata nätverkstjänster
- Secure Shell (SSH), ett kryptografiskt nätverksprotokoll som används för att säkra tjänster över ett osäkrat nätverk.