Browser-Fingerprinting Wie ein Bluetooth-Fehler verdecktes Tracking verriet

Von Dipl.-Ing. (FH) Michael Richter 6 min Lesedauer

Anbieter zum Thema

Ein Entwickler wundert sich über streikende Bluetooth-Kopfhörer und stößt bei der Fehlersuche auf versteckte Audioverarbeitung im Browser. Browser-Fingerprinting ermöglicht es, Geräte auch ohne Cookies wiederzuerkennen. Anders als diese lässt sich ein solcher Fingerabdruck nicht ohne Weiteres löschen.

Browser-Fingerprinting: Ein stummgeschaltetes WebAudio-Signal kann technische Unterschiede zwischen Browsern und Systemen sichtbar machen.(Bild:  frei lizenziert /  Pixabay)
Browser-Fingerprinting: Ein stummgeschaltetes WebAudio-Signal kann technische Unterschiede zwischen Browsern und Systemen sichtbar machen.
(Bild: frei lizenziert / Pixabay)

Ausgangspunkt der Entdeckung war kein Sicherheitstest, sondern ein alltägliches technisches Problem. Der Softwareentwickler Matt Callaghan verwendete einen Multipoint-Bluetooth-Kopfhörer, der gleichzeitig mit seinem Computer und seinem Smartphone verbunden war. Sobald der PC kein Audio mehr wiedergab, konnte der Kopfhörer normalerweise wieder die Musik vom Smartphone übernehmen.

Beim Besuch der Webseite von AliExpress funktionierte dieser Wechsel plötzlich nicht mehr. Wenige Sekunden nach dem Öffnen der Seite blieb die Verbindung zum PC aktiv, obwohl weder ein Video noch Musik oder eine andere hörbare Medienwiedergabe lief. Das Schließen des AliExpress-Tabs beseitigte das Problem. Das Stummschalten des Tabs, des Browsers oder sogar der gesamten Windows-Audioausgabe änderte dagegen nichts.

Diese Beobachtung deutete darauf hin, dass nicht die hörbare Wiedergabe, sondern ein im Hintergrund geöffneter Audiostream die Umschaltung verhinderte. Callaghan untersuchte deshalb nicht nur die üblichen HTML-Elemente für Audio und Video, sondern auch die Web Audio API des Browsers. Dabei stieß er auf zwei unauffällig ausgeführte Audioverarbeitungsgraphen.

Zwei Skripte öffnen den Audiopfad

Die beiden AudioContext-Instanzen ließen sich auf die Skripte collina.js und fireyejs.js zurückführen. Sie wurden über die Infrastruktur von Alibaba ausgeliefert und gehören offenbar zu einem System für Browser-Sicherheit, Betrugserkennung und die Abwehr automatisierter Zugriffe.

Beide Skripte erzeugten ein Sägezahnsignal mit einer Frequenz von 440 Hz. Dieses Signal wurde an einen AnalyserNode übergeben, von einem ScriptProcessorNode verarbeitet und anschließend über einen GainNode mit der Verstärkung null an den System-Audioausgang weitergeleitet. Der Nutzer konnte deshalb nichts hören. Der Browser berechnete das Signal aber trotzdem und hielt einen Audiostream zum Ausgabegerät offen.

Diese Unterscheidung ist wichtig: AliExpress sendete kein Ultraschallsignal über die Lautsprecher aus. Das Signal war nicht aufgrund seiner Frequenz unhörbar, sondern wurde vor der Wiedergabe auf null gesetzt. Treffender wäre daher die Bezeichnung „stummgeschaltete Audioverarbeitung“.

Obwohl am Ausgang nichts ankam, erkannte Windows den Browser weiterhin als aktive Audioquelle. Für einen Multipoint-Kopfhörer kann bereits ein offener Renderstream ausreichen, um dem PC Vorrang vor dem Smartphone einzuräumen. Das erklärt auch, warum selbst das Stummschalten nicht half, denn eine Lautstärke von null beendet weder den AudioContext noch den vom Betriebssystem verwalteten Audiostream.

Ein alter Fehler macht das Verfahren sichtbar

