Demo
Site Favicon - ein kleines 16 * 16 oder 32 * 32 Pixel .ico-Symbol auf einer Browser-Registerkarte. Hilft Ihnen beim Navigieren durch Hunderte von Registerkarten. Twitter hat einen blauen Vogel, Google Mail hat ein rotes Mail-Symbol, Wikipedia hat ein fettgedrucktes W.
Es stellt sich jedoch heraus, dass diese Symbole eine Sicherheitslücke darstellen, durch die Sie Fingerabdrücke durchführen können - um den Benutzer auch über den VPN- und Inkognito-Modus im Browser zu identifizieren ( siehe Demo ).
Der deutsche Programmierer Jonas Strehle im Github-Repository beschreibt eine Methode zum Installieren eines nicht entfernbaren Super-Cookies über Favicons: „Super-Cookies weisen Website-Besuchern über Favicons eindeutige IDs zu. Im Gegensatz zu herkömmlichen Tracking-Methoden bleibt diese ID fast für immer erhalten und kann vom Benutzer nicht mit einfachen Methoden entfernt werden. Die Tracking-Methode funktioniert auch im Inkognito-Modus. Super-Cookies werden nicht gelöscht, wenn Sie Ihren Cache leeren, Ihren Browser schließen oder Ihr System neu starten, ein VPN oder Werbeblocker verwenden. “
Wie Fingerabdruck funktioniert
Um das Symbol anzuzeigen, wird das folgende Attribut in den Seitencode eingefügt:
<link rel="icon" href="/favicon.ico" type="image/x-icon">
Favicons sollten über einen Browser sehr leicht zugänglich sein. Daher werden sie in einer separaten lokalen Datenbank zwischengespeichert, dem sogenannten Favicon-Cache (F-Cache), in dem die URL, die Favicon-ID und die Lebensdauer gespeichert sind.
Wenn ein Benutzer die Site besucht, überprüft der Browser den lokalen F-Cache auf einen Eintrag, der die URL der aktiven Website enthält. Wenn der Eintrag gefunden wird, wird das Symbol aus dem Cache geladen. Wenn kein Eintrag vorhanden ist, sendet der Browser eine GET-Anforderung zum Herunterladen des Favicons vom Server.
Dieser Mechanismus ermöglicht es dem Server, viel über den Besucher zu lernen. Durch Kombinieren des Status von gelieferten und fehlgeschlagenen Favoriten für bestimmte URLs wird dem Client eine eindeutige Vorlage (Identifikationsnummer) zugewiesen. Dann wird die ID gespeichert:
const N = 4; const ROUTES = ["/a", "/b", "/c", "/d"]; const ID = generateNewID(); // -> 1010 • (select unassigned decimal number, here ten: 10 -> 1010b in binary)
const vector = generateVectorFromID(ID); // -> ["/a", "/c"] • (because [a, b, c, d] where [1, 0, 1, 0] is 1 -> a, c)
Nach dem erneuten Laden der Site kann diese ID aus der Liste der vom Client gesendeten Netzwerkanforderungen für die fehlenden Favoriten wiederhergestellt werden - und so den Browser identifizieren.
const visitedRoutes = []; Webserver.onvisit = (route) => visitedRoutes.push(route); // -> ["/b", "/d"] Webserver.ondone = () => { const ID = getIDFromVector(visitedRoutes) }; // -> 10 • (because "/a" and "/b" are missing -> 1010b)
Der Autor startete eine Website, um Fingerabdrücke mithilfe von Favoriten zu demonstrieren. Der Quellcode und eine detaillierte Beschreibung des Mechanismus wurden veröffentlicht .
Das Schlimmste an dieser Sicherheitsanfälligkeit ist, wie einfach es ist, traditionelle Methoden zu umgehen, mit denen Menschen ihre Privatsphäre schützen. Fingerabdrücke durchbrechen den "privaten" Modus von Chrome, Safari, Edge und Firefox, sagte Strehle. Cache-Bereinigung, VPN oder Werbeblocker - böswilligen Favoriten steht nichts im Wege.
Die gleichen Schlussfolgerungen wurden von Forschern der University of Illinois in der kürzlich veröffentlichten wissenschaftlichen Arbeit "Tales of Favicons and Caches: Persistent Tracking in Modern Browsers" gezogen."Wir haben festgestellt, dass die Kombination unserer Favicon-Tracking-Technik mit Fingerabdrücken über unveränderliche Browserattribute es der Site ermöglicht, eine 32-Bit-Tracking-ID in zwei Sekunden wiederherzustellen", heißt es in der Studie. - Aufgrund der Schwere der Sicherheitsanfälligkeit schlagen wir vor, Änderungen am Browser-Caching von Favoriten vorzunehmen, um diese Form der Nachverfolgung zu verhindern. Wir haben unsere Ergebnisse mit Entwicklern von Browser-Anbietern geteilt, die derzeit Möglichkeiten zur Schadensbegrenzung prüfen. “
Fingerabdrücke über Favoriten funktionieren derzeit in allen gängigen Browsern, einschließlich mobilen Browsern (Pluszeichen):
Browser |
Windows |
Mac OS |
Linux |
iOS |
Android |
Anmerkungen |
|---|---|---|---|---|---|---|
| Chrome (v 87.0) | + | + | + | + | + | ? |
| Safari (v 14.0) | ? | + | ? | + | ? | ? |
| Edge (v 87.0) | + | + | ? | ? | + | ? |
| Firefox (v 85.0) | + | + | ? | ? | ? | Ein weiterer Fingerabdruck im Inkognito-Modus |
| Tapfer (v 1.19.92) | + | + | + | ? | ? | ? |
Die folgende Tabelle zeigt die Mindestzeit, die zum Ausführen eines Angriffs erforderlich ist. Die tatsächliche Zahl hängt auch von zusätzlichen Faktoren ab, wie z. B. Geschwindigkeit der Internetverbindung, Standort, Hardwareleistung und Browsertyp.
| Weiterleitungen
(N Bits) |
Anzahl unterscheidbarer Kunden | Aufnahmezeit | Lesezeit | Angriffsskala |
|---|---|---|---|---|
| 2 | vier | <300 ms | <300 ms | Ein Benutzer mit vier Browsern |
| 3 | 8 | <300 ms | ~ 300 ms | Ungefähre Anzahl der Kardashianer |
| vier | 16 | <1 s | ~ 1 s | Ein Haufen deiner Nachbarn |
| 8 | 256 | <1 s | ~ 1 s | Alle deine Facebook-Freunde |
| zehn | 1024 | <1,2 s | ~ 1 s | Sehr kleines Dorf |
| 20 | 1.048.576 | <1,8 s | <1,5 s | Kleine Stadt (San Jose) |
| 24 | 16.777.216 | <2,4 s | <2 s | Alle Niederlande |
| 32 | 4 294 967 296 | ~ 3 s | <3 s | Alle Menschen mit Internetzugang |
| 34 | 17 179 869 184 | ~ 4 s | ~ 4 s | 4 |