Onderzoekers kunnen exacte locaties van gebruikers van datingapps achterhalen

Onderzoekers zeggen dat het bij meerdere populaire datingapps makkelijk is om de exacte locatie van andere gebruikers te achterhalen. Dat lukte niet door een softwarefout, maar door simpelweg aan verschillende vormen van triangulatie te doen. Meerdere applicaties hebben dat gerepareerd.

Het onderzoek, Swipe Left for Identity Theft, werd uitgevoerd door vijf onderzoekers van de KU Leuven. Die bekeken vijftien populaire datingapps, waaronder Tinder, Bumble, Hinge en Grindr. Al die apps geven een ruwe locatie van gebruikers aan, maar niet de exacte locatie, tenzij de gebruiker een filter instelt om partners te vinden op basis van locatie. Volgens de onderzoekers is het echter mogelijk die locatie alsnog te achterhalen via een proces dat zij oracle trilateration noemen. Een gebruiker moet daarvoor in de buurt zijn van een doelwit en daarna net zo lang lopen tot het doelwit buiten bereik komt. Door dat in drie richtingen te doen, kan een gebruiker de verschillende locaties samenvoegen via triangulatie om een locatie tot twee meter nauwkeurig te vinden.

De onderzoekers beschrijven verder nog twee andere methodes van trilateratie, zoals een mogelijkheid om de locatie tot een meter nauwkeurig te vinden door de eigen locatie op drie verschillende posities te spoofen en de 'afstand tot...' te berekenen. Ook beschrijven de onderzoekers rounded distance-trilateratie, dat bedoeld is om locatiegegevens te achterhalen waarbij een gebruikerslocatie afgerond wordt door de app als een beveiligingsmaatregel. In dat geval proberen de onderzoekers net zo vaak hun locatie te spoofen tot ze weten hoe de locatie wordt afgerond.

In het geval van Grindr was het mogelijk de exacte locatie van een gebruiker te vinden. Bij Bumble en Hinge was het mogelijk een locatie in de buurt te vinden tot op twee meter nauwkeurig. Tinder en Lovoo waren de enige onderzochte apps die geen locatiegegevens prijsgaven omdat die apps werken met vlakken van meer dan een kilometer.

De onderzoekers zeggen tegen Techcrunch dat er een simpele manier is om dat probleem te verhelpen, wat alle betreffende apps ook hebben gedaan. Ze ronden de exacte coördinaten, die de apps gebruiken om de locatie te bepalen, in de toekomst af. Daardoor wordt de exacte locatie minder accuraat, tot op ruwweg een kilometer.

Update - In het stuk stond aanvankelijk 'oracle triangulation', maar dat moest 'trilateration' zijn, zoals in de rest van het artikel ook al stond.

Door Tijs Hofmans

Nieuwscoördinator

01-08-2024 • 19:11

28

Reacties (28)

28
28
14
2
1
12
Wijzig sortering
@TijsZonderH in hoeverre wijkt dit onderzoek af van het onderzoek dat in 2016 is uitgevoerd waar locatie werd achterhaald middels triangulatie?

Zo lezende lijkt mij dat zowel het probleem als de methode gelijkwaardig zijn aan die van het onderzoek van destijds.

In 2018 is onder andere een artikel verschenen dat de constatering uit 2016 nog steeds actueel is, en toont daarbij ook kant-en-klare tools die in de praktijk gebruikt kunnen worden en dus nog verder gaan dan het onderzoek uit 2016 (en nu in 2024).

Ook in 2019, 2021 en 2022 (How Tinder became a weapon in the Russia-Ukraine war) kwam zulk nieuws al naar voren.

Wat ik eigenlijk poog te vragen is: wat is er precies nieuw binnen dit onderzoek achterhaald c.q. geconstateerd?

[Reactie gewijzigd door Eagle Creek op 1 augustus 2024 19:43]

Nieuw in dit onderzoek is sowieso dat 9 uit de 15 onderzochte apps zeggen dat ze fixes hebben geïmplementeerd (door bijv coordinaten af te ronden). Ook gaat dit onderzoek niet alleen over de locatie maar over privacy wat gelekt wordt door deze apps. De API's van de datingapps zijn onderzocht en kijken naar wat er gelekt wordt en wat eigenlijk dus niet mee gestuurd zou moeten worden.

