matomo

WireGuard® - Integritet & anonymitet

David Wibergh, om Integritet på nätet

OVPN lanserade WireGuard nyligen som VPN-protokoll i USA, Göteborg, Sundsvall och Frankfurt då vi är imponerade av VPN-protokollet och tror att det finns flera fördelar med det. Vår driftsättning kommer att fortsätta under de kommande veckorna och månaderna tills dess att samtliga VPN-servrar även kör WireGuard.

WireGuard leder ofta till ökade hastigheter och lägre latens, då de moderna krypteringsalgoritmerna Curve25519 och ChaCha20 används.

Det finns flera stora skillnader med WireGuard i relation till OpenVPN, som OVPN har använt sig utav sedan 2014. Vissa skillnader är:

  • Hur WireGuard autentiserar användare
  • WireGuard är nytt och fortfarande under aktiv utveckling
  • Statiska IP-adresser används i WireGuard istället för dynamiska
  • VPN-servrarna kan inte dela på certifikat, (vilket gör att lastbalansering och pool-adresser inte fungerar)

Skillnader mellan OpenVPN & WireGuard

Låt oss gå igenom skillnaderna, konsekvenserna och vad OVPN har gjort för att säkerställa våra kunders integritet.

Hur WireGuard autensierar användare

OpenVPN kan använda sig av användarnamn och lösenord som autentiseringsmetod, men även certifikat. OVPNs implementering är inloggningsuppgifter.

WireGuard använder istället nyckelpar, något som kallas för private key och public key. Private key är en privat nyckel som aldrig ska delas med någon annan, men den publika nyckeln är också vad din enhet använder för att autentisera med våra servrar och kan därför ses lite som ett användarnamn.

Den publika nyckeln skickas till våra VPN-servrar och används förutom för autensiering även för att kryptera trafiken mellan din enhet och VPN-servern. Detaljerad information om detta finns i WireGuards whitepaper, i avsnitt Cryptokey Routing.

WireGuard är nytt och fortfarande under aktiv utveckling

Fram tills nyligen stod följande på WireGuards hemsida:

WireGuard is not yet complete. You should not rely on this code. It has not undergone proper degrees of security auditing and the protocol is still subject to change. We’re working toward a stable 1.0 release, but that time has not yet come.

Varningen är borttagen och WireGuard kommer bli inkluderat i Linux Kernel 5.6, vilket är väldigt stora nyheter då det är ett tydligt tecken på att WireGuard är stabilt och säkert.

Statiska IP-adresser används istället för dynamiska

I dagsläget kräver WireGuard att varje nyckelpar (vilket kan ses som en enhet) blir tilldelad en statisk intern IP-adress. Detta fungerar utan problem för mindre installationer, men kan lätt bli komplext när tiotusentals kunder ska ansluta. Utveckling sker för en modul som heter wg-dynamic, men det är ännu inte klart.

Vi håller med WireGuard-utvecklingsteamet att användningen av statiska IP-adresser inte är ett stort problem så länge det administreras väl, eller som de skriver:

Since a server must know each of its clients public keys beforehand, it is not ridiculous to, at the same time, assign a unique link-local IP address to that client.

VPN-servrarna kan inte dela på certifikat

Precis som att användare genererar ett nyckelpar, så gör även VPN-servrarna det. Varje VPN-server har en publik nyckel, samt en privat nyckel. I konfigurationsfilerna för WireGuard finns de publika nycklarna som våra VPN-servrar har.

Eftersom varje VPN-server behöver ett eget nyckelpar, så går det inte att skapa en konfigurationsfil som kan ansluta till flera olika VPN-servrar. Varje konfigurationsfil kan endast anslutas till en VPN-server och därav listar OVPNs konfigurationsgenerator för WireGuard samtliga VPN-servrar istället för en enskild konfigurationsfil per region.

WireGuard ur ett integritetsperspektiv

WireGuard är inte byggt med anonymitet i åtanke. Men detsamma gäller OpenVPN, vilket är anledningen till att OVPN genomfört flera ändringar för att säkerställa våra kunders integritet när de ansluter till våra OpenVPN-servrar.

I dagsläget är vi medvetna om tre problem när det kommer till WireGuard. Det kan finnas fler, eller nya kan tillkomma i framtiden, då WireGuard fortfarande är under aktiv utveckling.

Kunders IP-adresser sparas i VPN-serverns minne för alltid

På våra VPN-servrar kan vi se följande information för anslutna enheter:

peer: W+8RzDtH8PZ970K78BL48xwTq1UlFrNWPo0C7/OFugQ=

endpoint: 77.218.251.68:19223

allowed ips: 172.18.13.3/32, fd00:0:1337:cafe:1111:1111:d4b9:b6dc/128

latest handshake: 17 hours, 31 minutes, 2 seconds ago

transfer: 13.45 MiB received, 62.14 MiB sent

WireGuard förknippar kundens IP adress (endpoint) med den publika nyckeln (peer). Samtliga VPN-protokoll gör detta, för annars hade VPN-servern inte vetat vart de krypterade paketen ska skickas. Det som är annorlunda är att WireGuard inte tar bort kunders IP-adresser när de inte längre är aktiva utan denna information sparas i VPN-serverns minne för alltid.

