Farbe von besuchten Links
Mittels CSS (eine Technik, um Elemente auf einer Website zu gestalten) können Links verschiedene Farben zugewiesen werden – dies geschieht eigentlich so gut wie auf jeder Website wie auch hier in meinem Blog mit der Farbe Orange. Zusätzlich gibt es noch verschiedene spezielle Pseudoklassen, um bei verschiedenen Zuständen eine andere Gestaltung anzuwenden. Die bekannteste ist :hover. Damit kann das Aussehen des Links geändert werden, sobald der Mauscursor darüber bewegt wird. Zusätzlich existieren weitere Pseudoklassen, darunter die Klasse :visited. Sie dient dazu, bereits besuchte Links hervorheben zu können. Dies machte sich L. David Baron von Mozilla zu Nutze und erstellte eine Seite mit mehreren Links zu bekannten Websites wie mozilla.org, google.de usw., und wies den besuchten URLs eine andere Farbe zu. Mittels JavaScript las er dann bei jedem Link die Farbe aus und konnte so die bereits besuchten URLs identifizieren. Damit ist zwar keine Deanonymisierung möglich, allerdings kann mit einer gezielten Phising Mail herausgefunden werden, ob gewisse Websites genutzt wurden. [1]
Mittlerweile wird die Abfrage der Farbe der Links von besuchten URLs durch die Webbrowser unterbunden. Allerdings gab es weitere Ansätze wie beispielsweise besuchten Links eine andere Schriftart als den nicht besuchten Links zuzuweisen. Durch die Messung der Länge des entsprechenden Links konnte dann abgeleitet werden, ob die URL bereits besucht wurde. Daher haben die Hersteller der Webbrowser auch hier nachgerüstet und blockieren grundsätzlich die Gestaltung von besuchten Links von fremden Domains.
Xing User Identifizierung
Immer wieder gab es verschiedene Ansätze, wie ein Benutzer, der gerade bei Xing eingeloggt ist, auf einer anderen Website identifiziert werden kann. Bereits 2008 wurde durch Marco Hassler eine Methode vorgesellt, bei dem das eigene Xing-Profil als unsichtbarer iFrame in die eigene Website eingebunden wurde. Dadurch tauchte jeder Besucher, der beim Aufruf der Website bei Xing angemeldet war, in der Liste der Besucher des eigenen Xing Profils auf. Mit dieser Technik wurde es möglich, das komplette Profil inkl. Namen und Foto der sonst anonymen Besucher zu erhalten. [2]
Wird bei Xing kein Premium-Account gebucht, werden auf dem eigenen Profil nur die Fotos der Besucher dargestellt, ohne dass diese mit deren eigentlichem Profil verlinkt sind. So erhält man mit einem kostenlosen Account auch nicht die Namen der Besucher. Eine Möglichkeit ist hier der Umweg über das Vorschaubild. Um es in einer größeren Darstellung zu erhalten, klickt man mit der rechten Maustaste auf das Foto des Besuchers und wählt im Kontextmenü „Grafik anzeigen“ bzw. „Bild in neuem Tab öffnen“. Danach wird die URL, die Endung des Dateinamens, von ~48×48.jpg auf ~256×256.jpg abgeändert. Damit stehen die Chancen schon besser, diese Person zu erkennen oder mit Hilfe von Suchmaschinen, die mit Bildern umgehen können, wie beispielsweise Google Images oder TinEye, weitere Profile mit dem gleichen Foto zu finden. [3]
Verläuft die Bildsuche ohne Ergebnis, kann eine eigene Funktion von Xing genutzt werden, um den Namen des Besuchers herauszufinden. Dazu hat der Blogger Attila Radnai eine Funktion entdeckt, mit der der Xing ID ein Name zugeordnet werden kann. Praktischerweise findet man diese ID ebenfalls in der URL des Vorschaubildes. Sie ist Teil des Dateinamens des Profilbildes, der nur aus Zahlen besteht. Nun wird die ID hinter der nachfolgende URL angefügt und aufgerufen – hier ein Beispiel:
https://www.xing.com/events/widgets/organized/[ID] https://www.xing.com/events/widgets/organized/7268601
Daraufhin wird eine Xing Eventseite angezeigt, bei der in der Überschrift der Name steht „Events von [NAME]“. [4]
Netflix und IMDb Verknüpfung
Der in Deutschland vor allem durch sein Streaming-Angebot bekannte Anbieter Netflix ist schon länger als online DVD-Verleih aktiv. Im Jahr 2006 veröffentlichte Netflix seine Datenbank mit 100.480.507 Datensätzen in anonymisierter Form im Rahmen eines Wettbewerbs, mit dem Ziel, die Empfehlungsservices zu verbessern. Es wurden alle Daten entfernt, die einen personenbezogenen Bezug erlauben könnten. Daraufhin nutzten Forscher diese Datensätze, um zu untersuchen, ob dennoch eine Deanonymisierung möglich ist. Der erfolgversprechendste Ansatz war die Verknüpfung mit anderen frei verfügbaren Datenbanken. Da die Datensätze von Netflix hauptsächlich Konten mit mehreren Bewertungen von Filmen beinhalteten, wurden diese mit den Bewertungen aus der Internet Movie Database (IMDb) abgeglichen. Hierbei wurde versucht, zwischen diesen beiden Datenbanken Korrelationen zu entdecken, die auf Bewertungen für gleiche Filme in den beiden Datenbanken innerhalb eines ähnlichen Zeitraums basierten. „Die Schlussfolgerung der Autoren ergab, dass schon mit acht Bewertungen, von denen sogar zwei falsch sein dürfen, und Bewertungszeiträumen die bis zu 14 Tage auseinanderliegen, 99% der Datensätze eindeutig identifiziert werden können. Für 68% reichen bereits zwei Bewertungen mit einer Abweichung von weniger als drei Tagen. Zusätzlich wird für die restlichen 32% der Datensätze die Anzahl der möglichen Kandidaten dramatisch reduziert.“ [5, S. 16] Über die weiteren Daten der Internet Movie Database können die Daten von Netflix dann wieder einem eindeutigen Profil zugeordnet werden. Damit konnten nicht nur die Datensätze von Netflix deanonymisiert werden, sondern es wurden auch Filme sichtbar, die ein User auf Netflix bewertet hatte, aber nicht wollte, dass diese auch in der Internet Movie Database erscheint. [5, S. 14-16]
New Yorker Taxis
Behörden aus New York mussten auf Grund einer Anfrage auf Basis des „Freedom of Information Act“, dem US-amerikanischen Informationsfreiheitsgesetz, Daten zu Taxifahrern herausgeben. Der Blogger Chris Whong hatte die Abfrage gestartet, um Taxifahrten in New York auszuwerten. Die Daten erhielt Whong als rund 20 GB große Datei im CSV-Format mit ca. 170 Millionen Einträgen zu Taxifahrten. Neben Datum, Uhrzeit und GPS-Koordinaten von Start und Ziel der Fahrten, befanden sich außerdem die anonymisierten Werte für das Nummernschild und die Lizenznummer im Datensatz. Die Daten wurden vor der Herausgabe mit einem MD5 Hash-Algorithmus anonymisiert. Mit dieser mathematischen Funktion kann eine beliebige Eingabemenge von Daten durch Berechnungen auf einen festen Ausgabewert mit 128 Bits und 32 Zeichen in der hexadezimalen Darstellung unumkehrbar reduziert werden. Vereinfacht ausgedrückt kann ein Hash als Fingerabdruck ausgewählter Daten beschrieben werden. MD5 gilt mittlerweile als eine unsichere Methode und sollte dementsprechend nicht mehr eingesetzt werden. Allerdings wird trotzdem noch ein gewisser Rechenaufwand benötigt, um eine komplette mit MD5 bearbeitete Datenbank durch reines Ausprobieren zu knacken.
In diesem Fall kam jedoch die Komponente „bekannte Daten“ hinzu. Die Nummernschilder der Taxis in New York sind nach einem bestimmten Schema aufgebaut und diese Informationen sind frei verfügbar. Daraus ergibt sich, dass nur ca. zwei Millionen Varianten möglich sind. Zusätzlich sind die Lizenznummern ebenfalls nach einer definierten Struktur organisiert, wobei hier etwa 22 Millionen Möglichkeiten existieren. Werden alle berechneten Nummernschilder und Lizenznummern kombiniert, erhält man eine Liste aller Möglichkeiten. Mit diesen vorberechneten Daten ist es dann ein Leichtes, alle MD5-Hashes zu berechnen und einen Abgleich mit den zur Verfügung gestellten Datensätzen durchzuführen.
Die Zuordnung der Nummernschilder und Lizenznummern zu den Namen einzelner Fahrer ist einfach, da diese Informationen öffentlich zugänglich sind. Dadurch ist dann eine vollständige Deanonymisierung der Taxidaten möglich und damit sind alle Fahrten eines jeden Fahrers komplett nachvollziehbar. [6][7]
Dating App Tinder
Die Dating App Tinder stand bereits mehrmals auf Grund ihres Umgangs mit persönlichen Informationen in der Kritik. So sparten sich die Entwickler die Berechnung der Entfernung zwischen zwei Personen auf den eigenen Servern und überließen dies der App auf dem Client. Dazu wurde über die API Schnittstelle des Servers der genaue Standort (Koordinaten als Längengrad und Breitengrad) der anderen Person übermittelt. Diese Informationen waren zwar nicht direkt in der App sichtbar, konnten jedoch einfach abgefangen werden und so konnten die Personen, ohne ihr Wissen, exakt lokalisiert werden. Zusätzlich wurde die eindeutige Facebook-ID mit übertragen, ohne dass diese genutzt wurde. Mit dieser ID konnte dann das Facebook-Profil direkt aufgerufen werden und somit konnten dann alle weiteren Informationen gewonnen werden. Dies alles war möglich, ohne einen Kontakt mit anderen Nutzern aufgebaut zu haben. [8]
Nachdem diese Lücken von Tinder geschlossen worden sind, wurde daraufhin nur noch die wirkliche Entfernung übertragen. Die genauen Koordinaten werden nicht mehr übermittelt. Allerdings wird die Entfernung dank GPS-Ortung sehr genau berechnet – die Abweichung betrug im besten Fall nur ca. 2 Meter. Nun kann mit einer Entfernung nicht der exakte Standort berechnet werden, sondern es ergibt sich ein Radius um den eigenen Standort, in dem sich die andere Person überall befinden kann. Allerdings benötigt man nur noch zwei weitere Entfernungsangaben, um mittels Triangulation die Person wieder orten zu können. Die Forscher Cabetas und Veytsman entwickelten dazu zu Testzwecken die Anwendung TinderFinder, um beliebige Tinder-User lokalisieren zu können. Diese Anwendung arbeitet mit Fake-Accounts, die eine beliebige Position einnehmen können. Dadurch erhält die Anwendung über die Tinder-API drei Entfernungen und kann daraus wieder den exakten Standort ermitteln. Nach der Veröffentlichung dieser Methode hat Tinder reagiert und eine künstliche Ungenauigkeit eingefügt, damit diese Berechnungen nicht mehr möglich sind. [9]
Stefan Porteck, Autor beim Computermagazin c’t, untersuchte Tinder im letzten Jahr genauer, um zu kontrollieren, wie aktuell mit den Daten umgegangen wird. Dabei ist aufgefallen, dass in der App nur das Alter in Jahren angezeigt wird, über die API allerdings das komplette Geburtsdatum übermittelt wird. Nach einer genaueren Analyse stellte sich heraus, dass das Jahr und der Monat korrekt sind, aber der Tag zufällig gewählt wird. Dies ist nicht unbedingt kritisch. Allerdings ist es fragwürdig, warum hier nicht die Berechnung auf dem Server stattfindet, da ein Nickname plus Geburtsjahr und -monat vielleicht schon ausreichen würde, um eine Person zu identifizieren. Interessant ist auch, dass ein Feld last_activity übermittelt wurde, obwohl diese Funktion bereits länger deaktiviert worden ist und in der App nicht mehr angezeigt wird. Vielleicht wird diese Information für ältere Versionen noch mitgeliefert, unschön ist es jedoch trotzdem. Ein ungutes Gefühl hinterließ die Verknüpfung mit Facebook und den Empfehlungen aufgrund der Freundesliste und den Vorlieben bzw. Gruppen. Durch diese Verbindungen könnten sich auch mit den entsprechenden Suchanfragen unter Umständen wieder Identifizierungsmöglichkeiten ergeben. Grundsätzlich sollte das Profilbild, welches zunächst automatisch vom Facebookaccount übernommen wird, ausgetauscht werden, damit hier nicht über eine Bildersuche eine Verbindung hergestellt werden kann. [10]
Artikelserie „Deanonymisierung“
Dieser Artikel ist Teil meiner Artikelserie „Deanonymisierung“, die ich als Vorbereitung auf meinen Vortrag auf der Konferenz „Internet Security Days 2017“ begonnen habe. Die Artikelserie umfasst folgende Beiträge:
[1] Preventing attacks on a user’s history through CSS :visited selectors, L. David Baron, 09.03.2010, https://dbaron.org/mozilla/visited-privacy
[2] Website-Besucher persönlich identifizieren – xing machts möglich, Marco Hassler, 06.05.2008, http://www.web-analytics-nutzen.de/web_analytics/2008/05/website-besuche.html
[3] Xing-Anklicker identifizieren: Profil-Besucher auch ohne Premium-Account einsehen, Stefan Möllenhoff, 18.04.2012, http://www.cnet.de/41563721/xing-anklicker-identifizieren-profil-besucher-auch-ohne-premium-account-einsehen/?inf_by=59b26e68681db872108b46aa
[4] Xing-Profilbesucher als Basismitglied identifizieren, Attila Radnai, 06.01.2015, http://www.warumduscher.com/2015/01/xing-profilbesucher-als-basismitglied.html
[5] De-Anonymisierung, Norbert Schmitz, 03.10.2010, http://home.norbert-schmitz.de/files/Norbert_Schmitz_Deanonymisierung_paper.pdf
[6] FOILing NYC’s Taxi Trip Data, Chris Whong, 18.03.2014, http://chriswhong.com/open-data/foil_nyc_taxi/
[7] Datenbank über New Yorker Taxis deanonymisiert, Hanno Böck, 25.06.2014, https://www.golem.de/news/hashfunktionen-datenbank-ueber-new-yorker-taxis-deanonymisiert-1406-107459.html
[8] Tinder’s privacy breach lasted much longer than the company claimed, Zachary M. Seward, 24.07.2013, https://qz.com/107739/tinders-privacy-breach-lasted-much-longer-than-the-company-claimed/
[9] Tinder Dating App Users Are Playing With Privacy Fire, Anthony Wing Kosner, 18.04.2014, https://www.forbes.com/sites/anthonykosner/2014/02/18/tinder-dating-app-users-are-playing-with-privacy-fire/
[10] Tindersicherung – Anonymität in der Dating-App Tinder bewahren, Stefan Porteck, 13.05.2016, https://www.heise.de/ct/ausgabe/2016-11-Anonymitaet-in-der-Dating-App-Tinder-bewahren-3199623