Blog

Waar is mijn data?

Ecosysteem
30 mei 2023
Leon van der Grient

Het internet, en specifieker het world wide web, is een web van data. Het bestaat uit tekst, afbeeldingen, video & audio, en links naar andere data, documenten en bestanden. Elke website voegt informatie toe aan dit web, of dit nu producten zijn in een webshop, persoonsgegevens op je eigen webpage, of recepten in een foodblog. Maar waar bevinden zich die gegevens? En waarom is dat belangrijk om te weten?

Toegang tot het web: de browser

Laten we eerst kijken hoe we überhaupt toegang hebben tot het web. Het web is het makkelijkst te bereiken via een browser, een speciale applicatie voor het ophalen en weergeven van websites en webapplicaties. Bekende browsers zijn Chrome, Safari en Firefox. Grote kans dat je dit blog leest in een van die browsers. Maar wat doet zo'n browser eigenlijk? 

Het begint bij de URL, een stukje tekst dat verwijst naar een bepaalde pagina (of document, download, afbeelding, etc). Je wilt het laatste nieuws lezen dus gaat naar speld.nl. De browser zoekt eerst op wat het IP-adres is achter het domein speld.nl. Vervolgens vraagt de browser aan de server op dit adres om het HTML-document. Als de server niet overbelast is zal er spoedig een antwoord komen met daarin een stukje tekst dat het HTML-document is. Ga je vervolgens naar speld.nl/category/politiek dan vraagt de browser aan de server om het HTML-document voor het pad /category/politiek. De browser stuurt vaak nog wat andere dingen mee naar de server: het type browser dat je gebruikt, je IP zodat je het antwoord van de server ook weer kunt ontvangen, welke taal je voorkeur heeft, en dat je graag HTML wilt ontvangen (en geen PDF bijvoorbeeld). 

Als de browser het HTML-document heeft ontvangen gaat hij het lezen. Het begint vaak met een lijst aan andere bestanden die nodig zijn om het document goed weer te geven: opmaakbestanden (CSS), scripts (JS) en fonts. Vervolgens gaat de browser de HTML omzetten in iets dat eruit ziet als een website of webapp. Hij past de CSS-regels toe, voert de scripts uit en begint afbeeldingen in te laden. In tussen probeert de browser vaak alvast wat aan de gebruiker te laten zien. Jij leest vervolgens het artikel en klikt alweer op de volgende kop. De browser vraagt weer om HTML, ziet deze keer een hoop bestanden die hij al heeft, haalt ze uit zijn cache en is een stuk sneller klaar dan vorige keer. De browser slaat dus een hoop bestanden van de website lokaal op. Deze staan dan voor een tijdje op de computer van de bezoeker.

Wie serveert ons al die websites?

Websites worden door browsers opgevraagd bij servers: computers die wachten tot er een verzoek komt voor een bepaalde webpagina, deze genereren en vervolgens naar de browser sturen. Er zijn ook servers voor het opslaan van bestanden zoals afbeeldingen, video's en PDF's. Log jij bijvoorbeeld in bij je favoriete webshop om je bestellingen te zien, dan genereert de server van de webshop jouw persoonlijke pagina met bestelde producten. De server (of een andere server) stuurt jouw ook de afbeeldingen voor alle producten. WordPress-websites draaien vaak op één server, maar dat hoeft niet (en is ook niet aan te raden). Het is veel efficiënter om aparte servers te hebben voor het genereren van de website, het opslaan van data en het optimaliseren van afbeeldingen. Maar dat betekent wel dat onze data zich op verschillende plekken kan bevinden. 

Waar is mijn data?

Omdat jouw website in de meeste gevallen toegankelijk is voor iedereen met een internetverbinding, bevindt een deel van die website zich dus op de computers van iedereen die hem bezoekt. Wil je echt al je data binnen de EU houden, dan zul je de toegang tot je website moeten blokkeren voor bezoekers buiten de EU. Daarnaast verkoop je wellicht ook producten aan mensen in de VS. Om te zorgen dat je website ook daar snel is wordt gebruik gemaakt van een CDN, een globaal netwerk van servers die ervoor zorgen dat de websitebezoeker altijd een server in de buurt heeft. Dat is geen overbodige luxe: een bezoeker uit de VS moet ongeveer 300ms langer wachten op een antwoord van een server uit Amsterdam. Voor een bezoeker uit Zuid-Amerika is dit al 800ms en voor Azië zelfs meer dan een seconde! 

