Whitepaper over VPN van Google One

Meer informatie over het VPN van Google One

Bij Google werken we er continu aan om de privacy en beveiliging van de persoonlijke informatie van onze gebruikers te beschermen, zodat ze beveiligd kunnen internetten. Bij het ontwerp van onze producten richten we ons op 3 kernprincipes: de informatie van onze gebruikers beveiligen, deze op een verantwoorde manier verwerken en zorgen dat onze gebruikers de controle houden. Door de jaren heen hebben we deze principes toegepast door tools te introduceren waarmee gebruikers hun wachtwoorden kunnen beheren, hun activiteitsgeschiedenis kunnen bekijken en verwijderen, tijdlijnen voor automatisch verwijderen kunnen instellen, web- en app-activiteit kunnen uitzetten en sessies voor privé browsen kunnen aanzetten.

We stimuleren ook al lang het gebruik van Transport Layer Security (TLS), het algemeen gebruikte cryptografische protocol om de communicatie via netwerken te beveiligen, en andere beveiligingsmaatregelen binnen het bredere webecosysteem. Niet elke online serviceprovider zet zich in om strenge standaarden voor gegevensbescherming te implementeren1, waardoor consumenten niet altijd even goed worden beschermd en ze niet altijd evenveel controle hebben over wie toegang heeft tot hun netwerkverkeersgegevens. Zelfs als online serviceproviders de beveiligingsmaatregelen op de juiste manier gebruiken, zijn gegevens zoals je IP-adres en de sites die je bezoekt niet altijd gecodeerd en kunnen ze toegankelijk zijn voor anderen.

Een VPN biedt zowel versleutelde overdracht als ontkoppeling van IP-adressen voor gegevenspakketten tussen de apparaten van gebruikers en de VPN-servers. Als een VPN correct is geïmplementeerd, verbergt het de online activiteit voor netwerknodes onderweg die misschien inzicht kunnen krijgen in verkeersgegevens van gebruikers, zoals openbare wifi-hotspots of andere serviceproviders. Hoewel zo de mogelijkheid wordt weggenomen dat tussenpersonen meekijken met gebruikersverkeer, stelt dit de VPN-provider wel in staat om al het niet-versleutelde browseverkeer van een gebruiker te zien, bijvoorbeeld het domein van elke bezochte website. Omdat VPN-providers deze bevoorrechte positie innemen, moeten gebruikers erop kunnen vertrouwen dat VPN-providers sterke privacy- en beveiligingsgaranties bieden.

Unsecured connections v. VPN Connections

Afbeelding 1: Niet-beveiligde verbindingen versus VPN-verbindingen

De vraag naar VPN's neemt toe en er zijn aanwijzingen dat het gebruik ervan steeds gangbaarder wordt. In de laatste maand van 2019 had tot wel 25% van alle internetgebruikers toegang tot een VPN.2 Helaas zijn niet alle VPN-providers betrouwbaar gebleken: sommige services zijn kwetsbaar3, terwijl andere vragen om onnodige toegang tot de gegevens van hun gebruikers. Een aantal services genereert inkomsten met dezelfde gegevens die gebruikers privé en beveiligd willen houden met het VPN, terwijl andere diensten hun belofte niet nakomen om de online activiteiten van hun gebruikers niet bij te houden.4

Als gevolg van de groeiende vraag naar betere privacy in een mengeling van oplossingen hebben we onze expertise op het gebied van privacy, cryptografie en infrastructuur gebruikt om een VPN van Google-kwaliteit te bouwen dat extra beveiliging en privacy biedt aan online connectiviteit, zonder onnodig te moeten inleveren op netwerkprestaties. Met VPN van Google One kan de online activiteit van gebruikers niet in verband worden gebracht met het VPN en wordt deze niet door het VPN bijgehouden. Wij zijn van mening dat een VPN transparant en solide moet zijn. Daarom hebben we onze client open source gemaakt en laten we een externe audit van de end-to-end-oplossing uitvoeren om deze extern verifieerbaar te maken.

Gedetailleerde uitleg

