Hallo,
Ik stap over van pfSense met OpenVPN naar Mikrotik met Wireguard, maar ik heb zorgen over de beveiliging van de privésleutel.
Met OpenVPN heb je zowel gebruikersgegevens als certificaat, dus als bijvoorbeeld iemand mijn laptop of mijn telefoon steelt, kan hij geen VPN opzetten omdat hij mijn inloggegevens mist.
Met Wireguard heeft hij alleen de configuratie nodig en dat is alles, omdat de privésleutel daar in platte tekst staat.
In feite heeft OpenVPN al MFA met certificaat (iets wat je hebt) en inloggegevens (iets wat je weet), terwijl Wireguard slechts één factor heeft met de privésleutel (iets wat je hebt).
Miss ik iets? Is het mogelijk om iets soortgelijks te bereiken met Wireguard?
Nee, dat is niet alles. WireGuard gebruikt een asymmetrische voorgedeelde sleutel (PSK). Dus elke peer heeft zijn eigen privésleutel en gebruikt de openbare sleutel van de andere peer. Dus als iemand je laptop steelt, verwijder je eenvoudig de bijbehorende peer uit je configuratiebestand en negeert WireGuard die peer omdat de lokale instantie geen openbare sleutel heeft om te encrypten en authenticeren.
In principe is dat hetzelfde als OpenVPN met certificaten.
Je server heeft zijn eigen privésleutel en kent het openbare certificaat van de cliënt, terwijl de cliënt zijn eigen privésleutel heeft en het openbare certificaat van de server kent. Daarnaast worden beide certificaten ondertekend door de uitgevende CA om de authenticatie te valideren.
En als iemand je laptop met de privésleutel en je inloggegevens heeft, kun je het certificaat van de client intrekken. Het is vergelijkbaar met het verwijderen van de peer in de WireGuard-configuratie op de router.
Daarnaast is WireGuard een UDP-gebaseerd protocol, waardoor het theoretisch betere prestaties heeft in vergelijking met TCP-encapsulatie in OpenVPN. En UDP is stateless, waardoor het moeilijker is te detecteren of de poort open is.
Volgens mij staat WireGuard op hetzelfde niveau als OpenVPN qua beveiliging.
Je zou altijd nog aanvullende authenticatie kunnen toevoegen, zoals RADIUS, als je extra beveiliging wilt. Ik heb er niet naar gekeken, maar ik kan me voorstellen dat iemand al iets extra’s heeft toegevoegd, zoals 2FA als plugin.
Wireguard is het toch nog waard, het is veel sneller in mijn situatie, namelijk het routeren van mijn mobiele dataverkeer via mijn thuisnetwerk naar internet om throttling door mijn mobiele provider te omzeilen.
Ik heb het gevoel dat hij een automatische MFA-setup wil in plaats van handmatig in een configuratie te moeten gaan en een peer te verwijderen. Zo heb je niet een periode waarin de deur open staat, zo je wilt.
Hoewel ik in het scenario van gestolen laptops gewoon volledige schijfversleuteling zou adviseren.
Die sleutel wordt nog steeds opgeslagen in de configuratie. PSK is er voor het geval asymmetrische sleutels gekraakt worden.
Als iemand je schijf met een Wireguard-machine clone, krijgt hij je privésleutel en PSK uit je configuratie en kan hij die gebruiken.
Als iemand je schijf met een op certificaten gebaseerde VPN cloneert, kan hij ook het certificaat pakken en gebruiken (hoewel certificaten mogelijk in een versleutelde certificaatopslag opgeslagen zijn, wat het moeilijker maakt om te exfiltreren, terwijl Wireguard-sleutels mogelijk onversleuteld in tekstbestanden staan).
Maar de oplossing van OP met OpenVPN vereist ook een gebruikersnaam/wachtwoord dat bij runtime wordt ingevoerd en niet op de schijf wordt opgeslagen. Je zou actieve malware nodig hebben om die gegevens uit het geheugen te vangen, niet alleen een schijfkloning.
Je kunt iets soortgelijks doen met Wireguard door een tweede laag toe te voegen waarbij je moet authenticeren om je sleutel te kunnen gebruiken voor een bepaalde tijd, maar standaard heeft Wireguard dat niet als tweede factor.
Je moet nog steeds een certificaat intrekken op een certificaatsysteem en de CRL bijwerken op de server. En ik denk dat je moet inloggen op pfSense en iets moet klikken, wat vrijwel hetzelfde is als op MikroTik.
Ik heb OpenVPN-instances gehost met certificaatgebaseerde authenticatie voor mijn bedrijf. De instanties waren voor toegang tot cloud-infrastructuren zodat onze ontwikkelaars de diensten konden benaderen en bijwerken. En de overhead die ik had met het onderhouden van een CA met verschillende tussenliggende certificaten voor verschillende tenants was een beetje vervelend. Nu met WireGuard verwijder ik een peer in de configuratie, commit het en push de git-repository, en CI/CD regelt de rest.
Maar ja, volledige schijfversleuteling op een laptop moet altijd aan staan.
Bewerking:
Hier is een project om MFA aan WireGuard toe te voegen.
Ja, want WireGuard is slechts het protocol. Alle ‘officiële’ tools zijn er gewoon om het gebruik te vergemakkelijken. Maar de bedoeling van de ontwikkelaar was altijd om het simpel te houden en anderen meer complexe opties toe te laten voegen.
OpenVPN en WireGuard hebben compleet verschillende ontwerpfilosofieën. Als je al de ‘rommel’ weghaalde van OpenVPN tot aan het basale protocol, zou je op hetzelfde punt komen als WireGuard.
Ook, als iemand je schijf van je WireGuard-server of je versleutelde laptop kan klonen, zou ik zeggen dat je andere beveiligingsproblemen hebt en dat VPN het minste van je zorgen zou moeten zijn.