Naast een CDN heeft een website vaak een database. Deze database bevat vaak gevoelige data als wachtwoorden, e-mailadressen en andere persoonsgegevens. De database bevat bijvoorbeeld ook je bestellingen en je betaalgegevens. Het is dus belangrijk waar deze database zich bevindt, want persoonsgegevens mag je vanuit de AVG niet zomaar overal opslaan. 

Tot slot maken veel websites gebruik van een afbeeldingenoptimalisatie-dienst zoals Cloudinary en ImageKit. Deze diensten verkleinen afbeeldingen (en soms ook video's) zodat zij niet groter zijn dan nodig en snel kunnen worden verzonden naar de bezoeker. Dit is essentieel voor een efficiënte en snelle website. Het betekent wel dat de afbeeldingen van jouw website worden opgeslagen op de servers van deze diensten. Dat hoeft geen probleem te zijn, maar als het om afbeeldingen van personen gaat moeten deze worden opgeslagen volgens de regels van de AVG. 

Servers en de AVG 

De AVG stelt regels op over hoe je moet omgaan met persoonsgegevens. Er zijn een heleboel regels, maar de belangrijkste voor ons is dat je deze gegevens niet zomaar mag doorgeven aan een ander bedrijf. Het bedrijf dat de gegevens van jou ontvangt moet namelijk ook voldoen aan de AVG. En daar zit een probleem voor bedrijven uit de VS, want dit land wordt namelijk niet gezien als “veilig land”. De wetgeving in de VS is niet streng genoeg om te voldoen aan de AVG. Je mag dus geen persoonsgegevens opslaan op servers in de VS! 

Nouja, niet zomaar. Veel Amerikaanse bedrijven hebben een Europese vestiging opgericht om toch te kunnen voldoen aan de AVG. De vraag is alleen of dit voldoende is omdat zij uiteindelijk Amerikaanse bedrijven blijven, die vallen onder de Amerikaanse wetgeving. In hoeverre kunnen zij weigeren persoonsgegevens door te geven als de Amerikaanse overheid hen hiertoe dwingt?

Een data-inventarisatie

Om tot slot nog een concreet voorbeeld te geven van welke data zich waar bevindt is hier een overzicht van de gegevens van een door Devtastic gehoste Next.js-Strapi-website:

ServiceLocatieToelichting
Next.js-serverEUGenereert de website als er een verzoek komt.
Strapi-serverEUGeeft toegang tot de data van de website.
DatabaseEUBevat de meeste persoonsgegevens. Blijft binnen de EU en geen directe toegang mogelijk.
CDNGlobaalKan op verzoek worden beperkt tot alleen EU. Voornamelijk niet-persoonlijke gegevens. Wordt beheerd door een Europees bedrijf.
Image optimizerEUServer staat in de EU, maar afbeeldingen worden opgeslagen op de CDN.
GitLabEUTool voor het opslaan van code en het uitrollen van websites.
AppSignalEUService voor het monitoren van de servers en websites. Bevat geen persoonsgegevens.
PlausibleEUWebsite analytics zonder persoonsgegevens.
E-mailEUTransactionele e-mails (bijvoorbeeld om het wachtwoord van een account te herstellen). Bevatten vaak persoonsgegevens.

Alle onderdelen, met uitzondering van de CDN, bevinden zich in de EU. Dat is niet vanzelfsprekend. Om onze data binnen de EU te houden (geografisch, maar ook juridisch) hebben we veel zelf moeten opzetten. Bijna alle aanbieders zijn namelijk Amerikaanse bedrijven, of maken gebruik van Amerikaanse bedrijven. Maar het is mogelijk en daarmee hebben we weer een stukje zeggenschap teruggepakt over het web.