Privacy vormt de kern van de producten en services die we bouwen. Bij VPN van Google One gebruiken we de VPN-verbinding nooit om je online activiteit bij te houden, te registreren of te verkopen. We voeren een minimale logboekregistratie uit om de servicekwaliteit te garanderen, maar je netwerkverkeer of IP-adres dat aan het VPN is gekoppeld, wordt nooit geregistreerd. We hebben de code die op het apparaat van een gebruiker draait open source gemaakt om te laten zien hoe ons ontwerp werkt. Ook hebben we een audit van het systeem laten uitvoeren door een onafhankelijke externe partij (rapport) om meer zekerheid te bieden over ons gegevens- en beveiligingsbeleid.

Ons VPN open source maken en een audit laten uitvoeren zijn maar een paar van de stappen die we ondernemen om de privacy van onze gebruikers te waarborgen. Tijdens het bouwen van VPN van Google One realiseerden we ons dat het belangrijk is om enkele van de systemen te versterken die vaak worden aangevallen of gehackt om toegang te krijgen tot de persoonsgegevens van gebruikers.

Traditionele VPN's kunnen soms de identiteit of online activiteit van een gebruiker in gevaar brengen door het gebruik van hun service via een sessie-ID te koppelen aan de activiteit die ze uitvoeren. Met deze ID kunnen VPN-beheerders (of aanvallers die hun infrastructuur in gevaar brengen) meekijken en de gebruikers en hun activiteiten herkennen.

Traditional Authentication Architecture

Afbeelding 2: Traditionele verificatie-architectuur

We wilden die kwetsbaarheid wegnemen door de verificatie van de abonnee te scheiden van diens gebruik van de service. Door een stap met cryptografische blindering toe te passen tussen de validatie van een gebruikersabonnement en het maken van verbinding met het VPN, bieden we gebruikers een betere garantie dat hun online activiteit niet terug te voeren is op hun identiteit.

VPN by Google One’s authentication with blind signatures

Afbeelding 3: De verificatie in VPN van Google One met geblindeerde handtekeningen

Qua architectuur hebben we de verificatie van de datatunnelconfiguratie opgesplitst in 2 afzonderlijke services:

  • Verificatieservice: Deze service valideert de toegang van gebruikers tot VPN van Google One. De client maakt eerst een OAuth-token en een geblindeerde token (zie hieronder voor een definitie). Vervolgens valideert de verificatieservice de OAuth-token en wisselt het deze uit voor een ondertekende geblindeerde token.
  • Service voor sleutelbeheer: Vervolgens kan de client de afscherming van deze ondertekende geblindeerde token verwijderen door middel van cryptografische blindering. Op het moment dat de client verbinding maakt met de datatunnelserver, levert deze alleen de ondertekende niet-geblindeerde token aan de datatunnelserver. Op die manier is het enige stukje informatie dat de verificatieserver aan de datatunnelserver koppelt, één openbare sleutel die wordt gebruikt om alle geblindeerde tokens te ondertekenen die gedurende een beperkte periode worden gepresenteerd.

Het gebruikte blinderende algoritme werd voor het eerst in 1982 beschreven door Chaum5 en wordt gewoonlijk 'RSA Blind Signing' genoemd. Het doel hiervan is om in de verificatieserver en de service voor sleutelbeheer nooit dezelfde ID te gebruiken. De client maakt hiervoor een token, hasht deze met een volledige domeinhash en combineert deze met een willekeurige waarde en de openbare ondertekeningssleutel van de server om een geblindeerde token te produceren. Deze geblindeerde token wordt daarna ondertekend door onze verificatieserver. Op het moment dat de client verbinding wil maken met het VPN, kan het VPN de afscherming van de geblindeerde token en de bijbehorende handtekening verwijderen met de willekeurige waarde die alleen het VPN kent. De ongeblindeerde token en de bijbehorende handtekening kunnen daarna worden geverifieerd door onze server voor sleutelbeheer.