Daarnaast is dit onderzoek dus breder en specifieker en nodig om te kijken of er dus dingen veranderen in deze apps na rapportage. Want de meeste van je gelinkte artikelen gaan over Grindr, in het artikel waar dit nieuwbericht over gaat staan nog veel meer papers welke vergelijkbare onderzoeken worden aangestipt.

@TijsZonderH Waar in de bron zie je staan dat alle apps de problemen hebben verholpen? Want dit:
We responsibly disclosed our findings to the vendors of all 15 apps, sending a draft of this paper and a list of concrete vulnerabilities (i.e., traffic and exfiltration leaks) for that app, by email to designated security addresses if available or else a general support address. Vendors for 10 out of the 15 apps immediately acknowledged receipt, indicating their responsiveness to security and privacy matters; after retrying our disclosure after five months, two more apps acknowledged receipt. Of these 12 apps, 9 engaged in substantial and productive discussions regarding our discovered leaks, and indicated that they had deployed concrete fixes. These interactions emphasize the tangible results of our collaborative engagement with these vendors, underscoring the concrete strides taken to enhance the overall privacy of the LBD app ecosystem.
En uit het artikel
De onderzoekers zeggen dat er een simpele manier is om dat probleem te verhelpen, wat alle betreffende apps ook hebben gedaan. Ze ronden de exacte coördinaten, die de apps gebruiken om de locatie te bepalen, in de toekomst af. Daardoor wordt de exacte locatie minder accuraat, tot op ruwweg een kilometer.
Zeggen absoluut niet het zelfde. Waar staat dat alle apps dat hebben gedaan? Er staat dat 9 apps maatregelen hebben genomen maar niet welke...


Volgensmij is dit de échte bron waar dit artikel van geschreven is en niet de paper....
https://techcrunch.com/20...archers-say/?guccounter=1
Hier hebben ze namelijk een onderzoeker gesproken en het lijkt erop dat Tweakers deze tekst plagieert zonder bronvermelding.

***Via feedback topic is uiteindelijk het artikel van TechCrunch toegevoegd***

[Reactie gewijzigd door Horatius op 1 augustus 2024 21:13]

Ik zat een tijdje geleden ook al te denken dat het perfect mogelijk zou zijn om te kijken wanneer de "2km away" verspringt naar "1 km away" en dat bekijken vanuit verschillende plekken (met spoofed locatie) maakt dat je iemands locatie redelijk exact en makkelijk kan gaan bepalen. Ik ging er na dat bedacht te hebben vanuit dat ze hier wel maatregelen tegen hadden want ik zou vast niet de enige zijn die hier aan had gedacht. Niet dus.
Ik begrijp niet zo goed waarom de coördinaten er in de eerste plaats al met zo'n precisie werden bijgehouden. Het heeft toch enkel voordelen om af te ronden als je geen reden hebt om ze wel precies bij te houden, of ben ik verkeerd?
Omdat de API van je telefoon het zo nauwkeurig geeft. Het kost dus moeite / programmeerwerk (+ weten dat een driehoeksmeting bestaat & begrijpen wat de impact is voor de situatie & begrijpen hoe het werkt & een mitigerend algoritme kunnen bedenken) om het minder nauwkeurig te maken.

En met al die kennis en moeite moet er ook een beslisser zijn die dit ter oren komt of het weet en het belangrijk genoeg vindt om geld en tijd te besteden voor de implementatie.

Jij bent bent unieker dan je wellicht denkt, dat je dit al zelf bedacht.

[Reactie gewijzigd door djwice op 1 augustus 2024 19:32]

Niet noodzakelijk. Dergelijke apps zouden er goed aan doen om een inaccurate locatie te vragen via de API (voor iOS kan je het per app standaard op inaccuraat zetten maar kan de gebruiker dat aanpassen, voor Android kan je per request inaccuraat vragen). Dan gaat vaak de GPS geheel niet aan maar wordt dit gedaan o.b.v. onder andere nabije WiFi-netwerken, en zal je nooit iemand tot 2 meter nauwkeurig kunnen traceren.

Goed voor de privacy, goed voor de UX (snellere locatie, minder batterijgebruik).

Ook de gebruiker speelt een rol, want voor zowel Android als iOS moet de gebruiker bevestigen voor een app je locatie krijgt, en valt er dan te kiezen tussen accuraat en inaccuraat als de app niet standaard inaccuraat vraagt.
Bij mij zijn er zo'n 47 wifi netwerken binnen bereik, de kans dat wifi een nauwkeuriger locatie geeft dan gps is heel reëel.