För att åtgärda detta har vi programmerat vår nyckelhanterings-daemon så att användarinformation inte sparas för evigt i VPN-serverns minne. Användare som inte har haft ett nyckelutbyte under de senaste tre minuterna tas bort, vilket leder till att vi har så lite information som möjligt:

peer: W+8RzDtH8PZ970K78BL48xwTq1UlFrNWPo0C7/OFugQ=

allowed ips: 172.18.13.3/32, fd00:0:1337:cafe:1111:1111:d4b9:b6dc/128

OVPN kan då inte längre se när våra kunder senast var anslutna, eller våra kunders IP-adresser. Våra VPN-servrar sparar alltså så lite information som det bara går för att säkerställa att WireGuard ska fungera.

WireGuard tilldelar inte dynamiska IP-adresser

Som tidigare nämnt, kräver WireGuard att statiska IP-adresser används.

OVPN har löst detta genom vår konfigurationsgenerator för WireGuard. I samband med att nycklar genereras, eller en publik nyckel klistras in, så tilldelar vi automatisk en intern statisk IP-adress för nyckelparet. Detta går att se på nyckelhanterings-fliken på ditt konto:

När konfigurationsfilerna laddas ned finns IP-adressen inlagd, och den reserveras och skickas tillsammans med den publika nyckeln automatiskt till samtliga VPN-servrar.

Utan dynamiska IP-adresser går det att spåra användare under vissa omständigheter

Den interna IP-adressen ska aldrig synas på internet. WebRTC kan dock läcka IP-adressen, vilket är anledningen att  vårt webbläsartillägg blockerar WebRTC.

Det går att testa om du har några WebRTC-läckor. Testet utförs också automatiskt varje gång vår kontrollpanel besöks, tillsammans med bland annat ett DNS-läckage test.

Men, om den interna IP-adressen syns på internet, och den aldrig ändras då den är statisk, skulle det under vissa omständigheter gå att spåra användare.

Förutom att blockera WebRTC så går det att motverka problemet genom att rotera IP-adresser. För att rotera IP-adresser måste man i dagsläget ta bort den befintliga WireGuard-nyckeln från din profil och generera en ny nyckel, då du i samma veva också allokeras en ny intern IP-adress.

När WireGuard integreras i OVPNs egenutvecklade klient kommer vi bygga in stöd för att rotera nycklar, och således även IP-adresser, automatiskt var sjunde dag. Vår nuvarande prognos är att det ska vara färdigt till sommaren.

Vad vissa VPN-leverantörer felaktigt påstår om WireGuard

OVPN är inte den enda VPN-tjänsten som kör WireGuard, det finns  även vissa andra. Några VPN-tjänster har explicit gått ut med dock att de inte kommer använda WireGuard på grund av vissa saker.

Perfect Privacy nämner:

WireGuard has no dynamic address management, the client addresses are fixed. That means we would have to register every active device of our customers and assign the static IP addresses on each of our VPN servers. In addition, we would have to store the last login timestamp for each device in order to reclaim unused IP addresses. Our users would then not be able to connect your devices after a few weeks because the addresses would have been reassigned.

De menar alltså att de behöver spara en tidsstämpel för när varje kund senast var ansluten, för att kunna "återvinna" IP-adresser. Vi förstår inte deras resonemang då det inte alls behövs.

Vi allokerar en slumpmässig IP-adress i spannet 172.16.0.0/12 till våra kunder, vilket betyder att vi har ungefär en miljon möjliga IP-adresser som kan allokeras. Det är mer än nog för att täcka våra behov. Ingen tidsstämpel behöver överhuvudtaget skapas för att "återvinna" IP-adresser.

VPN.ac nämner:

By design, WireGuard isn’t suitable for none/limited logging policies. Specifically, last public IP of user would be saved on the server used to connect to and it can’t be removed within a day as per our current privacy policy. At a later date we will likely make some tweaks to the source code to sanitize or remove the last used public IP.

Standardinställningen i WireGuard är som tidigare nämnt att spara anslutna IP-adresser för evigt, men det kringgås genom vår nyckelhanterings-daemon som tar bort känslig information efter tre minuter.

AirVPN nämner:

Wireguard lacks dynamic IP address management. The client needs to be assigned in advance a pre-defined VPN IP address uniquely linked to its key on each VPN server. The impact on the anonymity layer is catastrophic;

Vi håller inte med om att det skulle vara katastrofalt att statiska IP-adresser används. Som tidigare nämnt, kan statiska IP-adresser under vissa omständigheter medföra att det går spåra användare. Vårt webbläsartillägg motverkar detta i dagsläget och vår framtida klient kommer göra det ännu enklare för kunder att automatiskt rotera IP-adresser och nycklar.

Sammanfattning

Genom att använda en VPN-tjänst så förflyttar du förtroendet från din internetleverantör till din VPN-leverantör (vilket förhoppningsvis är OVPN). Det är avgörande att du använder en VPN-tjänst som är tillförlitlig, transparent på hur tjänsten drivs och som kan förklara vilka åtgärder som har tagits för att skydda din anonymitet och integritet.

Vi hoppas att denna genomgång har lyckats förklara hur OVPN säkerställer våra kunders integritet när de ansluter till våra VPN-servrar via WireGuard.


WireGuard® är ett registrerat varumärke av Jason A. Donenfeld.

David Wibergh