Firefox veiliger maken: Decentraleyes en First Party Isolation
Gebruik twee add-ons tegen website-onafhankelijke tracking. Decentraleyes vermijdt content-delivery-netwerken door JavaScript-code lokaal beschikbaar te stellen. First Party Isolation zet data van afzonderlijke websites in containers.
JavaScriptframeworks maken het werk van webontwikkelaars een stuk makkelijker door vaak gebruikte functies ter beschikking te stellen. Veel websiteexploitanten bedden die pakketten daarom in hun webpagina’s in. Vaak laden ze de frameworks niet uit hun eigen webspace, maar via zogeheten Content Delivery Networks (CDN’s) zoals Google en Cloudflare. Dat bespaart bandbreedte en zorgt ervoor dat de frameworks snel in de browser terecht komen.
Het downloaden uit die bronnen zorgt echter ook voor het doorgeven van het IPadres en andere informatie naar de CDN’s, waardoor de gebruikers siteonafhankelijk te volgen zijn bij het surfen op internet. Decentraleyes voorkomt dit. Het maakt actuele
versies van een tiental JavaScriptlibrary’s lokaal beschikbaar voor je browser. Bij detectie van een poging zo’n extern gehoste JavaScriptresource te downloaden, wordt de verbindingspoging afgekapt en wordt het gevraagde JavaScript lokaal naar de browser gestuurd. Dat versnelt niet alleen het surfen, maar beschermt vooral je privacy. Het kader op de rechterpagina laat wat meer in detail zien hoe dat werkt.
FIRE AND FORGET
Onder de naam ‘Decentraleyes (door Thomas Rientjes)’ staat de addon in de addonsportal van Firefox (zie de link onderaan dit artikel). Na het installeren zie je aan het groene pictogrammetje rechtsboven naast adresbalk dat hij actief is. Op een testpagina (http:// decentraleyes.org/test/) kun je controleren of de addon werkt zoals hij zou moeten doen. Als statusmelding op die pagina zou je ‘Decentraleyes is fully operational.’ moeten krijgen, waarbij het Decentraleyespictogram een 1 bevat. Als je op het pictogram klikt, blijkt dat er twee bestanden van jQuery v2.1.4 lokaal gebruikt konden worden in plaats van dat die gedownload moesten worden.
Decentraleyes wordt standaard geleverd met de meest bekende JavaScriptresources, waaronder dus jQuery en ook Angular. Zie de link onderaan dit artikel voor een overzicht. In toekomstige versies moet je als gebruiker die resources zelf kunnen uitbreiden.
Op het popupvenster zie je ook hoeveel JavaScript resources er door Decentraleyes lokaal geleverd zijn. Dat aantal kan na verloop van tijd aardig gaan oplopen. Zo kom je er bijvoorbeeld achter dat de website van jquery.com zelf nog met jQuery v1.11.3 werkt – maar dat terzijde.
Ervaren gebruikers die het downloaden van externe bronnen helemaal willen tegengaan via het in het vorige artikel genoemde uBlock Origin, moeten daar uitzonderingen voor definiëren. Als je dat niet doet, wordt ook het laden van lokaal beschikbaar gestelde JavaScriptresources geblokkeerd en gaat het voordeel van Decentraleyes verloren. Welke uitzonderingen je bij uBlock Origin moet instellen voor Decentraleyes, staat in het kader ‘Uitzonderingsregels voor uBlock Origin’ op de volgende pagina.
FIRST PARTY ISOLATION
Websiteoverstijgende tracking is een populaire techniek voor de reclame en marketingbranche om de internetactiviteiten van gebruikers te volgen. Dat wordt bijvoorbeeld gedaan door het plaatsen van cookies van derden, die bij het bezoeken van een website worden opgeslagen. Advertentienetwerken gebruiken die cookies vervolgens om een gebruiker op verschillende websites weer te herkennen en hem relevante interessante reclame voor te schotelen.
Aan de hand van het fictieve advertentienetwerk SuperAds willen we laten zien hoe de websiteoverstijgende tracking met behulp van cookies functioneert (zie de afbeeldingen op de volgende pagina). Bij het aanroepen van een website, bijvoorbeeld een nieuwsportal (website 1), wordt in de browser een
Een gebruiker kan herkend worden aan de hand van zijn unieke
ID in de cookie
nieuw cookie aangemaakt (met de eenduidige naam ID22331) van de externe bron superads.com (groene cijfer 1 in de afbeelding). Na het bezoeken van website 1 gaat een gebruiker vervolgens naar bijvoorbeeld een andere nieuwsportal (website 2) om ook daar nog wat berichten te lezen. Website 2 werkt eveneens samen met het advertentienetwerk SuperAds, en die website wil nu weer lokaal in de browser een cookie aanmaken van de bron superads.com. De browser zal vervolgens echter herkennen dat zo’n cookie inhmiddels al bestaat (2). Het advertentienetwerk SuperAds kan de gebruiker dan aan de hand van de al vergeven ID22321 wel herkennen (3). Met behulp van de cookies kan SuperAds vervolgens vaststellen (4) welke berichten de gebruiker op de nieuwsportal leest en daar dan voor de lezer interessante reclame op vertonen. Op alle plekken waar de websiteexploitanten met dat advertentienetwerk samenwerken, kan een gebruiker dan herkend worden aan de hand van zijn unieke ID in de cookie. De Firefoxaddon First Party Isolation beschermt je tegen die websiteoverstijgende tracking met behulp van het containerbeheer van Firefox. Het idee erachter: bepaalde informatie die een browser bij het bezoeken van een website achterlaat en waarmee een gebruiker te tracken is, wordt in een geïsoleerde omgeving (container) opgeslagen. Bij die surfdata horen naast de cookies ook gegevens als de browsercache, TLSsessies en HSTSinformatie.
Als je First Party Isolation in Firefox activeert, slaat de browser de surfdata in van elkaar afgescheiden containers op. Van die manier van werken wordt de browser niet langzamer en gebruikers merken er verder niets van. Je kunt je dat als volgt voorstellen: elk domein dat je bezoekt krijgt een eigen container toegewezen. Vervolgens kan website A nooit bij de externe cookies van derden van website B en omgekeerd, omdat Firefox de containers voor die domeinen apart beheert. Het fictieve advertentienetwerk SuperAds kan je vervolgens niet meer websiteoverstijgend volgen.
Bij het aanroepen van website 1 wordt lokaal in de browser een cookie met het eenduidige kenmerk ID99234 van de externe bron superads.com aangemaakt (1). Na het bezoeken van website 1 gaat de gebruiker dan vervolgens naar website 2, om daar eveneens nog een paar berichten te lezen. Ook website 2 werkt samen met het advertentienetwerk, dat nu opnieuw lokaal in de browser een cookie wil achterlaten.
Door de First Party Isolation kan SuperAds de al opgeslagen cookie echter niet uitlezen en wordt voor de surfcontainer van website 2 een nieuwe cookie aangemaakt (met het eenduidige kenmerk ID27219 (2)). Als SuperAds probeert om de gebruiker websiteoverstijgend te herkennen (3) (4), dan zal dat door de geïsoleerde containers niet kunnen. SuperAds kan nog steeds constateren dat de gebruiker met ID99234 een artikel op website 1 leest (5), maar die informatie zal niet gekoppeld kunnen worden aan het tweede kenmerk ID27219 (6).
Door First Party Isolation maakt Firefox voor elke surfcontainer een ander ID aan, wat het herkennen van gebruikers en daarmee een websiteoverstijgende tracking verhindert. Het is daarbij handig dat het sessiebeheer van veel websites zonder problemen blijft werken met First Party Isolation.
ADD-ON OF ABOUT:CONFIG
De addon staat onder de naam ‘First Party Isolation (door freddyb)’ bij Mozilla. Na het installeren zie je een pictogrammetje met een vissenkom rechtsboven of naast de adresbalk. First Party Isolation is na het installeren meteen actief, door op het pictogram te klikken deactiveer je het en wordt de kleur van het pictogram vervolgens oranjerood.
First Party Isolation is echter een ingebouwde functie van Firefox. Om die binnen Firefox te activeren is het installeren van de addon niet per se nodig. Via about:config kun je de parameter ook handmatig instellen:
privacy.firstparty.isolate = true
De addon heeft echter het voordeel dat je deze feature snel in en weer uit kunt schakelen. In sommige gevallen kan dat nodig zijn als bijvoorbeeld het inloggen bij een website niet mogelijk is door First Party Isolation. Dat komt met name voor als die website verschillende domeinen voor het aanmelden gebruikt.
Dan helpt het in veel gevallen om een andere parameter bij about:config in te stellen die de bescherming door First Party Isolation vervolgens wat afzwakt: privacy.firstparty.isolate.restrict_opener_
access = false
COOKIES VAN DERDEN
Standaard staat Firefox zodanig ingesteld dat de browser cookies van derden accepteert. Ondanks het activeren van First Party Isolation mogen websites toch nog steeds cookies van derden in je browser achterlaten. Met die cookies kun je dankzij First Party Isolation wel niet meer websiteoverstijgend gevolgd worden, maar websites herkennen nog steeds wanneer je ze bezoekt en welke content je er bekijkt.
Het is in het algemeen aan te raden om het aannemen van cookies van derden te verbieden. Om dat te doen, open je ‘Opties / Privacy & Beveiliging’. Bij Inhoudsblokkering selecteer je Aangepast en activeer je Cookies, waarbij de kiest voor de optie ‘Alle cookies van derden (kan ervoor zorgen dat websites niet werken)’.
Ook als je je cookies zelf beheert en First Party Isolation niet nodig hebt om het websiteoverstijgend tracken met behulp van cookies tegen te gaan, is de addon niet overbodig: naast het tracken via cookies bestaan er namelijk nog meer technieken waar het containerconcept tegen helpt. Het is daarom aan te raden om de addon met de daaraan ten grondslag liggende containers continu te gebruiken.