Maar ik merk dat ook vaak dat het lijkt of de locatie binnen het mobile netwerk wordt meegenomen in de locatie bepaling.
De inaccurate locatie heeft een symmetrische en redelijk ongebiaste verdeling. Deze dat is makkelijk te integreren. De truuk is deze verdeling gek te maken, afkappen werkt redelijk, maar het beste werkt gewoon niet de juiste locatie geven en niet zo vaak updaten, tenzij je wilt dat iemand je vindt.
Ik begrijp niet zo goed waarom de coördinaten er in de eerste plaats al met zo'n precisie werden bijgehouden. Het heeft toch enkel voordelen om af te ronden als je geen reden hebt om ze wel precies bij te houden, of ben ik verkeerd?
Omdat die preciezere locatiedata met geld waard is voor de 3rd party 'marketing' partners aan wie ze de data verkopen? Tenminste, in het algemeen is preciezere data meer geld waard. Ik weet niet of deze apps die data ook daadwerkelijk doorverkopen of anderzijds delen en een belang hebben om dan de preciezere data door te geven.
Dat heet privacy by design, het is niet raar raar meer om daar vooraf over na te denken.

In mijn omgeving doe ik dat daarnaast ook om praktische motieven: hoe gevoeliger de data hoe hoger de beveiligingseisen, dus duurder en lastiger werken.

Edit: Oeps, was aan @djwice bedoeld.

[Reactie gewijzigd door TheekAzzaBreek op 1 augustus 2024 19:53]

Mee eens, privacy by design. Dat is helaas nog schaars goed, toch?

Ik heb het geluk bij een klant te werken waar zowel privacy als immutability als full tracebility én durability basis eisen zijn. En daarnaast energie efficiëntie van de omgeving.
Eindelijk hoef ik niet uit te leggen waarom, en krijg je blije en positieve reacties als het design alles bevat.
en daarna net zo lang lopen tot het doelwit buiten bereik komt.
Is het überhaupt nodig afstanden / locatie data continue te updaten?
Daardoor wordt de exacte locatie minder accuraat, tot op ruwweg een kilometer.
Oh ja?
Als de 'X' locatie verspringt van 1 naar 2 weet je toch dat het subject zich op dat moment precies op 1,5 bevindt?

En zelfs tot op ruwweg een kilometer vind ik onnodig nauwkeurig.

[Reactie gewijzigd door Olaf van der Spek op 1 augustus 2024 19:32]

Oh ja?
Als de 'X' locatie verspringt van 1 naar 2 weet je toch dat het subject zich op dat moment precies op 1,5 bevindt?
Dat klinkt als de techniek die in het artikel beschreven wordt ("In dat geval proberen de onderzoekers net zo vaak hun locatie te spoofen tot ze weten hoe de locatie wordt afgerond"). De laatste paragraaf beschrijft echter niet het afronden van het resultaat, maar het afronden van de invoer vóórdat die de berekening in gaat ("Ze ronden de exacte coördinaten, die de apps gebruiken om de locatie te bepalen, in de toekomst af")

Dus in plaats van dat je doet
[code]round(abs(locatie1 - locatie2), 1km)[/code]
doe je
[code]abs(round(locatie1, 1km) - round(locatie2, 1km))[/code]
Of concreter, in plaats van 52.4034709, 4.8885895 wordt 52.40, 4.88 gebruikt (ik gok even hoeveel decimalen 1x1km zijn)
abs(round(locatie1, 1km) - round(locatie2, 1km)
De aanvaller heeft controle over locatie2, dus dat maakt geen verschil.
Je kan me tegenspreken maar zonder uitwerking waarom het niet klopt helpt dat niemand. Als je gelijk hebt, zou je mijn geheime locatie moeten kunnen vinden door de aanval op mij uit te voeren (ik zal antwoorden geven met de uitkomsten van de invoer die je me geeft). Als begin geef ik drie voorbeelden en voor het gemak heb ik de afronding op 2 decimalen gezet (gezien hoeveel graden een kilometer vormt, afhangt van waar op aarde je bent; dat is een vrij lastige berekening en zou ik weglaten tenzij je denkt dat het essentieel is voor de aanval):

const mijn_geheime_locatie = [ /* is geheim! */ ];
function afstand(jouw_gesimuleerde_locatie) {
// geeft de afstand in graden (kan naar km worden omgezet met iets als Haversine-formule)
console.log(Math.sqrt(
Math.pow(Math.round(mijn_geheime_locatie[0], 2) - Math.round(jouw_gesimuleerde_locatie[0], 2), 2) +
Math.pow(Math.round(mijn_geheime_locatie[1], 2) - Math.round(jouw_gesimuleerde_locatie[1], 2), 2)
));
}

afstand([0, 0]);
afstand([50.7549999, 6.0200001]);
afstand([50.7500001, 6.0249999]);

(pastebin met syntax highlighting. Ik heb overigens voor JavaScript gekozen zodat je het op elk systeem kan draaien door simpelweg je browsers developertools te openen en in de javascript-console de code te plakken. Wijzig wel de comment bovenaan door iets als [1.23, 4.56] zodat de berekening niet met een lege array werkt. De code is trouwens gelijk aan de pseudocode/formule die je citeerde, maar uitgewerkt in javascript wat afaik geen vector-datatype heeft en dus wordt het een redelijk lelijke functie.)

Uitvoer:
51.35172830587107
0
0

Als je het aandurft, reageer vooral met zoveel invoeren als je nodig hebt en ik zal de uitvoer in de volgende reactie geven. Mag ook een loop zijn die het antwoord iteratief vindt, of ik kan meerdere keren reageren. Ben benieuwd of je kan vinden waar ik sta :)

