rivacy faalt door verstrooiing en door concentratie
Privacy gaat op twee tegengestelde manieren stuk. De ene verstrooit je gegevens breed: honderd bieders krijgen elk een stukje. De andere concentreert de intiemste data juist bij een poortwachter die er een totaalprofiel van bouwt. Beide zijn een probleem, maar spiegelbeeldig. Toezicht dat alleen losse derde-partij-trackers telt, ziet het concentratie-model niet eens.
Twee faalmodi die elkaars spiegelbeeld zijn¶
Privacy gaat op twee tegengestelde manieren stuk. De eerste noem ik dispersie. Je gegevens worden breed verstrooid. Bij een real-time-bidding-veiling krijgen tientallen tot honderd biedende partijen elk een stukje van je profiel voorgeschoteld, en niemand houdt het geheel in handen. De tweede noem ik concentratie. De intiemste data komt juist samen bij een enkele poortwachter, die er een volledig beeld van bouwt en dat beeld in eigen huis houdt.
Ze zijn elkaars spiegelbeeld. Bij dispersie is het probleem dat er te veel partijen meekijken en dat je bij niemand meer weg bent. Bij concentratie is het probleem dat er precies een partij meekijkt en dat die alles ziet. Het gaat om dezelfde grondstof, jouw gedrag en positie, die langs twee tegengestelde routes ontspoort. Wie het ene model bestrijdt met de remedie voor het andere, doet niets tegen het probleem dat hij voor zich heeft.
Hoe dispersie er van binnen uitziet¶
Dispersie is het model van de open advertentiemarkt. Als je toestel een advertentieplek moet vullen, wordt die plek in een fractie van een seconde geveild. Het verzoek dat daarbij hoort, een bid request in de taal van OpenRTB, bevat een beschrijving van jou. Je apparaatidentifier, je grove of fijne locatie, je taal, het type toestel, soms een reeks interessecategorieën uit het IAB-raamwerk. Dat verzoek gaat niet naar een partij. Het gaat naar het hele veld aan bieders dat op die veiling is aangesloten.
Het gevolg is dat je beschrijving bij tientallen partijen langskomt die geen bod hoeven te winnen om hem te hebben gezien. Verliezen in de veiling betekent niet dat je de data niet kreeg. Je kreeg het verzoek, je las het, en of je nu bood of niet, je mocht het bewaren. Zo verstrooit een enkele advertentieplek jouw profiel over een breed veld, keer op keer, de hele dag door, bij elke plek die je voorbij scrolt.
Niemand in dat veld houdt het geheel. Elke bieder heeft een fragment en een moment. Precies die versnippering is waarom een tracker-telling dispersie zo goed vangt. Elk fragment reist over een eigen verbinding naar een eigen domein, en die verbindingen zijn te tellen.
Hoe concentratie er van binnen uitziet¶
Concentratie is het tegenovergestelde model. Denk aan een dienst die veel functies in een enkele app bundelt, of aan een app die zelf de backend draait waar alles landt. Je berichten, je aankopen, je zoekopdrachten, je locatie in de tijd, je contacten. Het komt allemaal binnen bij dezelfde partij, over dezelfde verbinding, naar hetzelfde domein.
Voor een tracker-telling ziet dat er rustig uit. Er staat een handvol first-party-domeinen in de lijst en verder weinig. Geen tientallen externe bieders, geen zwerm reclamedomeinen. Toch ligt daar, achter dat eigen domein, het meest complete profiel van allemaal. De partij die je gedrag, je locatie, je aankopen en je contacten in een enkele database samenbrengt, hoeft geen externe tracker te laden. Ze is de tracker, en ze woont op haar eigen adres.
Dat is de reden dat concentratie zo makkelijk door de mazen glipt. De standaardmeetlat let op de afwezigheid van derden. Hoe minder externe partijen in het verkeer, hoe schoner het oordeel. Precies die logica beloont het model waarin een enkele partij alles zelf verwerkt.
Wat een meting hier wel en niet kan aantonen¶
Ik wil hier eerlijk zijn over de grens van mijn eigen instrument. De dispersiekant kan ik hard laten zien. Ik kan een netwerkmeting doen, de bid requests onderscheppen, de bieders tellen en de velden lezen die worden meegestuurd. Dat is gemeten.
De concentratiekant leid ik af. Ik kan tellen hoeveel externe verbindingen een dienst maakt en welke velden ze binnenhaalt. Ik kan uit een netwerkmeting alleen niet zien wat een partij achter haar eigen muur met de binnengekomen data doet. Dat de data daar samenkomt tot een profiel is een redenering op basis van wat de dienst doet en welke gegevens ze verzamelt, en het is geen directe waarneming van dat profiel.
Een simpele procedure maakt het verschil zichtbaar. Voor elk extern domein in het verkeer:
for host in externe_hosts:
if host in bekende_tracker_lijst:
markeer_als_dispersie(host) # gemeten, telbaar
else:
onderzoek_bestemming(host) # kan first-party concentratie zijn
if aantal_externe_hosts == 0 and gevoelige_velden_verzameld:
verdenk_concentratie() # afgeleid, niet telbaar uit het verkeerDe laatste regel is het hele punt. Een lege trackerlijst is een reden om beter te kijken. Wie dat overslaat, verkoopt de afwezigheid van dispersie als de afwezigheid van een probleem.
Waarom het toezicht vooral dispersie ziet¶
De regels en de gereedschappen zijn grotendeels op dispersie gebouwd. De cookiewetgeving, in Nederland via artikel 11.7a van de Telecommunicatiewet en in de AVG via de eis van een grondslag, draait om het plaatsen van trackers en het delen met derden. Het IAB TCF, het toestemmingsraamwerk achter de advertentiemarkt, somt honderden vendors op waaraan je toestemming geeft. Al die instrumenten tellen partijen. Ze zijn scherp op de vraag met hoeveel derden je data wordt gedeeld.
Voor concentratie bestaat dat gereedschap veel minder. Een dienst die alles zelf verwerkt, deelt formeel met niemand. Er is geen derde om toestemming voor te vragen, geen vendorlijst om af te vinken, geen tracker van een ander domein om te blokkeren. De verwerking is first-party, en precies daar is het toezicht dun. De grondslag en de bewaartermijn gelden nog steeds, maar ze laten zich moeilijker aflezen aan het verkeer, want er verschijnt geen extern domein dat een meting oppikt.
Zo ontstaat een blinde vlek die geen kwade opzet vergt. De meetlat is gemaakt voor het model dat het meest voorkwam, en het andere model glipt eronderdoor omdat het niet de vorm heeft waar de meetlat op let.
Wat dit betekent voor mijn eigen werk¶
Voor mijn metingen betekent het dat ik twee vragen los moet stellen. De eerste: naar hoeveel externe partijen lekt dit? De tweede: welke enkele partij ziet hier alles? Een tracker-telling beantwoordt de eerste vraag. De tweede vraag dwingt me naar de architectuur te kijken. Wie draait de backend, welke velden komen daar binnen, en valt die partij onder een recht dat uitlevering kan afdwingen.
Het betekent ook dat een schone tracker-telling nooit het eindoordeel mag zijn. Een app zonder derde-partij-verkeer is een aanleiding om beter te kijken. De afwezigheid van dispersie kan het teken zijn dat je met het concentratie-model te maken hebt, waar de meetlat blind voor is.
En het betekent bescheidenheid in de conclusie. Ik label de dispersiekant als gemeten en de concentratiekant als afgeleid, elke keer opnieuw, zodat het onderscheid tussen wat ik zag en wat ik redeneerde niet vervaagt in de opschrijving. Twee faalmodi vragen om twee oordelen, en om twee bewijsniveaus die ik niet door elkaar laat lopen.
Zie ook Apps die je paspoort scannen of je gezicht lezen zijn spionagegereedschap, Cookie-sync laat losse partijen dezelfde persoon herkennen en Het risico zit in de optelsom, niet in het losse veld.
- AVG, artikel 5 lid 1 onder c en artikel 32dataminimalisatie tegenover beveiliging: beide falen kennen een eigen richting