De servers zijn fysiek verschillend en delen alleen een cryptografische vertrouwensbasis om de ondertekende niet-geblindeerde token te valideren. Verder delen ze geen enkele andere informatie. Er is met name geen informatie beschikbaar waarmee de gebruiker kan worden geïdentificeerd door de datatunnelservers. Door deze zorgvuldige verificatiearchitectuur wordt het voor een aanvaller onhaalbaar om de cryptografische beveiligingsmaatregelen van een van de services te breken en nog voldoende tijd over te houden om ook de tweede service te breken en zo een gebruiker aan diens activiteit te kunnen koppelen. We hebben berekend dat het jaren zou duren om beide services te breken, zelfs als we het equivalent van ongeveer de totale wereldwijde rekencapaciteit van Google gebruiken.

Gebruikers hebben alleen baat bij een VPN als het ook echt wordt gebruikt. Als een VPN traag of onbetrouwbaar is, zetten gebruikers het misschien uit, waardoor hun verkeer in gevaar komt. Snelheid en betrouwbaarheid vormen de kern van ons VPN. Bij de lancering van het VPN is het VPN-protocol een eigen protocol van Google, maar om een hoge verwerkingssnelheid te garanderen en het batterijverbruik te minimaliseren, gaan we binnenkort IPsec als datatunnelprotocol gebruiken vanwege de native support in Android. Het kan zijn dat we uiteindelijk andere protocollen, zoals Wireguard, gaan gebruiken, naarmate hun native support wordt verbeterd of voor platforms waar geen enkel specifiek protocol een specifiek voordeel heeft.

Voordat de client het instellen van de datatunnel start, voert deze een DNS-zoekopdracht uit om een pool van exitnodes om te zetten die zich topologisch in de buurt van een van de PoP-locaties (Points of Presence) van Google bevinden. Tijdens het instellen van de datatunnel vraagt de client om aan deze pool te worden gekoppeld, waardoor een verbinding met een korte vertraging wordt gegarandeerd op een node met een redelijke belasting.

De VPN-service beperkt de doorvoersnelheid van de gebruikers niet en staat zoveel verkeer toe als de infrastructuur op een bepaald moment kan leveren. Dit levert vaak beschikbare gebruikerssnelheden op van meer dan 300 Mbps.

Hoewel de gebruikers-ID en IP-gegevens al zijn beschermd door de verificatiestappen, registreert het datatunnelpad geen gebruikersgegevensverkeer maar alleen verzamelde statistieken (zonder informatie waarmee de gebruiker kan worden geïdentificeerd), voor zover dit nodig is voor de betrouwbaarheid. Dit levert een service op met een hogere betrouwbaarheid, met behoud van de privacygaranties van het VPN. We combineren deze aanpak met strikte normen voor logboekregistratie en controle van onze opensource-code om ervoor te zorgen dat het VPN betrouwbaar blijft.

Als je een VPN gebruikt, mag dit niet betekenen dat je blindelings moet vertrouwen op de VPN-provider. Een VPN-provider moet transparant kunnen aantonen hoe hun service jouw gegevens privé houdt. Onze VPN-code aan de clientzijde is open source, zodat gebruikers en privacy-experts kunnen verifiëren hoe gebruikersgegevens worden verwerkt. We laten VPN van Google One end-to-end door externe beveiligingsexperts controleren, inclusief de implementatie aan de serverzijde, en zullen een rapport publiceren over de privacybescherming van ons VPN.

Een blik op de toekomst

Wij zijn ervan overtuigd dat een gebruiksvriendelijk en goed afgeschermd VPN met uitstekende prestaties de online privacy en veiligheid van gebruikers aanzienlijk kan verbeteren. Daarom willen we de VPN-technologie beschikbaar stellen aan zo veel mogelijk mensen.

Om te beginnen richten we ons op Android. Daarna willen we onze VPN-service geleidelijk op meer platforms implementeren, zoals iOS, ChromeOS, Windows en Mac.

Omdat een VPN de verbinding vormt tussen een apparaat en het netwerk, zijn er veel mogelijkheden om gebruikers extra beveiliging te bieden door bedreigingen te blokkeren nog voordat ze het apparaat bereiken. Natuurlijk blijven we steeds de mogelijkheden voor verdere verbeteringen onderzoeken.