Das Verhalten war offenbar schon länger vorhanden. Bereits 2023 meldete ein Nutzer im Mozilla-Bugtracker, dass AliExpress unter Windows einen Audio-Power-Request offenhalte. Das Betriebssystem meldete deshalb, ein Audiostream werde verwendet, obwohl Firefox keine aktive Wiedergabe anzeigte. In diesem Fall konnte der offene Stream sogar verhindern, dass Windows automatisch in den Ruhezustand wechselte.

Mozilla protokollierte damals nahezu den gleichen Aufbau aus Oszillator, Analyzer, ScriptProcessor und stummgeschaltetem Ausgang. Der eigentliche Test dauerte nur wenige Millisekunden. Teile des Audioverarbeitungsgraphen wurden anschließend getrennt, der Oszillator jedoch nicht ordnungsgemäß gestoppt. Auch der AudioContext wurde offenbar weder angehalten noch geschlossen. Dadurch blieb die Audio-Engine aktiv, obwohl das Ergebnis längst ermittelt worden war.

Gerade dieser Implementierungsfehler machte die ansonsten unsichtbare Messung bemerkbar. Ein Verfahren, das möglichst unauffällig Informationen über den Browser sammeln sollte, beanspruchte den Audiopfad so deutlich, dass externe Hardware darauf reagierte.

Jetzt Newsletter abonnieren

Verpassen Sie nicht unsere besten Inhalte

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Der Fingerabdruck entsteht in der Berechnung

Beim Audio-Fingerprinting geht es nicht darum, Geräusche aus der Umgebung aufzunehmen. AliExpress benötigte dafür weder das Mikrofon noch eine entsprechende Browserberechtigung. Stattdessen erzeugte das Skript ein mathematisch bekanntes Signal und untersuchte, wie die Audio-Engine des Browsers dieses Signal berechnete.

Ein Sägezahnsignal enthält neben seiner Grundfrequenz zahlreiche harmonische Oberwellen. Der Browser berechnet das Signal und zerlegt es mithilfe einer schnellen Fourier-Transformation (FFT) in seine Frequenzanteile. Minimale Unterschiede bei Gleitkommaoperationen, Rundungen und optimierten Rechenpfaden können dazu führen, dass verschiedene Systeme geringfügig voneinander abweichende Ergebnisse liefern.

Aus der resultierenden Zahlenfolge lässt sich ein Hashwert bilden. Ruft dasselbe System die Seite erneut auf, kann es einen identischen oder sehr ähnlichen Wert erzeugen. Das Verfahren liefert damit einen wiedererkennbaren Wert eines Browsers.

Daraus lassen sich allerdings weder die MAC-Adresse noch eine Seriennummer ablesen. Auch Gespräche, Musik oder andere Umgebungsgeräusche werden nicht erfasst. Da der AnalyserNode das Ergebnis innerhalb der digitalen Browser-Pipeline ausliest, muss das Signal den physischen Audioausgang nicht einmal erreichen. Der konkrete Test verrät daher eher etwas über Browser-Engine, CPU-Architektur und verwendete Rechenpfade als über die analogen Eigenschaften der Audiogeräte.

In Kombination wertvoll

Der Audio-Fingerabdruck allein dürfte bei modernen Browsern nur eine begrenzte Aussagekraft besitzen. Ein Firefox-Entwickler isolierte den von Alibaba verwendeten Test und verglich die Ergebnisse mit Telemetriedaten des Browsers. Seit Firefox 118 vereinheitlicht Mozilla die Resultate vieler WebAudio-Berechnungen. Rund 99 Prozent der untersuchten Systeme verteilten sich dadurch auf lediglich drei wesentliche Ergebnisgruppen.

Die verbleibenden Unterschiede ließen sich überwiegend auf CPU-Klassen zurückführen. Eine Gruppe umfasste x86- und x64-Prozessoren ohne Fused-Multiply-Add-Befehle, eine weitere x64-Systeme mit FMA-Unterstützung. Die dritte größere Gruppe bestand aus ARM-Prozessoren mit NEON-Befehlssatz. Für sich genommen eignet sich der Audiowert damit kaum zur eindeutigen Identifikation eines einzelnen Firefox-Nutzers.