[Reactie gewijzigd door Lucb1e op 1 augustus 2024 21:00]

Ben benieuwd of je kan vinden waar ik sta :)
Dit werkt 'alleen' als jij beweegt:
Als de 'X' locatie verspringt van 1 naar 2 weet je toch dat het subject zich op dat moment precies op 1,5 bevindt?
afstand([50.74, 6.02]);
afstand([50.76, 6.02]);
afstand([50.75, 6.01]);
afstand([50.75, 6.03]); // drie is in principe genoeg

Op het moment dat jij van de ene cel naar de andere loopt / rijdt / treint weet ik aan welke zijde je staat (op dat moment). Herhaal dat een aantal keer en je hebt aardig wat data.

[Reactie gewijzigd door Olaf van der Spek op 1 augustus 2024 22:27]

Dit werkt 'alleen' als jij beweegt
Ooh, nu snap ik het idee. Oké, ja dat zou moeten werken, maar dan is het dus alleen effectief op het exacte moment dat mensen tussen twee cellen verspringen. Tien seconden later weet je al niet meer of ze nog op dat punt staan, of inmiddels een straat verder zijn gefietst en elders in de cel uitkomen. Ook is denk ik niet te zeggen waar op de 2d-lijn ze zitten, tenzij ze (niet zoals het DVD-logo :( ) precies in de hoek terecht komen

Alsnog nuttig wanneer 1% van de mensen dicht genoeg bij een hoek van zo'n geografische cel woont en hun GPS regelmatig genoeg verspringt ertussen en je die updates kan volgen gedurende de meeste nachten (gezien de meeste mensen overwegend thuis slapen): niet iedereen is dan te volgen, maar op 1 miljoen gebruikers is dan de locatie van tienduizend mensen wél prijsgegeven

Mijn eerste gedachte toen ik de headline zag was dat ze nu eindelijk een random offset gingen toevoegen (stabiel random, zodat je niet bij elke update dichterbij het gemiddelde = de werkelijke waarde komt). Toen zag ik afronden staan en dacht: oké zo kan het ook. Maar nu vraag ik me af of ik een nieuw onderzoek kan starten naar mensen in hoeken en jou de credits moet geven :P (antwoord is overigens nee: ik heb al genoeg onafgemaakte projecten om nog zo'n nieuwe te starten)
afstand([50.74, 6.02]);
afstand([50.76, 6.02]);
afstand([50.75, 6.01]);
afstand([50.75, 6.03]); // drie is in principe genoeg
Deze zijn overigens allemaal nul, weet niet of dit nu nog nut heeft nu dat mijn begrip van jouw punt is veranderd
Ik snap je redenering. Een willekeurige verschuiving (offset) klinkt aantrekkelijk; maar wat nou als je dan ziet dat iemand steeds 136 meter links van een lange weg af is, zich bewegend in de richting van de weg? En dan slaat hij rechts af, 91 meter vóór de afslag? Dan kun je met hoge waarschijnlijkheid corrigeren voor die verschuiving. Of zou je per cel een vaste verschuivingper gebruiker moeten hebben of zo? Of grote cellen?

Ik heb het gevoel dat er uiteindelijk wel een oplossing voor dit hele probleem moet bestaan. Maar ik heb haar nog niet helemaal in 't vizier. Ik heb wel het gevoel dat we die misschien moeten zoeken in bekende technieken van de algemene cryptografie; een verschuiving is dan een soort van zout/peper.

[Reactie gewijzigd door Cerberus_tm op 3 augustus 2024 03:07]

Oh ja?
Als de 'X' locatie verspringt van 1 naar 2 weet je toch dat het subject zich op dat moment precies op 1,5 bevindt?
Tenzij er een hysterese wordt gebruikt. Als ze inderdaad van 1 naar 2 springen hoop ik dat ze dat wel hebben gebruikt. Zo niet dan blijft de afstand verspringen als je de afstand rond de 1,5 is.
Tenzij er een hysterese wordt gebruikt.
Als de hysterese bekend is, is dat toch nog steeds onvoldoende?
Tinder en Lovoo waren de enige onderzochte apps die geen locatiegegevens prijsgaven omdat die apps werken met vlakken van meer dan een kilometer
Dit is ook grofweg hoe het CBS data pseudonimiseert (met daarbij de aantekening dat ze alleen data publiceren over onderwerpen als er in het gebied meer dan 4 personen aan voldoen).
Soms is dat ook helemaal niet moeilijk, daar kan je gewoon je locatie delen , wel zo makkelijk natuurlijk. Gewoon aan zetten en andere kunnen dan zien waar je bent. Er zit natuurlijk wel een foutmarge in , maar goed dat zit er ook in Google Maps .
Ah, ik vraag me af of er ook dating apps zijn waarbij de app je laat weten waar die ander staat ... uiteindelijk is het waarschijnlijk de bedoeling dat je elkaar ergens ontmoet... zij het dan na enige filtermogelijkheden. ;)
Deze methode heb ik vaker gebruikt op apps die "afstanden" koppelen aan gebruikersaccounts (app draaien op BlueStacks emulator en gebruik maken van de ingebouwde locatie spoofer). Exact locatie van personen kan je dan inderdaad binnen enkele minuten achterhalen.

Het aantal (kilo)meters afstand van een gebruiker zou op z'n minst verborgen moeten worden doormiddel van uitbereiding EU-wetgeving. Anders zijn zij onvoldoende beschermd tegen dit soort "aanvallen". Het is namelijk niet de bedoeling dat ik toegang heb tot deze informatie.
In de stad is een kilometer afronding wellicht voldoende. Maar in minder dicht bevolkte gebieden wellicht niet. Zouden ze daar ook rekening mee houden?

Zou de truc ook met marktplaats werken? Ik vroeg me dat al lang af. Je kunt daar je postcode invoeren en dan advertenties zoeken binnen een bepaalde afstand (die afstand is vrij grof, maar je kunt die in de url aanpassen).
Marktplaats weet alleen de postcode (je kan je huisnummer niet instellen). Dus zelfs Marktplaats weet het niet.
Postcode kan erg precies zijn. Veel preciezer dan een kilometer.
Dus als het leuke onderzoekers zijn dan heb je de dating app niet nodig....oplossing?
Wat mij opvalt, is hoeveel er gefraudeerd wordt met de locatie op die dating sites.
Zo gebeurt het regelmatig bij Tinder dat je, terwijl je aan het chatten bent met een vrouw (?) de afstand verandert, soms heel drastisch, maar ook soms kilometer per kilometer.
En soms klopt hij gewoon ook totaal niet, wat voor mij een bewijs is van oplichters.
Stel, je ziet een vrouw(?) "op minder dan een kilometer", je chat ermee, en dan zegt ze dat ze van Singapore is, maar vorige week bij haar oom was in je buurt.
Dan weet je direct dat dat niet klopt, want Tinder toont niet je locatie van vorige week, maar je huidige locatie.
Het feit dat de dame(?) in Singapore zit, maar tegelijk op één kilometer van jou, bewijst dat er makkelijk gefraudeerd kan worden met die locaties.

Bij Happn is dat trouwens voortdurend zo, daar krijg je constant vrouwen die een straat verder gepasseerd zijn, zogezegd, maar die dan blijken in Rusland of Kazachstan te wonen...

Bij Boo daarentegen krijg je wel heel veel profielen voorgeschoteld die ver van je wonen.
Het zou mij niet verwonderen dat als je daar je GPS locatie ver weg zou zetten je plots profielen dichter bij huis zou kijgen.

Op dit item kan niet meer gereageerd worden.