Das macht die Messung jedoch nicht bedeutungslos, denn in den untersuchten Alibaba-Skripten fanden sich neben der Audioanalyse auch Abfragen und Messungen zu Canvas-Rendering, WebGL, Bildschirm- und Viewport-Größe, Gerätespeicher, Zahl der verfügbaren Prozessor-Threads, unterstützten Medienformaten, WebRTC-Verhalten und Performance-Timing.

Zusätzlich erfassten die Skripte offenbar Maus-, Touch-, Fokus- und Scrollereignisse sowie typische Merkmale automatisierter Browser. Jede einzelne Information beschreibt möglicherweise eine große Gruppe von Geräten. Ihre Kombination kann diese Gruppe jedoch erheblich verkleinern und einen relativ stabilen Browser-Fingerabdruck ergeben.

Sicherheitsfunktion oder verstecktes Tracking?

Für eine Handelsplattform wie AliExpress gibt es legitime Gründe, Browser und Geräte technisch zu charakterisieren. Betreiber müssen automatisiertes Auslesen von Preisen, massenhaft angelegte Konten, Gutscheinmissbrauch, manipulierte Bewertungen, Zahlungsbetrug und Kontoübernahmen erkennen. Ein zusammengesetzter Fingerabdruck kann dabei helfen, einen wiederkehrenden Client zu erkennen, selbst wenn dieser seine IP-Adresse wechselt oder Cookies löscht.

Aus einem solchen Profil könnten Sicherheitssysteme beispielsweise ableiten, ob mehrere Kundenkonten vermutlich vom selben technischen Client genutzt werden, ob der tatsächliche Browser zum übermittelten User-Agent passt oder ob Mausbewegungen und Zeitabläufe auf Automatisierung hinweisen. Der Fingerabdruck muss dabei nicht zwangsläufig als dauerhafte Kennung gespeichert werden. Er könnte auch nur als Eingangswert in einen kurzfristigen Risiko- oder Bot-Score einfließen.

Genau an dieser Stelle endet allerdings das, was sich anhand des Browsercodes nachweisen lässt. Die Analyse zeigt, dass AliExpress umfangreiche technische Merkmale ermittelt, zusammenfasst und an Alibaba-Infrastruktur überträgt. Sie zeigt nicht, wie lange die Ergebnisse gespeichert werden, ob sie mit Kundenkonten verknüpft werden oder ob Alibaba Nutzer über verschiedene Dienste hinweg wiedererkennt. Aus Sicht der Cybersecurity bleibt das Verfahren trotzdem problematisch. Eine Sicherheitsmaßnahme kann technisch legitim sein und zugleich eine Infrastruktur für schwer kontrollierbares Tracking schaffen.

Fingerprinting umgeht die Cookie-Kontrolle

Cookies sind sichtbar, lassen sich löschen und unterliegen zunehmend technischen sowie rechtlichen Einschränkungen. Ein Browser-Fingerabdruck wird dagegen bei jedem Seitenaufruf neu aus den Eigenschaften des Systems berechnet. Das Löschen des Browserverlaufs oder die Ablehnung nicht notwendiger Cookies verhindert diese Messung nicht automatisch.

Darin liegt der sicherheits- und datenschutzrechtliche Konflikt. Viele der verwendeten Programmierschnittstellen sind für legitime Webanwendungen unverzichtbar. WebGL ermöglicht komplexe 3D-Darstellungen, Canvas dient der grafischen Ausgabe, WebRTC unterstützt Echtzeitkommunikation und die Web Audio API stellt professionelle Signalverarbeitung im Browser bereit. Ein Browser kann diese Funktionen nicht pauschal sperren, ohne den Betrieb einzuschränken.

Datenschutzorientierte Browser versuchen daher, die gelieferten Werte zu vereinheitlichen oder künstlich zu verändern. Firefox reduziert die Unterschiede zwischen WebAudio-Ergebnissen. Brave versieht bestimmte Ausgaben mit zufälligen Abweichungen und blockiert nach eigenen Angaben zusätzlich die konkret bei AliExpress gefundenen Skripte. Safari setzt ebenfalls Schutzmechanismen gegen bekannte Fingerprinting-Verfahren ein. Vollständig lösen lässt sich das Problem damit nicht, denn auch wenig aussagekräftige Einzelwerte können in Verbindung mit anderen Merkmalen zusätzliche Informationen liefern. (mr)

(ID:50936606)